Flip-Flop은 클록 에지에서 데이터를 저장하지만, 실제 회로의 내부 노드가 상태를 결정하는 데는 시간이 필요합니다. 사진을 찍을 때 셔터 전후로 피사체가 안정돼 있어야 하는 것처럼 데이터에도 안정 구간이 필요합니다.
Q1. 면접관 질문
Setup Time과 Hold Time을 설명하고, 각각의 위반이 발생했을 때 해결 방법을 이야기해 보세요.
Q2. 핵심 원리
같은 에지의 앞과 뒤를 보호한다
Setup Time은 캡처 클록 에지 이전에, Hold Time은 에지 이후에 데이터가 안정되어야 하는 최소 시간입니다. 내부 저장 동작을 완료하기 위한 라이브러리 특성으로, 데이터·클록의 전환 속도와 동작 조건에 따라 달라집니다.
설명용으로 캡처 에지를 t=0, Setup을 80 ps, Hold를 30 ps라고 두면 D는 −80 ps부터 +30 ps까지 안정적이어야 합니다. 실제 제품 수치가 아닌 시간 관계 예입니다.
시간: −80 ps ── Setup 구간 ── 0(캡처 에지) ── Hold 구간 ── +30 ps
위반하면 잘못된 논리값을 잡거나 준안정 상태(Metastability)에 빠질 가능성이 생깁니다. 매번 눈에 보이는 오류가 발생한다는 뜻은 아니지만 보장된 동작 조건을 벗어난 것입니다.

Setup은 가장 늦은 데이터 도착을 본다
같은 주기의 상승 에지로 동작하는 Launch FF와 Capture FF 사이의 단일 주기 경로를 생각해 보겠습니다. S = 캡처 클록 도착 지연 − 런치 클록 도착 지연으로 정의하고, Uncertainty를 별도 양의 여유로 두면 다음과 같습니다.
Setup Slack = T + S − tCQ,max − tDATA,max − tSETUP − Usetup
T는 클록 주기, tCQ는 FF의 Clock-to-Q, tDATA는 조합논리와 배선 지연입니다. Slack이 음수이면 데이터가 다음 캡처 에지에 필요한 시각보다 늦게 도착합니다.
조합논리 단순화, 셀 크기·Vth 선택, 배치·배선 개선, 파이프라인 추가가 대응 방법입니다. 요구 성능이 허용하면 주기를 늘릴 수도 있지만 파이프라인은 지연 주기와 동작 구조를 바꾸므로 기능도 확인해야 합니다.
Hold는 가장 빠른 새 데이터 도착을 본다
Hold Slack = tCQ,min + tDATA,min − S − tHOLD − Uhold
Hold는 새 데이터가 너무 빨리 와서 같은 에지로 잡아야 할 이전 데이터를 방해하지 않는지 확인합니다. 위의 단순한 같은 클록·같은 에지 관계에서는 T가 직접 들어가지 않습니다. 그래서 주파수를 낮추는 것만으로 Hold 위반이 일반적으로 해결되지 않습니다.
지연 셀 삽입이나 데이터 경로의 지연 증가, 클록 경로 조정 등을 사용합니다. 지연 셀을 넣으면 Setup 여유가 줄어들 수 있으므로 수정 후 두 조건을 함께 확인합니다. Intel Timing Analyzer 가이드는 최대·최소 도착 시간과 Setup·Hold Slack 계산을 설명합니다.
양의 Skew는 왜 양쪽에 다르게 작용할까?
S가 양수이면 캡처 클록이 상대적으로 늦게 도착합니다. 다음 에지까지 데이터가 이동할 시간은 늘어 Setup에 유리하지만, 현재 캡처 에지 이후까지 이전 데이터를 유지해야 하는 요구는 더 엄격해져 Hold에 불리합니다.
이 방향은 위에서 정의한 S와 단일 주기 경로에 대한 것입니다. 다른 에지·Multicycle·위상 관계에서는 실제 에지 관계를 다시 써야 합니다. STA에서는 공정·전압·온도(PVT), 배선 기생, 변동성 등 여러 조건을 분석합니다.

Q3. 30초 답변 예시
Setup은 클록 에지 전에, Hold는 에지 후에 데이터가 안정되어야 하는 시간입니다. Setup 위반은 최대 경로 지연을 줄이거나 허용 주기를 늘려 해결하고, Hold 위반은 너무 빠른 데이터 경로에 지연을 추가하는 방식으로 수정합니다. 같은 에지 Hold는 일반적으로 주파수를 낮춰도 해결되지 않으며, 수정 후 두 조건을 함께 검증해야 합니다.
Q4. 심화 꼬리 질문
- Hold 수정에 지연 셀을 쓰는 이유는요? 너무 이른 새 데이터 도착을 늦추기 위해서입니다. 다른 경로와 Setup에 미치는 영향도 봐야 합니다.
- FF의 Hold 값은 항상 양수인가요? 내부 클록·데이터 경로에 따라 음수가 될 수도 있으므로 라이브러리 값을 사용합니다.
- 동기화기만 넣으면 위반 가능성이 0인가요? 비동기 입력의 준안정성 전파 확률을 낮추는 설계이며, 완전한 제거가 아니라 필요한 신뢰도 확보의 관점으로 봅니다.
면접 답변에서는 늦은 도착과 이른 도착을 먼저 구분하면 해결책을 거꾸로 말하는 실수를 줄일 수 있습니다.
'기억하고 싶은 지식 > 반도체' 카테고리의 다른 글
| [전자/반도체/면접질문] MOSFET의 Threshold Voltage는 무엇에 의해 결정될까? (1) | 2026.11.03 |
|---|---|
| [전자/반도체] 2T0C DRAM은 왜 Capacitor가 필요 없을까? (2) | 2026.11.02 |
| [전자/기초/반도체] MOSFET의 Pinch-off란 무엇인가? 채널이 정말 끊어지는 걸까? (2) | 2026.10.31 |
| [전자/반도체] Zener Breakdown과 Avalanche Breakdown은 무엇이 다를까? (0) | 2026.10.30 |
| [전자/반도체] Forksheet FET이란 무엇인가? GAA 다음 구조가 필요한 이유 (1) | 2026.10.29 |
댓글