Chapter 06

클럭 트리 합성

배치(5장)가 끝나면 칩 위에는 수십만에서 수백만 개의 플립플롭이 흩어져 있다. 동기식 회로는 이 모든 플롭이 “같은 순간” 클럭 에지를 받는다는 약속 위에 서 있다. 그러나 클럭 원천은 PLL 하나뿐이고, 거기서 출발한 신호는 수 mm의 배선과 수천 개의 버퍼를 지나며 RC 지연을 겪는다. 클럭 트리 합성(CTS, Clock Tree Synthesis)은 이 거대한 분배망을 지연이 고르게, 신호 모서리가 날카롭게, 전력은 적게 들도록 짓는 일이다. 이 장은 H-트리에서 영 스큐 병합 알고리즘까지 직접 트리를 만들어 보며, 클럭 게이팅과 클럭 도메인 교차, 온칩 변동까지 다룬다.

클럭 분배의 문제

클럭은 칩에서 가장 바쁘고 가장 넓게 퍼진 신호다. 데이터 신호는 한 넷이 보통 몇 개의 핀만 잇지만, 클럭 넷 하나는 수십만 개의 플롭 클럭 핀(싱크, sink)을 잇는다. 한 개 버퍼로는 이 부하를 구동할 수 없으므로 버퍼를 나무처럼 여러 단으로 쌓는다. 이렇게 만들어진 분배망의 품질은 네 가지 양으로 잰다.

PLL FFFFFFFF … 수십만 개의 싱크 버퍼 트리 PLL 출력 FF₁ 클럭 핀 FF₄ 클럭 핀 지연 (latency) 스큐 슬루: 모서리가 눕는 시간
그림 06-1. 클럭 분배망. PLL에서 나온 에지가 버퍼 트리를 지나 각 플롭 클럭 핀에 도착하기까지 걸리는 시간이 지연, 싱크 사이 도착 시간의 차이가 스큐다. 트리의 가지마다 배선 길이와 부하가 다르면 스큐가 생긴다.
양정의대표 목표 (1 GHz급, 약)왜 중요한가
지연 (insertion delay, latency)클럭 원천 → 싱크 도착 시간300~800 ps길수록 변동(OCV)이 쌓여 스큐 불확실성이 커진다
스큐 (skew)두 싱크 도착 시간 차 (전역: 최대 − 최소)주기의 ~5% 이하 (≤ 30~50 ps)셋업·홀드 슬랙을 직접 깎는다
지터 (jitter)같은 싱크에서 에지 시점이 주기마다 흔들리는 양주기의 ~1~3%PLL 잡음·전원 잡음이 원인. 설계로 줄이기 어렵다
슬루 (transition, slew)에지가 10%→90%로 오르는 시간≤ 50~100 ps느리면 플롭 tcq·셋업이 나빠지고 단락 전류와 잡음 민감도가 커진다

클럭은 전력 면에서도 특별하다. 동적 전력 \(P = \alpha C V^2 f\)(9장)에서 일반 논리의 활동률 α는 0.1~0.2 정도지만, 클럭은 매 주기 반드시 한 번 오르고 한 번 내리므로 α = 1이다. 게다가 클럭망의 커패시턴스는 수백 개 버퍼, 수 m에 달하는 배선, 모든 플롭의 클럭 핀(플롭 내부 클럭 인버터 포함)을 합친 것이다. 그래서 고성능 프로세서에서 클럭망과 플롭이 전체 동적 전력의 약 30~40%를 쓴다는 보고가 흔하다. CTS의 목표가 “스큐 0”만이 아니라 “적은 배선·적은 버퍼”이기도 한 이유다.

$$P_{\text{clk}} = \bigl(C_{\text{wire}} + C_{\text{buf}} + N_{\text{FF}}\,C_{\text{pin}}\bigr)\,V_{DD}^2\, f$$
예: EDU45에서 플롭 20만 개 × 클럭 핀 1.5 fF = 300 pF, 배선 200 m × 0.2 fF/µm = 40 pF ... 아니라 배선 총길이 2 m라면 400 pF, 버퍼 입력 ~100 pF. 합 ~0.8 nF × (1 V)² × 1 GHz ≈ 0.8 W. 클럭 하나가 와트 단위를 쓴다.

스큐가 셋업과 홀드에 주는 영향

데이터가 FFL(발사)에서 조합 논리를 지나 FFC(포획)로 가는 경로를 생각하자. 발사 클럭이 시각 0에, 포획 클럭이 \(\delta\)(스큐 = 포획 도착 − 발사 도착)에 도착한다면, 8장의 셋업·홀드 조건은 다음과 같다.

$$\underbrace{t_{cq} + t_{\text{logic,max}} + t_{su}}_{\text{데이터 도착}} \le T + \delta - t_{\text{jit}} \qquad\qquad \underbrace{t_{cq} + t_{\text{logic,min}}}_{\text{가장 빠른 새 데이터}} \ge t_{h} + \delta$$
\(\delta > 0\)(포획 클럭이 늦음)이면 셋업에 여유가 생기지만 홀드는 그만큼 위험해진다. \(\delta < 0\)이면 반대다. 홀드 조건에는 주기 \(T\)가 없으므로 홀드 위반은 클럭을 늦춰도 고쳐지지 않는다. 그래서 홀드 위반은 칩을 죽이는 실패이고, CTS 뒤에 지연 셀을 넣어 고친다.
발사 클럭 CLKL 포획 클럭 CLKC FFC 입력 D δ tsu th 셋업 마감 = T + δ − tsu δ만큼 셋업은 이득, 홀드는 손해
그림 06-2. 포획 클럭이 δ만큼 늦게 도착하면 데이터가 도착해야 하는 마감(셋업)이 δ만큼 늦어져 여유가 생긴다. 그러나 같은 에지에서 발사된 새 데이터가 홀드 창(포획 에지 직후 th)을 침범하기도 δ만큼 쉬워진다.

스큐는 언제나 나쁜 것이 아니다. 긴 경로 뒤의 플롭은 클럭을 조금 늦게, 짧은 경로 뒤의 플롭은 조금 일찍 받게 하면 단 사이에 시간을 빌려 줄 수 있다. 이를 유용한 스큐(Useful skew)라 한다. 현대 CTS 도구는 영 스큐를 목표로 트리를 지은 뒤, 임계 경로 주변 싱크의 지연을 의도적으로 조정하는 “CCOpt(Concurrent clock and data optimization)” 방식을 쓴다.

SIMULATOR

유용한 스큐: 가운데 플롭의 클럭을 옮겨 주기 줄이기

최소 주기 (x = 0)—
최소 주기 (현재 x)—
홀드 슬랙 (나쁜 쪽)—
해볼 것: ① FF₁ → (d₁) → FF₂ → (d₂) → FF₃ 파이프라인에서 FF₁·FF₃의 클럭은 0, FF₂만 x만큼 늦춘다. 두 단의 셋업 조건이 만드는 두 직선의 최댓값이 최소 주기다. ② ‘최적 스큐’를 누르면 x* = (d₁ − d₂)/2에서 두 단이 같은 여유를 나눠 가져 주기가 \((d_1+d_2)/2 + t_{cq} + t_{su}\)로 준다. ③ 최소 지연 비를 0.05로 낮추면 붉은 홀드 위반 영역이 넓어져 x를 마음껏 옮길 수 없다. (tcq = 45 ps, tsu = 25 ps, th = 10 ps, 지터 무시)

클럭망의 구조

트리를 어떤 모양으로 지을지는 스큐·전력·배선 자원·설계 노력 사이의 맞바꿈이다. 대표적인 다섯 가지를 비교하자.

H-트리. 자기 닮은 H를 재귀로 반복. 원천에서 모든 끝점까지 길이가 같아 기하적으로 스큐 0. 싱크가 끝점에 고르게 있어야만 성립.

X-트리. 대각선으로 끝점을 이어 H-트리보다 짧다. 하지만 맨해튼(수평·수직) 배선 규칙과 맞지 않아 실제로는 거의 안 쓴다.

균형 버퍼 트리. 실제 싱크 위치를 따라 가지를 나누고, 각 단에 버퍼를 넣어 지연을 맞춘다. ASIC CTS 도구의 기본형.

클럭 메시. 격자를 여러 드라이버가 함께 구동해 지역 차이를 평균낸다. 스큐가 가장 작고 변동에 강하지만 배선·단락 전력이 크다. 고성능 CPU.

스파인(피시본). 굵은 등뼈 배선에서 갈비뼈를 뻗는다. 행 구조와 잘 맞고 단순하다. 등뼈를 따라 지연이 조금씩 늘어난다.

그림 06-3. 클럭망의 다섯 가지 구조. 실제 칩은 이를 섞는다. 예를 들어 상위는 H-트리나 메시로 칩 전역에 고르게 뿌리고, 하위는 지역 버퍼 트리로 실제 플롭까지 잇는 “멀티소스 CTS”가 흔하다.

H-트리의 원리는 대칭이다. 원천에서 어떤 끝점까지 가도 같은 길이·같은 모양의 배선과 같은 수의 버퍼를 지나므로 지연이 같다. 레벨이 \(k\)인 H-트리는 \(4^k\)개 끝점을 \(2^k \times 2^k\) 격자에 놓고, 한 변이 \(D\)인 영역에서 총 배선 길이는 레벨마다 약 \(1.5 \cdot 2^{k-1} D\)씩 늘어난다(짧아지는 선분 × 늘어나는 개수). 문제는 실제 플롭이 격자처럼 고르게 놓여 있지 않다는 것이다.

SIMULATOR

H-트리 생성기: 이상적 스큐 0과 실제 싱크

싱크(플롭) 배치
끝점 / 싱크 수—
H 배선 + 끝 연결 배선—
최대 지연—
스큐—
해볼 것: ① ‘끝점마다 1개’에서는 모든 싱크가 대칭 위치에 있어 엘모어 지연으로 계산한 스큐가 정확히 0이다. 레벨을 올리면 끝점은 4배, H 배선은 약 2배씩 는다. ② ‘균일 무작위’로 바꾸면 각 플롭은 가장 가까운 끝점에 짧은 배선(점선)으로 붙는다. 끝 연결 길이와 끝점마다 붙은 플롭 수(부하)가 달라 스큐가 생긴다. ③ ‘뭉친 분포’에서는 빈 끝점에 배선이 낭비되고 붐비는 끝점은 부하가 커서 스큐가 더 커진다. 레벨을 올리면 끝 연결이 짧아져 스큐는 줄지만 배선(전력)이 는다. (1 mm × 1 mm 블록, 버퍼 없는 배선 r = 0.5 Ω/µm, c = 0.2 fF/µm, 플롭 클럭 핀 1.5 fF, 원천 구동 저항 50 Ω)

클럭 트리 합성 알고리즘

실제 CTS는 주어진 싱크 위치에 맞는 트리를 지어야 한다. 이 문제는 크게 두 단계로 나뉜다. 어떤 싱크끼리 묶을지 정하는 토폴로지 생성과, 묶인 가지를 어디서 합칠지 정하는 내장(embedding)이다.

  1. MMM(Method of Means and Medians, Jackson·Srinivasan·Kuh 1990) — 싱크 집합을 더 넓은 축 방향의 중앙값으로 둘로 나누고, 집합의 평균 위치(무게중심)에서 두 부분 집합의 무게중심으로 배선을 뻗는다. 이를 재귀로 반복하면 균형 이진 트리가 된다. 단순하고 빠르지만 지연을 직접 맞추지는 않는다.
  2. 영 스큐 병합(Zero-skew merge, Tsay 1991) — 아래에서 위로 두 부분 트리를 합칠 때, 두 뿌리를 잇는 배선 위에서 양쪽 엘모어 지연이 정확히 같아지는 탭 지점을 계산한다. 한쪽이 너무 느려 탭 지점이 배선 밖으로 나가면, 빠른 쪽 배선을 일부러 구불구불하게 늘인다(스네이킹).
  3. DME(Deferred-Merge Embedding) — 영 스큐를 만족하는 탭 지점은 맨해튼 평면에서 한 점이 아니라 선분(병합 선분)이 된다. 아래에서 위로 병합 선분을 만들어 두고, 위에서 아래로 내려오며 배선이 가장 짧아지는 점을 고른다. 영 스큐를 지키며 배선을 최소화하는 고전 알고리즘이다.
  4. 버퍼 삽입 — 배선이 길고 부하가 크면 RC 지연이 길이의 제곱으로 늘고 슬루가 나빠진다. 부하가 일정 값을 넘는 가지마다 버퍼를 넣어 구간을 끊는다. 버퍼는 뒤쪽 부하를 앞쪽에서 가려 준다.

트리의 각 싱크 지연은 8장의 엘모어 지연(Elmore delay)으로 계산한다. 원천에서 싱크까지 경로 위의 각 저항에, 그 저항 아래쪽(하류)에 매달린 모든 커패시턴스를 곱해 더한다.

$$t_{\text{sink}} = \sum_{e \in \text{path}} R_e\, C_{\text{down}}(e), \qquad R_e = r\,\ell_e,\quad C_{\text{down}}(e) = \tfrac{1}{2}c\,\ell_e + C_{\text{subtree}}$$
영 스큐 병합: 지연 \(t_1, t_2\), 부하 \(C_1, C_2\)인 두 부분 트리를 길이 \(L\) 배선으로 이을 때, 1번 뿌리에서 \(zL\) 떨어진 탭 지점이 양쪽 지연을 같게 한다. $$z = \frac{t_2 - t_1 + rL\,(C_2 + cL/2)}{rL\,(cL + C_1 + C_2)}$$ \(0 \le z \le 1\)이면 그 점에서 합치고, \(z<0\)이나 \(z>1\)이면 느린 쪽 뿌리에서 합치며 빠른 쪽 배선을 늘인다. 배선 위 RC가 ProcessBook의 금속 배선 RC에서 온다.
SIMULATOR

클럭 트리 합성: 스타 · MMM · 버퍼 · 영 스큐 병합

알고리즘
싱크 분포
스큐—
최대 지연—
총 배선 길이—
버퍼 수—
해볼 것: ① ‘스타’는 원천(가운데 ◆)에서 모든 싱크로 직접 배선한다. 배선이 엄청나게 길고, 원천 하나가 전체 부하를 구동해 지연이 크다. ② ‘MMM’은 배선을 크게 줄이지만 가지마다 길이·부하가 달라 스큐가 남는다. ③ ‘MMM+버퍼’는 부하가 Cmax를 넘는 지점에 버퍼(△)를 넣는다. Cmax를 줄이면 버퍼가 늘고 지연은 버퍼 고유 지연만큼 늘 수 있다. ④ ‘영 스큐 병합’은 같은 토폴로지에서 탭 지점을 다시 계산해 스큐를 0(부동소수 오차 수준)으로 만든다. 주황 점선은 일부러 늘인 스네이크 배선이다. 오른쪽 히스토그램이 도착 시간 분포다. (1 mm 블록, r = 0.5 Ω/µm, c = 0.2 fF/µm, 싱크 1.5 fF, 원천 50 Ω, 버퍼: 입력 3 fF·구동 200 Ω·고유 지연 15 ps. 영 스큐 병합은 버퍼 없이, 탭 위치는 L자 경로 위의 한 점으로 단순화)
도구 속에서는

상용 CTS는 여기에 슬루 한계(최대 전이 시간), 버퍼 크기 선택, 배선층·비차폐/차폐 규칙(클럭 넷은 보통 두 배 폭·두 배 간격의 NDR, Non-default rule을 쓴다), 막힌 영역 회피, 여러 PVT 코너에서 동시에 스큐 맞추기를 더한다. 그래도 뼈대는 “분할로 토폴로지 → 지연 균형 병합 → 버퍼링”이다.

클럭 게이팅

클럭의 α = 1이라는 사실은 거꾸로 기회이기도 하다. 레지스터 묶음이 이번 주기에 값을 바꾸지 않는다면(인에이블이 꺼져 있다면) 그쪽 클럭을 아예 멈추면 된다. 이것이 클럭 게이팅(Clock gating)이다. 그런데 클럭을 단순히 AND 게이트로 끊으면, 클럭이 high인 동안 인에이블이 바뀔 때 짧은 펄스(글리치)가 생겨 플롭이 잘못 동작한다. 그래서 표준 셀 라이브러리는 래치와 AND를 붙인 ICG(Integrated clock gating) 셀을 제공한다.

래치CLK low 투명 EN CLK AND GCLK 래치가 EN을 CLK low 동안만 통과시켜, CLK high 구간의 EN 변화가 GCLK에 새지 않는다. CLK EN GCLK AND만 쓰면 잘린 펄스(글리치)
그림 06-4. ICG 셀. EN이 클럭 high 구간에 바뀌어도 래치가 다음 low 구간까지 값을 붙잡아 GCLK에는 온전한 펄스만 나간다. 아래 붉은 파형은 AND만 쓸 때 생기는 잘린 펄스다.

클럭 게이팅 최적화를 활성화하고 지원 ICG 셀·제약을 제공한 흐름에서는 RTL의 if (en) q <= d; 패턴(2장)에서 ICG를 삽입할 수 있다. 그 외에는 데이터 MUX나 enable 플롭으로 구현될 수 있다. 수십 개 플롭이 ICG 하나를 공유하면 그 플롭들의 클럭 핀·로컬 트리 전력이 인에이블이 꺼진 비율만큼 사라진다. 블록 전체를 멈추는 큰 게이트(상위 게이팅)는 클럭 트리 자체의 전력까지 아낀다. CTS 입장에서는 ICG가 트리 중간의 “버퍼”이면서 동시에 셋업·홀드 검사 대상(EN 경로의 클럭 게이팅 검사)이 된다. 전력 효과는 9장의 저전력 기법에서 다시 계산한다.

클럭 도메인 교차와 메타안정성

큰 칩에는 서로 무관한 클럭이 여럿 있다(CPU 코어, 메모리 인터페이스, USB, 오디오…). 한 도메인의 신호가 다른 도메인의 플롭으로 들어가는 클럭 도메인 교차(CDC, Clock domain crossing)에서는 데이터가 언제 바뀔지 포획 클럭이 모르므로, 셋업·홀드 창 안에서 바뀌는 일이 반드시 생긴다. 그러면 플롭은 0도 1도 아닌 중간 전압에 한동안 머무는 메타안정(Metastability) 상태에 빠진다.

A 도메인 데이터 FF₁ FF₂ B 도메인 논리 CLKB 메타안정? FF₁이 흔들려도 한 주기(tr) 안에 0이나 1로 정착하면 FF₂는 깨끗한 값을 잡는다. CLKB 에지 10 정착 시간 ∝ τ · ln(…)
그림 06-5. 2단 동기화기. 첫 플롭은 메타안정에 빠질 수 있지만, 교차 결합 인버터의 양의 되먹임이 중간 전압을 시정수 τ로 지수적으로 벌려 놓는다. 다음 에지까지 정착하지 못할 확률은 \(e^{-t_r/\tau}\)로 줄어든다.
$$\mathrm{MTBF} = \frac{e^{\,t_r/\tau}}{T_0\, f_c\, f_d}$$
\(t_r\)은 메타안정을 풀 수 있는 시간(동기화 단 사이 한 주기에서 tcq, tsu를 뺀 값), \(\tau\)는 래치의 재생 시정수(최신 공정 ~10 ps 수준), \(T_0\)는 플롭 고유의 메타안정 창 상수, \(f_c\)는 포획 클럭, \(f_d\)는 데이터 변화율. \(t_r\)이 지수에 있으므로 동기화 단을 하나 더하면 MTBF가 수십 자릿수 늘어난다.
SIMULATOR

메타안정성 MTBF: 동기화 단 수와 클럭 주파수

동기화 플롭 수 N
정착 시간 tr—
MTBF (동기화기 1개)—
칩에 1000개면—
해볼 것: ① 기본 설정(2 GHz, 데이터 변화율 100 MHz, τ = 12 ps, T₀ = 50 ps)에서 N = 2의 MTBF는 약 746년이고 N = 1은 약 6.45 µs다. N = 3으로 늘리면 약 2.72×10¹⁸년이다. MTBF는 평균 실패 간격이며 그 시점마다 반드시 실패한다는 뜻은 아니다. ② fc를 4 GHz로 올리면 tr이 줄어 N = 2도 위험해진다. 고속 코어가 3단 동기화기를 쓰는 이유다. ③ τ는 공정과 전압에 좌우된다. 전압을 낮추면 τ가 커져 MTBF가 급락한다. (tr = (N − 1)(Tc − tcq − tsu) + 0.1 Tc, tcq + tsu = 70 ps로 가정. 멀티비트 버스는 동기화기가 아니라 비동기 FIFO·그레이 코드·핸드셰이크로 넘긴다.)

온칩 변동과 CPPR

지금까지는 같은 버퍼·같은 길이 배선이면 지연이 같다고 가정했다. 실제로는 같은 칩 안에서도 위치에 따라 트랜지스터 문턱 전압(ProcessBook 이온 주입의 도핑 요동), 선폭(노광·CMP 편차), 국소 전압 강하(IR 드롭), 온도가 달라 지연이 수 % 흔들린다. 이를 온칩 변동(OCV, On-chip variation)이라 한다. STA는 이를 비관적으로 다룬다. 셋업 검사에서는 발사 경로를 느리게(×1.05 같은 late 디레이트), 포획 경로를 빠르게(×0.95 early) 계산한다.

CLK 분기점 FF_L FF_C 데이터 경로 공통 경로 late 1.05 · early 0.95로 동시에 계산하면 모순 발사: late 디레이트포획: early 디레이트
그림 06-6. 발사·포획 클럭이 분기점까지 같은 버퍼를 지난다면, 그 구간은 한 순간에 느리면서 동시에 빠를 수 없다. 이 이중 계산된 비관을 되돌려 주는 것이 CPPR이다.
$$\text{CPPR 보정} = D_{\text{common}}\,(k_{\text{late}} - k_{\text{early}})$$
예: 공통 경로 지연 400 ps, \(k_{\text{late}} = 1.05\), \(k_{\text{early}} = 0.95\)면 40 ps의 비관이 슬랙에 되돌아온다. 그래서 CTS는 서로 타이밍 관계가 많은 플롭들을 가능한 한 깊은 곳에서 갈라지게(공통 경로를 길게) 묶는다. 최근 STA는 고정 디레이트 대신 경로 깊이·거리에 따라 다른 AOCV/POCV(통계적) 모델을 쓴다.

CPPR(Common path pessimism removal, CRPR이라고도 함)은 STA 도구가 자동으로 적용하지만, 그 이득은 트리 구조가 만든다. 지연이 긴 클럭 트리는 OCV가 그대로 스큐 불확실성이 되므로, “지연을 짧게”가 “스큐 0” 못지않게 중요하다. 메시 구조가 고성능 칩에서 살아남은 이유도 여러 드라이버가 서로의 변동을 평균내기 때문이다.

CTS 이후 흐름

CTS가 끝나야 클럭이 “이상적(ideal)”에서 “전파(propagated)” 클럭이 되고, 이때부터 STA가 진짜 스큐로 홀드를 검사한다. 홀드 위반은 지연 셀(버퍼 체인) 삽입으로 고치고, 남은 배선은 7장에서 마무리한다. 클럭 넷은 다른 넷보다 먼저, 넓은 간격과 차폐로 배선해 잡음(크로스토크)과 EM(9장)을 막는다.

핵심 정리

  1. 클럭망 품질은 지연·스큐·지터·슬루로 잰다. 클럭은 α = 1에 거대한 커패시턴스를 가져 동적 전력의 약 30~40%를 쓴다.
  2. 스큐 δ는 셋업에 +δ, 홀드에 −δ로 작용한다. 홀드는 주기와 무관해 클럭을 늦춰도 고쳐지지 않는다. 유용한 스큐는 단 사이에 시간을 빌려 준다.
  3. H-트리는 대칭으로 기하적 스큐 0을 얻지만 싱크가 불균일하면 끝 연결과 부하 차이로 스큐가 생긴다. 실무는 지역 버퍼 트리·메시·스파인을 섞는다.
  4. CTS = 토폴로지(MMM 등 재귀 분할) + 내장(영 스큐 탭 지점, DME) + 버퍼 삽입. 지연은 엘모어 식으로 계산한다.
  5. ICG는 래치+AND로 글리치 없이 클럭을 멈춘다. CDC 신호는 동기화기를 거치며, MTBF는 정착 시간에 지수적으로 비례한다.
  6. OCV 디레이트는 공통 클럭 경로를 이중으로 비관하며, CPPR이 이를 되돌린다. 공통 경로를 길게, 지연을 짧게 짓는 것이 변동에 강한 트리다.

확인 퀴즈

포획 플롭의 클럭이 발사 플롭보다 30 ps 늦게 도착한다(δ = +30 ps). 올바른 설명은?

셋업 마감은 T + δ로 늦어지고, 홀드 창은 포획 에지(δ)를 따라 뒤로 밀려 같은 에지에서 발사된 빠른 데이터와 더 쉽게 충돌한다.

H-트리가 실제 칩에서 스큐 0을 보장하지 못하는 주된 이유는?

H 자체는 대칭이라 끝점까지 지연이 같다. 비대칭은 끝점 아래(연결 배선 길이, 붙은 플롭 수)에서 생긴다.

영 스큐 병합에서 계산한 탭 위치 z가 음수가 나왔다. 무엇을 해야 하나?

z < 0은 1번 부분 트리가 너무 느려 배선 위 어디서 합쳐도 맞출 수 없다는 뜻이다. 2번 쪽 배선 길이 L′을 2차 방정식으로 구해 늘인다.

ICG 셀에 래치가 들어 있는 이유는?

래치는 클럭 low 동안만 EN을 통과시키므로 AND의 다른 입력(클럭)이 high인 동안 EN이 고정된다.

τ = 10 ps인 동기화기에서 정착 시간을 100 ps 늘리면 MTBF는 대략 몇 배가 되나?

MTBF ∝ e^{t_r/τ}이므로 e^{100/10} = e¹⁰ ≈ 22,000배.

공통 클럭 경로 지연이 500 ps, late/early 디레이트가 1.04/0.96일 때 CPPR 보정량은?

500 × (1.04 − 0.96) = 40 ps. 공통 구간을 늦게·빠르게 동시에 계산한 비관을 되돌린다.