그라운드 임베디드 유튜브 구독

노트 / 디지털 논리

클럭과 타이밍: 셋업, 홀드, 메타스테이빌리티

플립플롭이 값을 제대로 붙잡으려면 클럭 전후로 입력이 가만히 있어야 합니다. 이 조건이 깨질 때 생기는 문제를 정리했습니다.

GROUND EMBEDDED · 정리 노트디지털 논리 06클럭과 타이밍01셋업 시간과홀드 시간02최대 클럭주파수03메타스테이빌리티

셋업 시간과 홀드 시간

  • 셋업 시간: 클럭 에지 전에 입력이 안정되어 있어야 하는 최소 시간
  • 홀드 시간: 클럭 에지 후에 입력이 유지되어야 하는 최소 시간

SPI나 외부 메모리 데이터시트의 타이밍 그림에 나오는 tSU, tH가 바로 이 값입니다. 클럭을 높일수록 여유가 줄어들고, 배선이 길어 지연이 커지면 위반이 일어납니다.

최대 클럭 주파수

플립플롭에서 출발한 신호가 조합 회로를 지나 다음 플립플롭에 셋업 시간 전에 도착해야 합니다. 가장 긴 경로(임계 경로)의 지연이 클럭 주기의 하한을 정합니다.

메타스테이빌리티

버튼 입력이나 다른 클럭 영역의 신호처럼 클럭과 무관하게 바뀌는 신호는 언젠가 셋업·홀드를 위반합니다. 그러면 플립플롭 출력이 0도 1도 아닌 상태로 잠시 머물 수 있습니다.

해결책은 플립플롭 두 개를 직렬로 거치는 동기화기입니다. 첫 단에서 생긴 불안정이 두 번째 단에 도달하기 전에 풀릴 확률이 매우 높습니다. MCU의 GPIO 입력에도 이런 동기화 회로가 들어 있어서 입력이 읽히기까지 몇 클럭의 지연이 생깁니다.