首页 理论教育时钟树综合:简介与优化

时钟树综合:简介与优化

【摘要】:时钟树综合前的时钟网络如图8.27所示,呈发射状。为了平衡寄存器到时钟端口的延时,时钟树综合通过许多专用的时钟缓冲单元来搭建平衡的网状结构。也就是基于如上原因,时钟树综合这一步骤在数字物理设计流程中,一般在布局完成后进行。具体到Encounter工具,Encounter的时钟树工具现在版本使用的有两个时钟树综合引擎,两者均有读入SDC约束的能力。

时钟树综合前的时钟网络如图8.27所示,呈发射状。为了平衡寄存器到时钟端口的延时,时钟树综合通过许多专用的时钟缓冲单元来搭建平衡的网状结构。时钟树有一个源点,一般是时钟输入端(clock input port),也有可能是design内部某一个单元输出脚(cell output pin),目的就是使所用终点的Clock时序满足设计要求。

时钟树综合之所以在数字物理设计流程中进行而非在综合时进行是因为:在综合时,所有寄存器位置未知,所以时钟根节点到寄存器CLK端延时并不确定,也就无法控制时钟树综合后最终的时钟偏移(skew)值。也就是基于如上原因,时钟树综合这一步骤在数字物理设计流程中,一般在布局完成后进行。

具体到Encounter工具,Encounter的时钟树工具现在版本使用的有两个时钟树综合引擎(CK及CCopt),两者均有读入SDC约束的能力。也就是说如果SDC约束到位,那么在Encounter进行时钟树综合的时候可以无需进行其他设置,直接进行时钟树生成。但是在工程中,一般进行逻辑综合的工程师与进行物理设计的工程师往往并不是同一个人,前端在进行时序约束的时候很难考虑到寄存器位置等物理信息,造成SDC的时钟约束与实际设计需求有所偏差。所以需要物理设计工程师在此步骤根据前端设计的需求,进行时钟约束的一些修改,并完成时钟树的生成。

CK engine是现阶段Encounter的默认CTS引擎(目前最新版本为13.X,而在14.X之后的版本默认引擎会更新为CCopt)。使用CK engine进行时钟树综合,与使用ICC进行CTS的方法大同小异,都是将CTS划分为两个阶段:时钟树生成与时序优化。时钟树生成是在ideal clock的基础上,通过ctstch文件的控制,生成符合约束条件的时钟树(如果约束条件太强使得综合无法达到,则返回迭代后的最优值)。时钟树生成后的时序优化是根据时钟树生成的结果进行设计的时序优化。

978-7-111-55094-5-Chapter08-27.jpg

图8.27 时钟树综合前的Clock

CCopt是2011年Cadence并购Azuro公司后嵌入到Encounter流程的一个点工具,它可以为设计提供功耗(时钟树功耗降低达30%,芯片总功耗降低达10%)、性能(对于GHz的设计而言时钟树频率可提升100MHz之多)、面积(时钟树面积减少达30%)方面的改进。之所以有如此的性能,与它的工具构建思路和CK engine不同有很大关系,它并不区分时钟树生成与时钟树生成后端时序优化,而是将两者合并到一起进行,通过时序优化驱动时钟树的生成,这就使得时钟树生成时的常规约束条件(例如skew)在使用CCopt的条件下变得并不十分重要(当然,也可以将skew作为CCopt的一个约束量),从而得到更好的设计质量。更好的时钟树设计质量带来的tradeoff是工具运行时间的增加,在现有版本下,运行CCopt的时间相比较CK engine会增加很多。但是时间的增加主要是由于两个公司工具的融合造成数据格式的相互转换时间过长,相信随着CCopt完全嵌入Encounter流程,该问题会被迅速解决。