文献标识码: A
DOI:10.16157/j.issn.0258-7998.199804
中文引用格式: 边少鲜,David He,栾晓琨,等. 基于Innovus提升芯片性能的物理实现方法[J].电子技术应用,2019,45(8):48-52,60.
英文引用格式: Bian Shaoxian,David He,Luan Xiaokun,et al. A physical implementation method based on Innovus to improve chip performance[J]. Application of Electronic Technique,2019,45(8):48-52,60.
0 引言
随着集成电路工艺发展,物理设计流程已相对成熟,但是随着芯片规模增大,频率提升,复杂度提升,芯片的物理实现变得越来越困难。研究和实践均表明,插入缓冲器是物理设计有效的优化互连延时的方法,但是,缓冲器插入有其局限性。目前的研究及电子设计自动化(Electronics Design AutomationEDA)工具大多都没有考虑寄存器和逻辑单元布局(placement)后物理位置的影响,寄存器和逻辑单元通常被认为放置在最佳位置。由于时钟树综合(Clock Tree Synthesis,CTS),缓冲器的数量急剧增加,结果可能会发生显著变化。由于这些原因,在物理设计阶段仍可能发现许多时序违反,因此很难避免冗长的设计迭代。
本文通过建立适用于高性能芯片设计的物理设计流程,并对缓冲器的特性及作用进行分类讨论,提出一种在布局阶段对设计进行二次优化的方法,并结合这个方法给出相应的物理设计流程。最终使物理设计性能得到优化。
1 物理设计介绍
1.1 物理实现方式
随着芯片设计复杂度增加,规模增大,频率提升,从RTL到GDSII过程的每一步,对于EDA工具、工程师和计算机硬件都是巨大的挑战[1],设计收敛的关键问题往往集中在某些模块,层次化设计就是“自上向下”地将大而复杂的设计分割成多个分割块,然后对各个分割块单独进行物理设计。层次化设计已经成为大规模复杂芯片后端设计的主流方法[2]。对于分割块的物理设计是在逻辑网表基础上以标准单元作为最底层的子节点进行“自下而上”的展平式设计的。各分割块物理设计完成后合并到顶层完成整个设计。
1.2 传统布局布线流程
芯片设计的物理实施通常被简称为布局布线(Place-and-Route,PR)[2]。由于布局布线的起点是插入扫描链后的门级网表,先进行导入设计(Load design),即将门级网表和约束文件导入PR工具中;然后进行Floorplan对输入输出管脚(Input Output port,I/O)、硬核(hard intellectual property,IP)和宏模块进行物理位置的规划;接着进行placement,即PR工具自动放置标准单元;接下来用缓冲器将时钟送到各寄存器、IP、宏模块的时钟输入端进行CTS;再进行布线(Route),在满足工艺规则、设计规则以及逻辑规则的约束下,将单元和I/O用金属连接起来;布线结束后会根据设计的最终检查标准进行优化。图1所示为布局布线的流程图。
传统的物理设计流程就是针对上述布局布线流程,以时序为主要参考指标进行设计,由于在前面的流程中不能得到后面步骤的信息,因此会在前面以不确定性(uncertainty)来进行额外约束。uncertainty具体值的设置往往来自经验值,placement阶段设置额外约束的目的是使标准单元位置更合理,所以需要加入对CTS和Route两个阶段的预估值。CTS阶段设置额外约束的目的是建立更加合理的时钟树结构,同时需要加入Route阶段的预估。逐步约束,逐步优化,保证每一阶段的时序收敛,并达到最终设计的收敛。这种传统流程一个很严重的问题是为了设计的收敛而进行过约束,从而进行设计,尤其是在placement阶段要加入CTS和Route两个阶段的预估值,偏差就更大。
1.3 Innovus介绍
Innovus是业内主流的PR设计工具,可以提供更加合理有效的物理实现解决方法,在运行效率、时序分析、设计优化方面都体现了强大的功能。在传统PR流程的基础上,Innovus可提供更优化的方法。
2 物理实现优化方法介绍
本节在传统PR流程基础上,基于Innovus建立更适用于高性能芯片设计的PR流程,并对16 nm工艺下缓冲器的特性进行统计分析,在此基础上提出placement的二次优化方法。以16 nm高性能芯片设计为例,应用PR流程和二次布局优化方案,对placement二次优化前后的设计指标进行对比分析。也同时对比了placement二次优化后的数据版本运行到PR结束的变化,使物理设计更合理。
2.1 新建布局布线流程
Innovus在placement阶段已经对CTS和Route两个阶段的预估做了很好的方案。早期时钟树综合功能(Early Clock Flow,ECF)是在placement阶段调用时钟树协同优化(Clock Concurrent Optimization,CCOPT)引擎创建时钟树块并在placement阶段自动优化时序时反标更准确的时钟延时[2]。这种方法能够规避由于placement看不到之后的CTS信息,导致物理上时钟树缓冲器及时钟绕线资源被占用,性能上影响CTS结果的弊端,使placement的结果更趋向于CTS之后的结果,减少了从placement阶段到CTS阶段的设计偏差。
在placement阶段的预布线可以很好地预估后续Route的情况,但是工具在优化计算时序时对电阻电容参数(RC Factor)的设置是理想值1,这明显是不合理的,所以Innovus可提供对Route之后的RC Factor重新抽取计算,得到新的RC Factor,更新Route前设计的RC Factor;同时在抽参数的时候这样工具在对预布线的计算就会更接近Route的结果,从而减少了从placement阶段到Route阶段的绕线偏差。实验结果显示,更新RC Factor之后,Route前后的偏差明显缩小。
整个PR流程使用多模式多端角(Multi Mode Multi Corner,MMMC)分析方式,并且全程使用AOCV,避免时序过优化,同时减少物理设计与工艺签核(signoff)分析模式不同造成的物理设计冗余。在placement之前预先放置好时钟门控,指导工具按照预先放置好的门控进行布局,并且对时钟根节点到门控的主干时钟预先选择更优的单元和更优的线宽,确保时钟能够更快更好地送到门控时钟输入端。由于本设计逻辑集中,寄存器集中,因此选择寄存器合并的优化方式进行placement,并在placement阶段使用ECF,减小placement与CTS之间的偏差。在CTS阶段使用了中继器(Buffer)与反相器(Inverter)混合的时钟树结构,更好地减少时钟树上的单元,从而减小功耗。将Route分为三步,先绕时钟线,再绕高层,最后绕低层,提升中高层绕线的质量。并且从PR结束后的设计中抽取RC Factor反标回placement前的设计,确保绕线前后互连金属计算偏差更小。最后执行布线后的优化。此外全程设计同时考虑优化功耗,指导工具在优化时序的同时不至于过分影响功耗。图2为Innovus优化后的流程。
2.2 16 nm工艺下缓冲器特点分析
研究和实践均表明,插入缓冲器是物理设计有效的优化互连延时的方法。为了指导工具使用更合理的缓冲器,本节对缓冲器类型进行对比分析。
已知在物理设计过程中缓冲器的主要作用是用来优化扇出、优化时序、优化逻辑结构。
图3所示为16 nm工艺下四种缓冲器在相同线负载条件下的延时统计,其中横轴为单元驱动力倍数,纵轴为单元延时,repeater1~4表示4种类缓冲器的编号。从图中可以看出,线负载相同,驱动力倍数相同的条件下,这四类缓冲器的上下沿延时曲线整体上随驱动力的增大呈现先快速减少的趋势,当驱动力倍数增大至D5后,单元延时趋于缓慢增加的稳定趋势。其中repeater1和repeater2的延时要小于repeater3和repeater4的延时,而repeater1和repeater2的延时比较接近;D1、D2小倍数的缓冲器驱动能力很弱。
图4所示为不同种类缓冲器的单元上下沿延时偏差,可见repeater3和repeater4这两种缓冲器正负沿均衡性较差,会影响传输信号的质量。
图5所示为从时序库文件查表得到不同种类缓冲器的漏流功耗情况。
由图5可知,这四类缓冲器都呈现驱动倍数越大漏流功耗越大的的关系,其中,repeater1和repeater2的曲线接近,repeater3和repeater4的曲线接近,相同驱动倍数的repeater3和repeater4的漏流功耗明显低于repeater1和repeater2,且在驱动力倍数增大至D5后,漏流功耗随驱动力倍数增加迅速增加。
结合图3~图5,对于这四类缓冲器进行总结如下:
(1)由于repeater3和repeater4的正负沿偏差太大,对传输信号质量有影响,因此这两类单元要尽量少用或者不用。
(2)驱动力倍数为D1和D2的驱动能力较弱,所以在分割线段时,获得的延时收益会很小,但其漏流功耗小,所以可用来优化对时序要求不紧张的大扇出。
(3)驱动力倍数为D5附近的缓冲器具有较好的驱动能力,且漏流功耗不至于过大,所以用来优化时序。对于驱动力D1和D2的缓冲器,由于D1缓冲器的漏流功耗稍大于D2,但其相同负载下的单元延时却明显大于D2,因此在优化时序时,可用D2替换D1。
(4)驱动倍数为D12以上的缓冲器,由于其漏流功耗比较大,且本身单元延时较大,因此对于较小的线负载考虑不用,如果有长线,可考虑使用。
(5)后续手工调整的时候可考虑用repeater2替换repeater1进行时序的优化。
2.3 二次布局优化方法
分析2.1节的Innovus优化流程,发现如果placement阶段结果太差,那么这个结果会随着PR流程的进行,一直影响后续步骤,增加PR工具的运算量,甚至设计无法收敛。如果placement标准单元放置不合理,会使逻辑走线距离太长,延时增加,并使时序恶化,而工具在做placement的时候是先做全局布局,然后再做详细布局,全局布局看到的信息不完整,只是粗略地放置,势必会有标准单元放置不合理。由此可见,如果能够在placement的时候让工具考虑到自身placement完成后的情况,这样就可以减少placement本身的过设计,提升设计性能。所以,为了更好的物理实现,placement的优化非常重要。
已知工具在placement的时候会同时插入缓冲器进行大扇出和长线的优化,同时也会对逻辑结构进行重新组合。如果先将逻辑单元和寄存器位置放置好后,根据实际的寄存器和逻辑单元全局信息重新进行设计优化,使缓冲器的插入更合理化,减少因缺少全局信息造成的缓冲器冗余,从而改善布局结果。
本节提出一种针对placement后的设计进行二次布局优化,减少placement自身偏差的方法,图6为二次优化流程图,方法如下:
(1)对placement设计中的缓冲器进行统计和分类,明确缓冲器所起的作用。
(2)删除原placement设计中的所有缓冲器。
(3)针对placement阶段时序违反报告出现的缓冲器,根据其发挥的不同功能,进行调整。若其是用来优化长线,那么就需要调整两个单元之间的位置;若是用来优化扇出,可考虑增加前级驱动力;若是做逻辑结构的优化,可对逻辑进行等价性修改。
(4)对删除缓冲器的placement设计进行二次优化,在二次优化时,除D5倍数外,禁止使用repeater3和repeater4。
(5)如果时序收敛,则二次布局优化结束,如果时序不收敛,可针对时序报告中的缓冲器按照2.2节中给出的缓冲器使用规则进行替换。
二次布局优化时已经考虑了更准确的寄存器和逻辑单元物理位置,能得到更优的placement阶段结果,减少后续步骤的偏差。
3 物理实现与分析
本节以16 nm下一款2.5G高性能芯片设计为例,实施上节建立的物理设计流程和二次优化方法。
3.1 二次布局优化前后时序路径的变化
本节中讨论了二次布局优化前后placement的结果。图7所示为两个寄存器reg1到reg2之间的一条建立时间(setup)时序路径二次优化前后在Innovus版图中的情况,白色三角形表示路径在该处有缓冲器插入。由图可以看出,在二次优化之前,这条路径上缓冲器位置杂乱,从reg1出来一段存在多个缓冲器反复插入引起的迂回绕线,同时中间网络线太长,明显不合理。经过二次布局优化后路径得到了更好的优化,不仅没有在reg1附近插入冗余的缓冲器,而且把长线中间加入了缓冲器做分割。优化前该条数据路径的延时为449 ps,优化后该条数据路径的延时为399 ps,与优化前的路径相比,延时减少50 ps。
3.2 二次布局优化前后缓冲器使用的变化
对二次布局优化前后placement设计中的缓冲器的使用情况进行分析,如图8、图9所示,其中pre代表优化前placement设计中对应缓冲器的数量,post代表优化后placement设计中对应缓冲器的数量。从这两幅图中可以看出,二次布局优化几乎没有使用repeater3和repeater4,对于repeater1的使用数量减少,repeater2的数量几乎同等数量增加。驱动倍数为D1的缓冲器数量有减少,驱动倍数为D2的缓冲器几乎同等数量的增加,由前面对缓冲器类型的分析中可以知道驱动倍数为D1的缓冲器的leakage稍大于驱动倍数为D2的,但其单元延时要明显大于D2,所以在时序优先的本设计中,D1的数量略有下降,D2的数量略有上升。
这符合2.2节中对缓冲器特性的分析,说明二次优化后对于缓冲器的使用更加合理化。
3.3 二次布局优化前后Placemet结果对比
工具在看到寄存器和逻辑单元的完整placement后,做二次布局优化就会根据较为真实的placement模型做设计优化,能够得到更优更合理选择缓冲器的类型、驱动和位置的分布。表1所示为二次布局优化前后placement的结果对比,表格中gatecount代表标准单元数量,repeater代表缓冲器数量,ULVT代表超低阈值电压单元占所有标准单元的比例,setup代表寄存器到寄存器的建立时间时序违反值,density代表密度,total leakage power代表总的漏流功耗,total wire length代表placement结束后的预布线总线长,其中pre代表二次优化前的数据,post代表二次优化后的数据,△代表pre的数据与post数据差值百分比。从表1可以明显看出经过二次优化后缓冲器的数量可以减少5.5%,漏流功耗降低11.3%,时序优化87.5%,只造成不到1%的绕线增加和密度增长。
3.4 Route后的结果对比
良好的placement结果对最终绕线结束后的时序影响很大,表2所示为Route后两个版本的结果对比。
通过二次布局优化,最终在Innovus下看到时序优化85.07%,功耗减少3.2%,线长减少0.37%,单元数量减少2.01%。
4 结论
在高性能芯片设计中,物理实现流程已经相对成熟,但是随着设计规模的增大,工艺的发展,物理设计难度增加。依据设计特点不断完善和优化物理实现流程是很重要的。本文在Innovus工具平台下建立更适合于高性能芯片设计的物理实现方法,并在此基础上引入二次布局优化的方法,通过二次布局优化方法在单元数量减少2.01%的基础上,总线长减少0.37%,功耗降低3.2%,时序优化85.07%,效果显著。
参考文献
[1] Cadence Innovus User Guide[EB/OL].[2019-05-11].http://www.cadence.com.
[2] 陈春章,艾霞,王国雄.数字集成电路物理设计[M].北京:科学出版社,2008.
作者信息:
边少鲜1,David He1,栾晓琨1,蒋剑锋1,翟飞雪1,蔡 准2
(1.天津飞腾信息技术有限公司,湖南 长沙410000;2.上海楷登电子科技有限公司,上海201204)