本文已参与「新人创作礼」活动,一起开启掘金创作之路.
查看Innovus UG > Design Implementation Capabilities--Placing the Design > Adding Padding部分。
Adding Instance Padding
Instance padding is specified in terms of the number of sites occupied by each instance. For example, if a row fits 30 single-site instances without padding, you can specify padding of two sites for each instance in the row. In this case, each instance in the row will then occupy three sites, and the row will fit only 10 instances.
Specify the following command:
specifyInstPad
The following command adds padding of 2 sites around instance named U27316:
specifyInstPad U27316 2
(Optional) Report instance padding by using the following command:
reportInstPad
To delete instance padding, use the following command:
deleteInstPad
Adding Module Padding
To reduce localized congestion, add module padding.
1.Specify the following command:
setPlaceMode -place_global_module_padding $module $factor
This command adds padding within hierarchical modules by spreading out the standard cell instances within the modules. The padding is specified in terms of a factor that is applied to the instance area of all the cells within the module. For example, a factor of 1.2 increases the area by 20 percent.
Note: The software ignores factors that are less than 1.0.
2.Run standard cell placement
Adding Cell Padding
Cell padding adds hard constraints to placement. The constraints are honored by cell legalization, CTS, and timing optimization, unless the padding is reset after placement so those operations can use the reserved space. You can use cell padding to reserve space for routing.
Specify the following command:
specifyCellPad
This command adds padding on the right side of library cells during placement. (Padding location is dependent on the orientation of the cell. For example, if the library cell is flipped when it is instantiated, the padding is on the left side.) The padding is specified in unit of placement SITE. For example, if you specify a value 2, the software ensures that there is additional clearance of two placement SITES on the right side of the specified cells.
上面的命令会在placement的过程中为指定的cell在右侧加上padding(padding的位置与cell的orientation有关,如果cell被翻转,那么padding就会加在cell的左侧。)
To delete cell padding, use the following command:
deleteAllCellPad
总结
通过加入module padding的方式,可以缓解局部的congestion问题。 module padding是作用在一个module,使属于这个module的std cell能够占据更大的area,从而分散摆放。module pading通过指定factor来使module占据更大的面积,指定的factor必须大于1,如1.2就代表module占据面积为原来的1.2倍。
instance padding是作用在某一个被实例化的instance上,可以通过-top|-bottom|-left|-right来指定padding加在哪个方向,left|right后面的值指定这个instance占据几个site的位置,而-top|-bottom后面的值以row为单位。 举例来说,加入一个row上在不加padding的情况下可以放30个single-site 的instances,那么当我们给这些instance指定了左右各一个site的padding时,每一个instance将占据3个site的位置,那么这条row上就只能放下10个instance了。
Cell padding属于PR tool在place过程中必须遵守的hard constraints。除非在place完成之后对之前定义的cell padding进行了reset,否则在cell legalization, CTS和timing optimization过程中不能去利用那些属于padding的space。因此,我们可以通过cell padding的方式为routing预留一些空间。 cell padding是作用在library中的某一类cell上,比如INV1,默认是加在right side,以site为单位。同样可以用-top|-bottom来指定纵向的padding值,以row为单位。