表-1显示了“run route clock”期间的自动克隆与独立ICG克隆间比较。我们对几个重要的时钟网络标准进行了比较。结果很容易就判定“run route clock”期间的自动克隆所产生的插入延迟更长、树层更多以及叶转换(leaf transition)速度更慢。
2.以最短延迟创建平衡的时钟树
在时钟综合之前,我们需要通过“force plan clock”来定义时钟约束。
force plan clock $m –balanced_routing –buffer –inverter –max_skew
我们也需要在创建时钟树前对指定的时钟采取额外的控制。为了在快慢两个角点上获得平衡的时钟树,考虑RC分布的同时平衡层数差不多的时钟树至为重要。互连线延迟的伸缩范围随着横跨各个角点金属层的不同而有所不同。Talus提供了一个选项“-balanced_routing”,可指出以平衡方式执行的时钟布线,从而满足了这种要求。
我们也通过下列命令将时钟网络的布线层限制于metal4和metal5:
force model routing layer $m lowest metal4 –net_type clock
force model routing layer $m highest metal5 –net_type clock
Talus遵从上述这些指令来创建时钟树;多数的时钟网络是在metal4和metal5进行的布线。据实验结果显示,如树层、时钟树延迟和叶转换等大多数树结构在起始树创建后就已形成。它对于评估树质量并决定是否需要向前移动来说至为重要。同时,它也能帮助解决时钟树问题并加速迭代。Talus提供了一整套的树分析命令以及功能强大的GUI;但分析工作主要针对整个时钟树或整个时钟域而进行;它并不支持对子分支树结构和时序的分析。为了分析时钟树的详细信息,我们开发了一些脚本以依据分支和域报告时钟树。对于时序收敛,我们关心的是叶转换(leaf slew)直方图和每个时钟域的最大插入延迟;对于时钟分布,我们关心的是树层、缓冲区/触发器/锁存器分布。
下方表-2和表-3是一时钟分支的时钟分析报告样本。从结构报告,我们不难发现所有触发器都在第7层和第8层。这对于时钟树的鲁棒性和多角时序关连来说非常重要。叶转换也很不错。平均转换率完全符合我们的设计要求。
据数据显示,通过定量的控制和数据库准备工作,“run route clock”能够处理复杂的时钟树结构并产生优秀的结果质量。