Setup time과 Hold time 차이
Q. Setup time과 Hold time 차이를 설명하시오
A. Setup time과 Hold time은 플립플롭 같은 순차 논리 회로에서 입력 데이터가 안정적으로 저장되기 위한 타이밍 제약 조건입니다.
먼저 Setup time은 클럭 엣지가 발생하기 이전부터,
입력 신호 D가 일정 시간 이상 미리 안정적으로 유지되어야 하는 최소 시간을 의미합니다.
즉, 데이터가 클럭에 의해 캡처되기 전에 준비되어 있어야 하며, 이 시간이 보장되지 않으면 잘못된 값이 저장될 수 있습니다.
반면에 Hold time은 클럭 엣지가 발생한 이후에도,
입력 D가 일정 시간 동안 변하지 않고 유지되어야 하는 시간입니다.
이 조건이 만족되지 않으면, 플립플롭 내부의 게이트 전파 지연 때문에 메타안정성(Metastability) 문제가 발생할 수 있습니다.
Q. Propagation Delay(전파 지연)이란 무엇인가?
A. Propagation Delay는 입력이 변화한 이후, 출력이 그 변화에 반응하는 데 걸리는 시간입니다.
예를 들어 AND 게이트의 입력이 바뀌었을 때, 출력이 실제로 바뀌기까지는 약간의 지연이 발생합니다.
이 지연이 바로 Propagation Delay이며, 회로의 속도, 안정성, 클럭 타이밍 분석에 매우 중요한 요소로 작용합니다.
플립 플롭의 동작을 아래 글에서 살펴보자
2025.05.01 - [전자전기/논리 회로 보충] - 플립플롭과 래치의 차이점
상승 엣지에서 동작하는 D 플립 플롭을 기준으로 생각해보자.
이상적으로 아래와 같이 동작한다고 하자
하지만 실제로 낮은 레벨에서 높은 레벨로, 높은 레벨에서 낮은 레벨로 이동하려면 일정한 시간이 걸린다.
![]() |
![]() |
예를 들어, 우리가 클럭의 상승 엣지에서 D 값을 캡처한다고 가정해보자
그런데 만약 클럭이 상승하는 시점에서 D 입력이 Low에서 High로 전이 중이었다면, 이 회로는 Low를 저장할지, High를 저장할지 판단하기 어렵게 될 것이다. 이처럼 클럭 엣지 근처에서 입력이 불안정하면, 잘못된 값이 저장되거나 플립플롭이 메타안정 상태(Metastability)에 빠질 수 있다.
(중간 그림)
이러한 문제를 피하기 위해, 아래의 중간 그림과 같이
클럭 엣지 이전 일정 시간 동안 입력 D가 안정적으로 유지되어야 하며, 이 시간을 Setup Time이라고 한다.
( 오른쪽 그림)
마찬가지로, 클럭 엣지 직후에도 D 값이 갑자기 바뀌면 출력 안정화가 어려워지기 때문에, 엣지 이후 일정 시간 동안도 D가 유지되어야 하고, 이 시간을 Hold Time이라고 합니다.
![]() |
![]() |
![]() |
Metastability | Setup Time | Hold Time |
요약하면, Setup Time은 엣지 전에 미리 준비되는 시간, Hold Time은 엣지 이후에 값을 유지해야 하는 시간이며, 이 두 조건이 만족되어야 회로가 안정적으로 동작한다.
참고
https://www.youtube.com/watch?v=3t8ndX2hqHA
https://metastable.tistory.com/66
[SoC] Timing Violation (Setup/Hold/Skew/Jitter/해결법)
오늘은 Flip/Flop 간의 타이밍 문제를 다뤄보고자 합니다. 클락 타이밍에 문제를 일으키는 것들을 여러가지가 있는데, Set-up/Hold Time, Clock Skew, Jitter 등을 소개하겠습니다. 물론 설계를 할 땐 하나하
metastable.tistory.com