Setup Time과 Hold Time은 디지털 회로에서 Filo Flop이 데이터를 안정적으로 샘플링하고 저장하기 위해 필요한 중요한 타이밍 제약이다.
Setup Time
Setup Time은 Clock의 활성 엣지가 발생하기 전에 입력 데이터가 안정적으로 유지되어야 하는 최소 시간을 의미한다.
FF이 데이터를 제대로 샘플링하려면, Clock 신호가 Edge에 도달하기 전에 입력 데이터가 미리 정해진 시간 동안 안정적인 상태를 유지해야 한다.
Hold Time
Hold Time은 Clock의 활성 엣지가 발생한 후에도 입력 데이터가 안정적으로 유지되어야 하는 최소 시간을 의미한다.
Clock Edge가 발생한 후 즉시 데이터가 변하면, FF은 데이터를 잘못 샘플링할 수 있기 때문에 일정 시간 동안 데이터를 유지해야 한다.
Setup Time Violation 해결책
Setup Time Violation이 발생하는 이유는 Clock Edge에 Data가 제때 혹은 늦게 도착하는 경우 발생하게 된다. 이 경우 Frequency를 낮추면 간단하게 해결할 수 있다. Clock 주기가 늘어나게 되면 Data가 제때 도착할 수 있는 여유 시간을 확보할 수 있기 때문이다.
*하지만 Frequency를 낮추게 되면 성능이 낮아진다는 치명적인 단점이 존재한다. 고속 동작이 필수인 경우에는 경로 지연을 최적화하는 방식으로 Setup Violation을 해결해야 한다.
Hold Time Violation 해결책
Hold Time Violation이 발생하는 이유는 들어온 Data가 너무 빨리 변동하기 때문에 발생한다. 이 경우 Buffer를 삽입하거나 경로나 배선에 Delay를 넣어 해결할 수 있다.
* Hold Time Violation부터 해결!!!
Hold Time Violation은 Clock 주기와 상관없이 발생하기 때문에 먼저 해결해줘야 한다. Setup Time Violation의 경우 인가하는 Clock을 조절해주면 되기 때문에 상대적으로 간단하지만, Hold Time Violation의 경우 경로에 Buffer를 넣어주거나 경로에 Delay를 넣어주는 방법밖에 없기 때문에 설계 전체에 영향을 끼칠 수 있기 때문이다.
'Semiconductor > Digital, Analog, 회로 이론' 카테고리의 다른 글
컴퓨터 구조 및 CPU 동작 원리 (2) - CPU 동작 구조 (Pipelining) (1) | 2024.10.14 |
---|---|
컴퓨터 구조 및 CPU 동작 원리 (1) - 기본 개념 (0) | 2024.10.14 |
AXI4-Lite Interface에 대하여 (+ Template Code) (0) | 2024.09.26 |
WaveDrom (Timing Diagram) 사용 법 (0) | 2024.09.19 |
AMBA - AXI 이론편 (0) | 2024.09.04 |