CTS (Clock Tree Synthesis) : 디지털 회로 설계에서 클럭 신호를 설계의 각 플립플롭에 안정적이고 동기화된 방식으로 전달하기 위해 클럭 트리를 생성하고 최적화하는 과정.
핵심 목표는 클럭 신호가 설계 내 모든 플립플롭에 동시에 도달하도록 스큐를 줄이는 것.
왜냐? 스큐가 클 경우 Setup Time Violation 및 Hold Time Violation이 발생할 가능성이 높아지므로.
외에도 Clock Latency 최적화, 전력 소비 감소, 신호 무결성 보장이 있음.
Clock Network Delay = Clock source latency + Clock network latency
Clock Network Delay
: 클럭 소스에서 각 플립플롭까지 클럭 신호가 도달하는 전체 지연 시간.
Clock Source Latency
: 클럭 소스(예: PLL, 외부 클럭 입력)에서 시작하여 클럭 트리의 루트 노드(클럭 네트워크의 시작점)까지 도달하는 데 걸리는 시간.
- 원인
PLL 내부 지연.
클럭 소스에서 클럭 네트워크로 신호 전달 시 발생하는 전파 지연.
Clock Network Latency
: 클럭 트리의 루트 노드(네트워크 시작점)에서 설계 내 각 플립플롭의 클럭 입력까지 도달하는 데 걸리는 지연 시간.
- 원인
클럭 트리의 물리적 배선 길이.
삽입된 버퍼 또는 인버터의 지연.
RC 지연(배선의 저항 및 커패시턴스).
- 스큐(Skew): CTS를 통해 최소화 가능.
- 지터(Jitter): 클럭 주기 내에서 발생하는 클럭 신호의 변동성. CTS와는 독립적이며, PLL이나 클럭 소스 설계에 따라 달라짐.
- 마진(Margin): 설계 안전성을 위해 추가한 보수적 여유 시간.
nworst : 분석에서 고려할 가장 나쁜(N-worst) 타이밍 경로의 개수를 지정하는 옵션, Default : 1 (따로 설정 안할시)
즉, 타이밍 분석 시 가장 심각한 타이밍 위반(예: Setup Time Violation, Hold Time Violation)이 발생하는 상위 N개의 경로를 분석 결과에 포함
ex)report_timing -nworst 5-> 가장 나쁜 5개의 타이밍 경로를 출력.
max_paths : 분석에서 최대 몇 개의 타이밍 경로를 보고할지를 설정하는 옵션, Default : nworst setting (따로 설정 안할시)
주로 설계에서 타이밍 분석 범위를 제한하거나 특정 경로를 집중적으로 분석하기 위해 사용
ex)report_timing -max_paths 20-> 최대 20개의 타이밍 경로를 출력.
만일, report_timing -nworst 5 -max_paths 10 ->가장 나쁜 5개의 경로를 우선 분석하되, 최대 10개의 경로만 출력.
++++ -slack_lesser_than 0 Slack이 0보다 작은 경로(타이밍 위반 경로)만 출력.
설계가 커지고 이름이 중복되는 경우가 많아지게 되는데,
예: 셀 이름과 핀 이름이 동일할 수 있음.
특정 오브젝트를 검색하려면 오브젝트 유형을 명확히 지정.
PrimeTime에서는 get_* 명령어를 사용하여 특정 오브젝트를 검색.
get_cells : 셀(모듈이나 인스턴스)을 검색합니다.
get_pins : 핀(셀 내부의 포트)을 검색합니다.
get_ports : 상위 설계의 입력/출력 포트를 검색합니다.
get_nets : 넷(배선)을 검색합니다.
get_clocks : 클럭을 검색합니다.
get_lib_cells : 라이브러리 셀을 검색합니다.