본문으로 건너뛰기
VEXUS
Timing & STA

Theory · beginner

Setup / Hold Timing

Flip-flop 간 데이터 경로에서 setup check와 hold check가 무엇을 비교하는지, slack을 어떻게 계산하는지 정리한다.

작성 2026-11-11 · 수정 2026-11-11

개요

STA는 동기 회로의 모든 timing path에 대해 두 가지를 확인한다.

  • Setup check: launch edge에서 출발한 데이터가 다음 capture edge 전에 capture flop에 도착하는가 (max delay check).
  • Hold check: 새 데이터가 같은 capture edge에서 이전 데이터를 너무 빨리 덮어쓰지 않는가 (min delay check).

핵심 수식

Launch clock latency를 LlaunchL_{launch}, capture clock latency를 LcaptureL_{capture}, clock period를 TT라 하자. Data arrival time은 다음과 같다.

AT=Llaunch+tclk→q+tcombAT = L_{launch} + t_{clk \to q} + t_{comb}

Setup

RTsetup=T+Lcapture−tsetup−tuncertaintyslacksetup=RTsetup−ATRT_{setup} = T + L_{capture} - t_{setup} - t_{uncertainty} \qquad slack_{setup} = RT_{setup} - AT

Hold

RThold=Lcapture+thold+tuncertaintyslackhold=AT−RTholdRT_{hold} = L_{capture} + t_{hold} + t_{uncertainty} \qquad slack_{hold} = AT - RT_{hold}

Slack이 0 이상이면 met, 음수이면 violated다. Setup은 max delay(slow corner)에서, hold는 min delay(fast corner)에서 가장 나빠지는 것이 일반적이다.

Setup과 Hold의 상충

변화Setup slackHold slack
tcombt_{comb} 증가 (버퍼 삽입)감소증가
LcaptureL_{capture} 증가 (capture clock 지연)증가감소
LlaunchL_{launch} 증가 (launch clock 지연)감소증가

Hold check에는 TT가 들어가지 않는다. 따라서 hold violation은 clock 주파수를 낮춰도 해결되지 않는다. 실리콘에서 발견되면 치명적이므로 signoff 전에 반드시 닫아야 한다.

실무 적용

  • Report에서 setup은 -delay_type max, hold는 -delay_type min으로 확인한다.
  • Pre-CTS 단계는 ideal clock 기준이므로 hold는 보통 CTS 이후(propagated clock)부터 본격적으로 수정한다.
  • Clock latency 차이(skew)가 두 check에 반대 방향으로 작용한다. 자세한 내용은 Clock Skew 문서를 참고한다.

한계

이 문서는 단일 clock, flop-to-flop path를 가정한다. Multicycle path, latch time borrowing, OCV/AOCV/POCV derate, CRPR은 다루지 않는다.

참고자료

  1. Static Timing Analysis for Nanometer Designs — J. Bhasker, R. Chadha (Springer, 2009)