首页 理论教育连接宏单元和标准单元的方法及注意事项

连接宏单元和标准单元的方法及注意事项

【摘要】:完成mesh的生成后,宏单元和标准单元连线方式与传统流程一致。采用-partial的方式可以将低层金属straps下方的区域设定为标准单元端口的禁区,采用-complete则会将STRAPS下方的区域设置为整个标准单元的禁区。由于时钟树综合还未进行,因此时钟网络依然当作零延时的ideal net进行计算,因此不存在需要进行hold违例检查的情况。

这两步均是将单元电源、地端口连接到已有的电源、地网络(ring和strap),宏单元使用的命令为preroute_instances,而标准单元的电源、地连接通常采用一层金属轨道的方式,其命令为preroute_standard_cells。在某些设计中,设计人员可能还希望在数字电路的周围和宏单元周围加入end caps,其方法为

除了采用上述的传统方法,目前ICC也提供了一种基于模板的方法来完成电源、地网络的方法(Template-Based Power Network Synthesis,TPNS),可以用来替换传统方法的前两步。TPNS也可分为2步:

1.设置power plan template

template文件内部定义了电源网络所要采用的每一层金属的间距、宽度及其他定制化信息,与传统方法中各使用一层金属用来放置纵向/横向电源条不同,使用TPNS的设计中往往需要应用多层金属来作电源、地网络(MESH),通常而言高层金属宽度相对较大,间距也较大,而低层金属宽度较小,密度则较高。当然具体设计还是要根据电路实际出发,保证线路congestion不出现大面积的违例为目标。使用命令

可以例化一个具体的template用于电源、地网络的综合。

设置完电源网络综合的template后,可以利用GUI界面中的power plan strate-gies界面来预览根据现有的设置所生成的电源、地网络。设计人员可以直观地进行检查,有问题可以反复快速迭代。

2.生成电源、地网络

使用命令compile_power_plan-ring来自动生成ring,使用命令compile_pow-erplan来自动生成mesh。

完成mesh的生成后,宏单元和标准单元连线方式与传统流程一致。在得到完整体的电源、地网络后,需要用命令analyze_fp_rail来对芯片整体的压降进行一次计算,确保没有任何区域的压降大于库文件中所定义的电压值,防止由于电压过低而导致单元延时计算偏离库文件所提供的值,导致芯片无法正常工作。

由于电源、地网络的生成,芯片的布线空间进一步压缩,特别是starp下方的区域布线空间相对而言更加有限。可以采用:

的方式来调整标准单元的布局空间。采用-partial的方式可以将低层金属straps下方的区域设定为标准单元端口的禁区,采用-complete则会将STRAPS下方的区域设置为整个标准单元的禁区。随后依然采用create_fp_placement及route_zrt_global-congestion_map_only true-exploration true来进行自动布局与congestion计算,检验是否还符合congestion的要求,如果不符合还需要调整电源、地网络甚至调整布局来反复迭代。

完成了电源、地网络后需要再次对芯片的时序进行检查。由于时钟树综合还未进行,因此时钟网络依然当作零延时的ideal net进行计算,因此不存在需要进行hold违例检查的情况。但其他的高扇出网络,如复位网络需要进行buffer tree的综合,使用命令optimize_fp_timing-hfs_only,随后采用

来检查芯片的时序信息。如果芯片的时序信息符合设计者的要求,便可以将布局情况导出到DEF文件中,方法为write_def-fixed-blockages-specialnets-output mychip.def,导出DEF文件可以用于后续的ICC流程,也可以用于二次DC综合,即在综合中导入物理层信息,使得综合中对线路的负载能有更准确的估计,从而提高综合质量。

如果时序检查后的结果不符合设计人员预期,可以采用optimize_fp_timing来进一步优化,如果还是不符合,就需要考虑调整布局方案,直至符合要求,导出DEF文件为止。