디지털 회로는 모든 클럭 엣지에서 타이밍이 매우 정확해야 합니다. 설정 시간과 홀드 시간은 클럭 전후로 데이터가 얼마나 오래 안정적이어야 하는지 정의하여 플립플롭이 올바른 값을 저장하고 메타안정성을 피하도록 합니다. 이 글에서는 타이밍 문제의 의미, 위반 원인, 레지스터 간 경로, PCB 레이아웃 영향, 그리고 타이밍 문제를 해결하는 실용적인 방법을 자세히 설명합니다.

설정 및 대기 시간 개요
디지털 회로는 클럭을 기반으로 작동하며, 각 클럭 엣지 주변의 작은 시간 조각 하나하나가 중요합니다. 동기식 시스템에서는 그 클럭 신호를 기반으로 데이터가 이동되고 캡처됩니다. 실제 신호는 즉시 변하지 않으며, 클럭 엣지는 유한한 기울기를 가집니다. 와이어, 논리 게이트, 내부 장치 지연 모두 타이밍 시프트를 추가합니다.
데이터 캡처의 안전을 위해 각 활성 클럭 엣지 주변에 입력이 일정하게 유지되어야 하는 짧은 시간 창이 있습니다. 설정 시간과 홀드 시간은 플립플롭이 데이터를 올바르게 샘플링하고 무작위 오류나 불안정한 출력을 피할 수 있도록 이 창을 정의합니다.
공통 디지털 회로에서의 설정 및 홀드 시간

• CPU, FPGA, ASIC, 마이크로컨트롤러 내부의 플립플롭
• 클럭과 데이터가 함께 전송되는 소스 동기 인터페이스
• SPI, I²C, 병렬 메모리 버스와 같은 주변 버스
• ADC(아날로그-디지털 변환기) 및 DAC(디지털-아날로그 변환기) 인터페이스
• 고속 디지털 통신 링크
디지털 타이밍에서의 설정 시간의 의미

설정 시간(Tsetup)은 입력 데이터가 활성 클럭 에지보다 안정적으로 유지되어야 하는 최소 시간입니다. 이 구간 동안 플립플롭 입력에 표시되는 데이터는 변하지 않아야 하며, 내부 샘플링 회로가 클럭 가장자리의 논리 레벨을 신뢰성 있게 결정할 수 있습니다.
대기 시간 정의 및 데이터 캡처에 미치는 영향

홀드 시간(Thold)은 활성 클럭 에지 이후에도 입력 데이터가 안정적으로 유지되어야 하는 최소 시간입니다. 데이터는 클럭 전이에서 샘플링되지만, 플립플롭은 캡처 과정을 완료하기 위해 짧은 추가 간격이 필요합니다. 이 기간 동안 데이터 안정성을 유지하면 저장된 값이 올바르게 래치되어 이후 논리 단계에서도 유효함을 보장합니다.
설정 시간과 홀드 시간의 차이점
| 매개변수 | 설치 시간 | 시간 대기 | |
|---|---|---|---|
| 정의 | 최소 시간 데이터는 클럭 엣지 | 클럭 에지 이전까지 안정적으로 유지되어야 합니다. 최소 시간 데이터는 클럭 엣지 | 이후에도 안정적으로 유지되어야 합니다. |
| 발행 방향 | 문제는 데이터가 클럭 엣지 | 클럭 에지 전에 너무 늦게 도착할 때 발생합니다. 문제는 데이터가 클럭 에지 | 이후로 너무 빨리 바뀌는 경우에 발생합니다. |
| 공통의 원인 | 데이터 경로가 너무 느려 (긴 지연) | 데이터 경로가 너무 빠릅니다(매우 짧은 지연) | |
| 일반적인 해결책 | 느린 클럭을 사용하거나 데이터 경로의 지연을 줄이세요 | 데이터 경로에 추가 지연을 추가하여 나중에 데이터가 변경되도록 | |
| 위반 시 위험 | 저장된 값은 잘못되거나 불안정할 수 있습니다(준안정) | 저장된 값은 잘못되거나 불안정할 수 있습니다(준안정) |
설정 및 홀드 시간 위반의 일반적인 원인
• 클럭 스큐 – 클럭 신호가 회로의 서로 다른 부분에 약간씩 다른 시간에 도달합니다.
• 클럭 지터 – 시계 엣지의 정확한 타이밍에 나타나는 작고 무작위적인 변화.
• 긴 조합 논리 경로 – 데이터가 플립플롭에 도달하기 전에 논리 게이트를 통과하는 데 너무 오래 걸립니다.
• PCB 트레이스 길이가 불균등함 – 신호가 이동하는 거리가 달라, 어떤 신호는 다른 것보다 더 일찍 또는 늦게 도착합니다.
• 신호 울림과 느린 상승 시간 – 신호 품질이 낮거나 전이가 느리면 명확한 논리 레벨을 감지하기 어렵습니다.
• 온도 및 전압 변화 – 온도 또는 공급 전압의 변화는 신호 속도와 타이밍 마진에 영향을 미칩니다.
설정 및 대기 시간 위반의 영향

설정이나 홀드 시간이 충족되지 않으면, 플립플롭은 클럭 엣지에서 신호가 높은지 낮은지 판단하지 못할 수 있습니다. 이 상태는 메타안정성이라 불리는 불안정 상태에 들어갈 수 있으며, 출력이 안정되는 데 추가 시간이 걸리고 잠시 유효한 논리 수준 사이에 머무를 수 있습니다. 이러한 불안정한 동작은 회로 전체로 확산되어 다음과 같은 심각한 문제를 일으킬 수 있습니다:
• 무작위 비트 오류
• 시스템 크래시 또는 리셋
• 예측 불가능한 회로 동작
• 추적하기 어려운 희귀 고장
설정 및 대기 시간 값의 정의

칩 테스트 중 설정 및 대기 시간은 측정되고 정의됩니다. 장치는 클럭과 정상적으로 작동할 수 있는 가장 작은 타이밍 여유를 찾기 위해 통제된 조건에서 점검됩니다. 이 타이밍 제한은 반도체 공정, 전원 전압, 온도 범위, 출력 부하 등에 따라 달라집니다. 이러한 요소들은 기기마다 다르기 때문에, 정확한 설정 및 대기 시간 값은 데이터시트에 명시되어 있으며 항상 그곳에서 확인해야 합니다.
레지스터 간 경로에서의 설정 및 홀드 시간
| 타이밍 구성 요소 | 설명 |
|---|---|
| Tclk | 클럭 주기 (두 클럭 엣지 사이의 시간) |
| Tcq | 첫 번째 플립플롭의 클럭--Q 지연 |
| Tdata | 플립플롭 사이의 논리를 통한 지연 |
| 트셋업 | 수신 플립플롭의 설정 시간 |
| 쯧 | 두 플립플롭 사이의 시계 왜곡 |
PCB 트레이스 길이 매칭 및 설정/홀드 타이밍 제한

PCB 트레이스 길이 매칭은 특히 고속 디지털 설계에서 클럭 신호와 데이터 신호 간의 타이밍 차이를 줄이기 위해 자주 사용됩니다. 트레이스 길이를 맞추면 스큐를 최소화하는 데 도움이 되지만, 설정 및 홀드 타임 요구사항을 충족한다는 보장은 없습니다.
PCB 트레이스에서의 신호 전파는 매우 빠르기 때문에, 라우팅만으로 의미 있는 지연을 만들려면 비현실적으로 긴 트레이스가 필요합니다. 또한, 울림, 임피던스 불일치, 느린 엣지 전이 같은 신호 무결성 효과는 트레이스 길이가 거의 일치하더라도 클럭 엣지 주변의 유효 샘플링 윈도우를 줄일 수 있습니다.
이러한 한계 때문에 설정 및 홀드 타이밍은 PCB 길이 매칭만으로 타이밍 해결책에 의존하는 것이 아니라 디바이스 데이터시트 값과 경로 지연을 이용한 타이밍 분석을 통해 검증되어야 합니다.
디지털 시스템에서 설정 시간 위반 문제 해결
• 조합 논리의 깊이를 줄여 데이터가 더 빨리 도착할 수 있게 함
• 각 사이클에 더 많은 시간을 주기 위해 클럭 주파수를 낮춥니다
• 더 빠른 논리 장치와 짧은 내부 지연 사용
• 신호 무결성을 개선하여 전환을 더 깔끔하고 안정적으로 만듭니다
• 긴 논리 경로를 더 작은 단계로 나누기 위한 파이프라인 단계 추가
• 정전용량 부하를 줄여 신호가 더 빠르게 전환될 수 있게 함
디지털 시스템에서 대기 시간 위반 문제 해결
• 데이터 경로를 느리게 하기 위해 버퍼 지연 추가.
• 원치 않는 클럭 스큐를 줄이기 위해 클럭 트리를 조정합니다.
• 안전하고 적절할 때 소규모 RC 지연 네트워크를 삽입
• FPGA에서 프로그래밍 가능한 지연 블록을 사용하여 데이터 도착 시간을 미세 조정
결론
설정 및 홀드 시간은 동기식 디지털 시스템에서 신뢰할 수 있는 데이터 캡처를 보장하는 클럭 엣지 주변의 유효한 타이밍 윈도우를 정의합니다. 이 타이밍 제한은 클럭 동작, 논리 지연, 신호 품질, 물리적 구현에 의해 영향을 받습니다. 실제 데이터 경로를 데이터시트 명세와 비교해 분석하고 설정 및 유지 제약에 대한 목표 조정을 적용함으로써, 설계자는 공정, 전압, 온도 변화 전반에 걸쳐 안전한 타이밍 여유를 유지할 수 있습니다.
자주 묻는 질문 [FAQ]
설정 및 홀드 시간이 어떻게 클럭 속도를 제한하나요?
클럭 속도는 데이터가 한 플립플롭을 떠나 논리를 거치고, 다음 플립플롭에서 설정 시간을 충족할 수 있을 만큼 느려야 합니다. 클럭이 너무 빠르면 설정 시간이 끊어지고 회로가 고장 납니다.
타이밍 슬랙이란 무엇인가?
타이밍 여유란 필요한 도착 시간과 실제 데이터 도착 시간 사이의 여유를 의미합니다. 긍정적인 여유는 타이밍이 안전하다는 뜻입니다. 음의 여유는 세팅이나 홀드 위반을 의미합니다.
세팅 시간이나 홀드 시간이 음수일 수 있나요?
네. 네거티브 세팅 또는 홀드 번호는 플립플롭 내부의 타이밍에서 발생합니다. 즉, 금고 창이 이동했다는 뜻이지, 타이밍 체크를 건너뛸 수 있는 것은 아닙니다.
정적 타이밍 분석은 어떻게 타이밍을 확인하나요?
정적 타이밍 분석은 모든 경로 지연을 계산합니다. 다음 시계 에지에서 세팅을 확인하고 현재 에지 바로 뒤에서 멈춥니다. 음의 여유가 있는 경로는 위반으로 보고됩니다.
왜 클럭 도메인 크로싱이 타이밍에 위험한가요?
신호가 관련 없는 클럭들 사이를 넘을 때, 그 엣지가 새 클럭과 일치하지 않습니다. 이로 인해 세팅이나 홀드 시간이 자주 끊기고, 동기화 장치나 FIFO를 사용하지 않는 한 메타안정성이 발생할 수 있습니다.