CTS(Clock Tree Synthesis)는 클록 소스에서 칩의 모든 플립플롭(FF)까지 클록 신호를 균등하게 분배하는 물리설계 핵심 단계입니다. 목표는 Clock Skew(클록 도착 시간 차이)를 최소화하고 Insertion Delay(신호 전파 지연)를 제어하여 타이밍 마진을 극대화하는 것입니다.
CTS는 왜 필요한가?
대규모 칩에는 수억 개의 플립플롭이 있고, 모두 물리적으로 다른 위치 좌표를 갖습니다. 반도체 설계는 FlipFlop들이 Clock edge에 맞춰서 동작을 하기 때문에 가능하면 모든 Flip flop들이 동시에 움직여야 설계 제어가 쉽습니다.

CTS의 핵심 개념 3가지
1️⃣ Clock Skew(클록 스큐)
Clock Skew는 플립플롭과 다른 플립플롭 사이의 도착 시간 차입니다:
- Clock Skew = T_arrival(FF1) - T_arrival(earliest FF2)
- 예시: - FF_A가 1000ps에 클록 수신 - FF_B가 1050ps에 클록 수신 - Clock Skew = 1050ps - 1000ps = 50ps
2️⃣ Clock Latency
Latency는 클록 소스에서 각 플립플롭까지의 절대적 신호 전파 시간입니다:
Insertion Delay (Latency) = 클록 소스(PLL) → 레지스터까지의 총 지연
즉, skew는 Latency의 차이입니다.
3️⃣ Useful Skew(유용한 스큐)
의외로 일부러 클록 도착 시간을 다르게 만드는 기법도 있습니다. 이를 Useful Skew라 합니다. clock path를 수정하여 Timing close 하는 기법입니다.
Clock Tree 토폴로지 — H-Tree와 Fishebone
Clock Tree의 가장 인기 있는 토폴로지는 H-Tree 구조입니다. 루트에서 재귀적으로 분기하며, 겁 단계에서 거리와 로드가 균등하게 분산됩니다. 이를 통해 모든 리프 노드(플립플롭)까지의 경로 길이와 지연이 자동으로 균형을 이루게 됩니다.

또 다른 방식은 Mesh와 Fishbone 등이 있는데, Fishebone(생선뼈) 토폴로지는, 중앙 "척추" 라인에서 양쪽으로 가지가 뻗어나갑니다.