반응형

트랜지스터 수가 수백만 개에 달하는 SoC(System on Chip)에서는 소수의 클럭만 사용되므로, 개별 클럭은 수천 개의 플립플롭(flip-flop) 또는 SRAMS, CPU 코어와 같은 다른 클럭을 사용하는 기본 회로에 분배되어야 합니다.

H-트리(H-tree) 및 PLL(Phase-Locked Loop)을 이용한 클럭 분배에 대한 내용은 앞에서 다루었습니다.

많은 클럭은 클럭 게이팅(clock gating)이 필요하므로, H-트리의 구조적 계층은 적절한 지점에서 클럭 게이트 입력을 수용할 수 있도록 설계되어야 합니다. 또한, 클럭 게이트를 거치지 않는 경로들과 비교했을 때, 클럭 게이트를 통과하는 신호의 지연이 적절히 조정되어야 shoot-through 현상(불필요한 신호 전파)이 방지됩니다.

 

SoC의 물리적 거리도 클럭 트리 생성 시 고려해야 하므로, 클럭 트리 합성(clock tree synthesis)은 배치(placement) 이후, 배선(routing) 전 또는 배선 과정의 일부로 수행됩니다. 배선 도구(router)는 사용하려는 금속층(metal layer)에 기존 배선이 없는 경우 가장 효과적으로 동작합니다. 따라서, 클럭 트리는 일반 논리 네트(net) 배선 전에 배치되어야 합니다.

 

장거리 클럭 신호는 주로 M4 및 M5 같은 중간 금속층(lower-middle layers)을 사용합니다. 클럭이 설계된 후, 라우터는 데이터 네트(data net) 및 버스(bus)의 장거리 배선을 위해 동일한 금속층을 추가적으로 활용할 수 있습니다.

특정한 도구를 사용하는 대신, 클럭 트리 라우팅은 일반적인 라우터를 위한 일련의 명령 시퀀스로 구현됩니다. 예를 들어, TCL 스크립트를 사용하여 자동화할 수 있습니다.


고급 설계 흐름 (Advanced Flow)

일반적으로 모든 지점에 클럭을 동시에 전달하는 방식 대신, 의도적인 클럭 스큐(clock skewing, 클럭 지연 조정)를 활용하여 타이밍 마진을 최대화하는 기법이 사용됩니다.

예를 들어, 많은 레지스터들이 동시에 토글(toggling, 신호 변화)할 경우, 공급 전원 레일(supply rail)에 노이즈가 발생할 수 있습니다. 이를 방지하기 위해 클럭 스큐를 자동으로 조정하는 기능이 제공되며, 일반적으로 최대 스큐 값가장 빠른 클럭의 15%로 설정됩니다.

또한, 수동 편집(manual edit)을 통해 파이프라인 내 연속된 레지스터들 사이에서 클럭 스큐를 더욱 극단적으로 조정할 수도 있습니다. 이러한 방식은 조합 논리(combinational logic)가 스테이지(stage)별로 균형 잡혀 있지 않을 경우 특히 필요합니다. 최적의 타이밍 및 전원 노이즈 목표를 동시에 충족시키기 위해 시행착오(trial-and-error) 접근 방식이 필요할 수도 있습니다.

반응형

+ Recent posts