IT기술

CTS란? 하는법 & 주의점 총정리

backend엔지니어 2023. 3. 8. 11:01

CTS란?

Digital 설계에서 chip 전체에 걸쳐 clock 신호를 알맞게 분배하는 단계입니다. clock source에서 각 flip flop의 거리는 각자 다릅니다. 이 뜻은 clock에서 flip flop 도달하는 시간이 달라진다는 것입니다. 도달하는 시간이 같게 해 동시에 flip flop이 동작할 수 있도록 하는 것이 CTS입니다. 그리고 CTS의 목적은 skew를 최소화하는 것입니다. 따라서 CTS에서는 buffer/Inverter를 삽입하여 skew를 최소화합니다. 클럭 신호는 디지털 회로에서 가장 중요한 신호 중 하나로, 회로 전체의 성능과 동작 안정성에 영향을 미칩니다. 따라서 CTS는 클럭 신호 전달 경로의 노이즈, 지연 시간 등을 최적화하여 회로의 성능을 향상시키는 역할을 합니다. CTS는 주로 논리 합성 및 노출 후 디자인 과정에서 수행됩니다. CTS를 수행하기 위해서는 클럭 신호의 출발점과 목적지를 설정하고, 클럭 신호 전달 경로에 버퍼를 추가하거나 삭제하는 등의 작업을 수행해야 합니다. 이를 통해 클럭 신호 전달 경로의 전압 드롭과 노이즈를 최소화하고, 지연 시간을 최적화하여 클럭 신호의 안정성과 전달 속도를 개선할 수 있습니다. CTS는 디지털 회로 설계에서 중요한 역할을 하며, 회로의 성능을 높이는 데 매우 중요한 역할을 합니다. 따라서 CTS는 반도체 산업에서 매우 중요한 기술 중 하나로 인식되고 있습니다.

 

CTS 하는 법

CTS (Clock Tree Synthesis)는 디지털 회로에서 시계 신호를 전달하는 회로 구성을 최적화하는 작업입니다. CTS를 수행하는 방법에 대해 구체적으로 알려드리겠습니다. 대부분 현재 나와있는 EDA툴이 자동으로 해줍니다. CTS 같은 경우는 optimize를 하는 단계이기 때문에 엔지니어가 딱히 건들게 많이 없습니다. Floorplan은 엔지니어가 어떻게 메모리들을 배치하냐에 따라서 결과가 크게 달라지는데 CTS는 그렇지 않습니다. 오히려 CTS가 잘 안 되면 Floorplan을 다시 해서 timing을 잡아야 할지도 모릅니다. 현재 대부분의 반도체기업에서는 시스템화가 잘되어 있습니다. 그렇기 때문에 CTS를 하는 TCL파일이 있고 그 TCL파일을 source 하면 자동으로 돌아갑니다. 여기서 엔지니어가 해줄 수 있는 건 CTS과정에서 latency값, usefulskew값등을 조절할 수 있습니다. 이 값들을 조절하는 기준은 place가 끝난 DB의 timing값을 보고 결정을 하거나, CTS를 한번 돌려보고 나온 timing값을 보고 나서 다시 수정을 해줄 수 있습니다.

 

1. 네트리스트 생성 : CTS를 수행하기 위해서는 먼저 네트리스트를 생성해야 합니다. 네트리스트는 회로 구성 정보를 담은 파일로, 회로 구성 정보를 입력하는 데 사용됩니다.

2. 타이밍 분석 수행 : CTS를 수행하기 전에는 타이밍 분석을 수행해야 합니다. 타이밍 분석은 회로의 동작 시간을 측정하는 작업으로, 회로의 동작 시간을 측정하여 CTS 수행 시간을 예측할 수 있습니다.

3. 시계 신호 경로 설정 : CTS를 수행하기 위해서는 시계 신호 경로를 설정해야 합니다. 시계 신호 경로는 전달 경로를 최적화하기 위한 기준으로 사용됩니다.

4. 버퍼 삽입 : CTS를 수행할 때는 버퍼를 삽입하여 시계 신호의 전달 경로를 최적화합니다. 버퍼를 삽입하는 위치와 수량은 시계 신호 경로를 기준으로 설정합니다.

5. 시계 신호 전달 경로 최적화 : 버퍼를 삽입한 후에는 시계 신호 전달 경로를 최적화합니다. 이를 위해 전달 경로의 노이즈 제어와 레이아웃 규칙 준수 등을 고려해야 합니다.

6. 결과 검증 : CTS를 수행한 후에는 결과를 검증해야 합니다. 검증은 DRC (Design Rule Check) 등의 레이아웃 검증 도구를 사용하여 수행할 수 있습니다. 검증을 수행하여 CTS 결과의 정확성을 확인해야 합니다.

7. CTS 결과 적용 : CTS를 수행한 결과를 회로 구성 정보에 적용하여 최종적으로 시계 신호의 전달 경로를 최적화합니다.

이와 같은 과정을 통해 CTS를 할 수 있습니다.cadence의 innovus, synopsys의 icc를 통해서 할 수 있습니다.

 

CTS주의점

CTS (Clock Tree Synthesis)는 디지털 회로에서 시계 신호를 전달하는 회로 구성을 최적화하는 작업입니다. CTS를 수행할 때 다음과 같은 주의점을 고려해야 합니다.

 

1. 시계 신호의 노이즈 제어 : CTS는 시계 신호의 전달 경로를 최적화하는 것이 목적이기 때문에, 노이즈에 대한 강건성 (robustness)을 고려해야 합니다. 노이즈가 발생하는 경우 시계 신호 전달이 부정확해지므로, 노이즈 제어가 중요합니다.

2. 레이아웃 규칙 준수 : CTS를 수행할 때 레이아웃 규칙을 준수해야 합니다. 레이아웃 규칙을 준수하지 않으면, 디바이스의 제조 공정에서 문제가 발생할 수 있습니다. 따라서 CTS를 수행하기 전에 레이아웃 규칙을 확인하고 준수해야 합니다.

3. 디바이스의 기능적 요구 사항 고려 : CTS는 시계 신호의 전달 경로를 최적화하는 작업이기 때문에, 디바이스의 기능적 요구 사항을 고려해야 합니다. 디바이스의 기능에 따라 시계 신호의 전달 경로가 달라질 수 있으므로, 이를 고려하여 CTS를 수행해야 합니다.

4. CTS 결과의 검증 : CTS를 수행한 후에는 결과를 검증해야 합니다. 검증은 DRC (Design Rule Check) 등의 레이아웃 검증 도구를 사용하여 수행할 수 있습니다. 검증을 수행하여 CTS 결과의 정확성을 확인해야 합니다. CTS가 끝나고 나서 Report를 꼭 확인해야 합니다. CTS에서 timing값이 제대로 나오지 않으면, 이후 flow를 진행하면서도 timing값이 제대로 나오지 않을 확률이 높기 때문입니다. 그래서 CTS단계에서 현재 내가 설계를 제대로 했는지 꼭 확인을 해야 해요. 그렇지 않으면 시간낭비를 할 수 있습니다.

5. CTS 시간과 리소스 예산 : CTS는 수행 시간과 리소스를 많이 소비하는 작업입니다. 따라서 CTS를 수행할 때는 시간과 리소스 예산을 고려해야 합니다. CTS를 수행하는 동안 다른 작업을 수행할 수 없기 때문에, 시간 예산을 잘 설정하여 작업 효율성을 높여야 합니다. 또한 CTS를 수행할 때는 컴퓨팅 리소스를 충분히 할당하여 작업 시간을 최소화해야 합니다.

 

CTS에 필요한 용어 소개

CTS는 클럭 신호의 전달 경로 최적화를 위한 기술이므로, 이를 수행하는 과정에서 사용되는 여러 용어들이 있습니다. 대표적인 용어들은 다음과 같습니다.

 

1. Clock tree: 클럭 신호의 전달 경로를 의미합니다. clock tree를 통해, skew를 최소화하는 것을 볼 수 있습니다. clock을 생성해 주는 곳은 PLL입니다.

2. Clock buffer: 클럭 신호를 증폭시키기 위한 버퍼로, 클럭 신호를 전달하는 경로에 삽입됩니다.

3. Clock skew: 클럭 신호의 전달 경로에서 시간 차이를 의미합니다.

4. Clock net: 클럭 신호의 전달 경로 중 하나를 의미합니다.

5. Clock gating: 클럭 신호를 끄거나 켜는 기술로, 클럭 신호의 전달 경로에 사용됩니다.

6. Clock jitter: 클럭 신호의 전달 경로에서 발생하는 불안정성을 의미합니다.

7. Skew optimization: 클럭 신호의 전달 경로에서 시간 차이를 최소화하기 위한 최적화 작업입니다.

8. Clock insertion delay: 클럭 버퍼 삽입에 따른 회로 지연 시간을 의미합니다.

9. 클럭 트리 합성 (CTS) 엔진: cts작업을 수행하는 소프트웨어 엔진입니다.

10. slew: 클럭 경로 차 지연 시간 간. 클럭 신호 전환 시간을 의미합니다. 즉, 클럭 신호가 0에서 1 또는 1에서 0으로 전환되는 데 걸리는 시간입니다. Slew가 길 경우 클럭 신호가 느리게 전환되므로 전압 드롭이 발생할 가능성이 높아지고, 회로 성능에 영향을 줄 수 있습니다.

11. latency: 클럭 신호가 전달되는 데 걸리는 시간입니다. 클럭 버퍼를 추가하거나 삭제하는 등의 작업으로 인해 발생할 수 있는 시간 지연을 의미합니다. Latency가 길 경우 클럭 신호의 도착 시간이 지연되므로 전압 드랍이 발생할 가능성이 높아집니다.

12. Skew: 클럭 신호가 전달되는 데 걸리는 시간 차이를 의미합니다. 즉, 클럭 신호의 전달 경로 중에서 가장 늦게 전달되는 경로와 가장 빠르게 전달되는 경로 사이의 시간 차이입니다. Skew가 클 경우 클럭 신호의 안정성과 동작 속도에 영향을 줄 수 있습니다.

13. Useful skew: 클럭 신호의 전달 경로에서 발생하는 시간 차이 중에서 회로 동작에 유용하게 활용할 수 있는 범위를 의미합니다. 즉, 전달 경로에서 발생하는 Skew 중에서 회로 성능 개선에 기여하는 범위를 의미합니다. 예를 들어, flip flop이 3개가 있습니다. 맨 첫 번째에서 +15의 skew를 가지고 두 번째는 -5, 세 번째는 +5를 가집니다. 첫 번째의 skew를 두 번째에 +10 만큼 빌려와서 서로의 skew을 통일해 주는 것이 useful skew입니다. 이러한 용어들은 CTS를 수행하는 과정에서 자주 사용되는 용어들로, 이를 이해하고 활용하는 것이 CTS를 이해하는 데 매우 중요합니다.

 

위와 같은 용어들은 CTS 과정에서 클럭 신호의 전달 경로를 최적화하기 위해 고려해야 하는 중요한 요소들입니다. 이러한 요소들을 고려하여 CTS 과정을 수행하면 클럭 신호의 안정성과 동작 속도를 최적화할 수 있습니다.