지난 시간에 clock domain crossing과 metastable에 대해 알아보았습니다.
clock domain이 바뀔 때, clock domain crossing 처리를 해주지 않으면 metastable 상태에 빠지게 되고 회로가 정상적으로 작동할 수 없다고 했습니다.
metastability는 바로 오늘 알아볼 내용인 set up time, hold time과 관련이 깊습니다.
metastability가 발생하는 근본적인 이유를 생각해보면 data가 flip flop에 입력될 때 clock이 해당 data를 채가지 못하기 때문에 발생합니다.
이상적으로 생각해보면 신호가 flip flop으로 들어온 직후에 clock이 toggle해도 flip flop이 data를 챌 수 있을 것 같지만 실제로는 그렇지 않죠.
data가 안정되기 까지 물리적으로 시간이 필요한데 이를 set up time과 hold time으로 나누어 정의할 수 있습니다.

위 그림을 보면 data가 들어온 후 set up time만큼 유지를 하고 clock이 data를 챕니다. 그리고 data는 hold time 만큼 유지가 됩니다.
set up time과 hold time은 최소 시간으로 이 시간만큼 data를 유지 하지 않는다면 flip flop의 출력은 신뢰할 수 없을 것입니다.
정리하자면,
Set-up Time: Data가 flip flop의 D로 입력되는 순간부터 Clock이 Data를 채갈 때 까지 충분히 확보되어야 하는 시간
Hold Time: Data가 flip flop의 D로 입력되고 Clock이 Data를 채가는 시점부터 Data가 바뀌지 않고 유지되어야 하는 시간
이라고 할 수 있겠습니다.
오늘 공부한 Set-up/Hold Time 역시 면접 단골 질문이기 때문에 반드시 잘 정리하셔야 합니다.
다음 시간에는 다양한 CDC 처리 기법에 대해 알아보겠습니다.
Vamos!
'Digital Design' 카테고리의 다른 글
I2C의 장점과 여러 가지 모드 (0) | 2024.10.13 |
---|---|
CDC와 Metastable (0) | 2024.05.16 |