第I章:引言
好的时钟树对整个芯片的建立和保持时序收敛、功耗及鲁棒性均较为有益。由于我们芯片是层次化、高速、数百万门极电路的设计,因此对时钟树有许多特殊要求。在本文中,我们介绍了一种‘如何使用Talus CTS引擎来设计可满足特定要求的时钟树’的方法。第II章描述了高速VLSI芯片的设计和时钟树要求。第III章说明了时钟树创建的详细实施过程。第IV章介绍了来自我们亲身CTS体验的最佳实践。第V章总结了我们对Talus CTS的使用。
第II章:设计与时钟树要求
我们的芯片以500+ MHz的高频率工作,包含有超过千万个门极电路。芯片的设计采用的是深亚微米工艺技术。芯片包含了如PLL等模拟设备以及数百万个SRAM和软宏(soft macro);有数十个时钟域。对于一个有着如此规模的芯片,下述几个是必须要达到的关键目标: 1. 建立时序收敛;2.充足的保持时序容限(margin)以实现良率;3. 快慢两个角点中时钟树的平衡;4.最小化时钟网络延迟以减少抖动,实现芯片可靠性;5.最小化时钟网络功耗以降低整个芯片的功耗;6. 最小化时钟网络上串扰耦合,达成时序收敛和良率。
第III章:实施
本章说明了采用Talus创建时钟树的几个主要步骤。除了使用Talus内置命令以外,我们也可采用半定制脚本来增强某些功能。通过Talus与半定制脚本的结合使用,我们可在时钟树设计上获得非常好的结果(QOR)。
1. 克隆时钟门控(ICG)
ICG克隆是时钟树创建成功的关键,它对时序、时钟树结构和功耗均有巨大影响。ICG单元可影响到时钟路径和数据路径。如何克隆和设置它们至为重要。如果ICG单元是设置在时钟树的顶层,那么它可降低时钟网络功耗;原因在于当ICG被禁用时,ICG后的子树也将被完全关闭。不过,ICG单元设置在时钟树的较高层会使得ICG的enable引脚上的建立时序更难以达成。因此它算是时序与功耗间的一种折衷方案。好的ICG克隆应能够最小化时钟树功耗,同时还不会引入无法解决的时序问题。Talus提供了两种ICG单元克隆方式:一种是“run route clock”期间的内置引擎;另一种是独立ICG克隆。从我们的经验来说,独立ICG克隆可提供更好时序和树结构,同时它对芯片功耗问题也很有帮助,设计师在如何克隆ICG单元的方式上也拥有更多的控制和配置能力。
在我们的设计中,我们通过使用脚本来预设ICG的enable引脚上的建立时序容限和时钟引脚上的转换率以及门控单元最大扇出数。容限是为了弥补时钟树创建后ICG单元和常规触发器间的偏移,能够降低ICG单元CTS后时序变坏的可能。结合使用这些约束,Talus在ICG克隆上可起到很好作用。Talus极具智能,可有选择地克隆在E引脚上建立时序棘手的ICG单元,同时让ICG单元保有未被克隆时的良好时序余量(slack)。那些未被克隆ICG单元能够设置于时钟树较高层,这对降低动态功耗来说较为有益。
图-1显示了Talus “run gate clone”后的结果。我们能够看出Talus基于触发器的位置自动将其扇出的触发器分成几组。由于它同时将RC考虑在内,因此ICG克隆后,引脚转换率仍是不错。有时,我们会发现触发器分组方式并非最佳,导致克隆ICG单元的布局也并不是最好的,那么我们可以应用一些定制脚本对这些触发器进行重新分组并优化布局。
图-1