CCD 并发时钟数据优化

类型: concepts
引用论文: 15 篇
Concurrent Clock and Data 概念

CCD 并发时钟数据优化

概念解析

定义与起源

术语定义:CCD(Concurrent Clock and Data,并发时钟数据优化)是Synopsys物理设计工具中的一项高级优化技术——在同一个优化引擎里同时调整时钟延迟和数据路径延迟。传统流程中CTS(时钟树综合)和Data Path Optimization是分开的——CTS先把时钟延迟固定了,然后优化数据路径在这个固定时钟延迟下满足时序。CCD打破了这一顺序——同时移动时钟和数据。

CCD的核心insight是:有时修数据路径不如修时钟路径。如果一条setup-violated路径的数据到达太晚——传统做法是加快数据路径。CCD说:为什么不把捕获时钟延迟一点?把时钟沿往后推——等于给数据更多时间。这就是useful skew——CCD自动找到最优的useful skew分配。

核心要义

第一,CCD打破了"CTS先、数据后"的线性流程。 传统流程:Placement→CTS(固定clock latency)→Post-CTS Optimization(调整数据路径)。CCD:Placement→CCD(Joint Optimization of clock+data)→Post-CCD Refinement。CCD可以在数据优化过程中调整时钟——如果发现某条路径的setup可以通过延迟捕获时钟解决——CCD会插入时钟buffer——不是数据buffer。

第二,CCD的优化空间=时钟延迟的"可借区间"。 你可以把捕获时钟延迟——但不能延迟超过一个时钟周期(否则数据就到了下一个周期)。每位时钟延迟——受hold margin限制(延迟太多会导致hold violation)。CCD在setup margin和hold margin之间找最优的时钟延迟分配。

第三,CCD特别适合高度不平衡的数据路径。 如果一条路径有30级逻辑(长路径、setup紧张)而相邻路径只有5级(短路径、hold紧张)——CCD可以给长路径的捕获时钟加延迟(帮setup)、给短路径的发射时钟加延迟(帮hold)。人工做这种逐路径的时钟偏斜几乎不可能。

实践应用

* CCD不是替代CTS——是增强CTS:CTS建立初始时钟树拓扑→CCD在初始拓扑上做精细调整。 * CCD的适用范围:对setup和hold都紧张的设计(高度优化)效果最好。对于hold-rich的设计(很多hold余量)也可以利用hold余量换setup。 * CCD和useful skew的关系:useful skew是概念——CCD是自动化工具。CCD自动发现并利用useful skew机会。

实战案例

  • 某GPU的CCD救局:传统流程跑完后WNS=-30ps——修了3轮ECO还是负。开CCD——自动给8条关键路径的捕获时钟加5-15ps延迟——WNS变为+5ps。而这8条路径的hold全clean——hold margin正好够。

  • CCD vs 手工useful skew:某芯片的手工useful skew调了2周——只调了12条路径。CCD 3小时自动调了全部50万+路径——找到2300条可从useful skew受益的路径——WNS从-40ps变+15ps。

  • CCD的hold风险:CCD在某设计上过于激进——给200+条路径的时钟加了延迟——导致50条hold violation。调整CCD的hold margin约束后——降到5条hold violation——全部可手工修复。

常见误区

误区一:CCD能解决所有时序问题。 CCD擅长修复中等到轻微的setup violation。对于严重的violation(WNS<-100ps)——需要架构级修复(减少逻辑级数、增大驱动)。CCD是精修工具——不是重构工具。

误区二:CCD开了一定更好。 CCD在某些设计上可能过度优化——引入了过多的时钟调整——增加了OCV敏感度和hold violation风险。always run with hold margin check。

误区三:CCD=useful skew。 CCD包含useful skew——但还有更多:它同时优化data path logic restructuring、buffer sizing、VT swapping——不只是时钟偏斜。

思想演变

**2010
CCD首次引入ICC**:最初的CCD只在CTS阶段做concurrent优化。
**2015
CCD扩展到全流程**:Fusion Compiler将CCD扩展到placement、CTS、post-route——全流程concurrent优化。
**2018
CCD+机器学习**:ML预测哪些路径最可能从CCD受益——优先在这些路径上开CCD——节省运行时间。
**2022–present
CCD+AI 自动调参**:AI自动调CCD的约束参数——无需人工设置hold margin/effort level。

原话引用

"CCD is like having a timing engineer who can simultaneously optimize every clock buffer and every data path on your chip."—— Synopsys ICC2 首席架构师, 2018
"传统CTS先固定时钟再调数据——CCD说'时钟和数据是一家人,为什么要分开优化?'"—— SNUG San Jose 2019
"CCD不是魔法——它只是把你已经在手工做的事情自动化了。但它比你做得更快、更全面、更不会漏。"—— 物理设计工程师, 内部经验