数字后端设计实现 | 数字后端PR工具Innovus中如何创建不同高度的row?

吾爱IC社区星球学员问题:Innovus后端实现时两种种不同高度的site能做在一个pr里面吗?

答案是可以的。

Innovus支持在同一个设计中中使用不同的row,但需要给各自子模块创建power domain。这里所说的不同高度的row,有两种情况。

1)同一个design中虽然有多种row,但它们彼此是整数倍关系

比较典型的案例如咱们社区低功耗四核A7 top训练营课程中的power switch cell,Level Shifter Cell都是占用两倍row高度的cell。这时候我们就需要在floorplan阶段创建对应的row。

当然还有低功耗设计实现中要用到的Multibit Reg,通常它的row也是普通标准单元的整数倍,会占用2-4条row高度。


创建Row需要在设计导入阶段完成后就创建,具体命令和图形界面操作如下图所示。

2)同一个design中有需要若干种不同高度的row,且它们之间是非整数倍关系

这时候除了创建不同的site之外,还需要分别创建power domain,指定好每个power domain对应的module。这样后续工具在做placement时才能摆放到对应的power domain。

另外,需要提醒的是由于不同的tech lef工艺技术库文件中,会定义好不同的site尺寸。所以如果你目前设计中一个power domain是要用9Track,另外一个power domain要用12Track实现,那么就需要事先在tech lef中把这两套库涉及的site定义完整。

指定Power Domain时需要指定好每个PD的形状,它的形状可以是任意多边形。具体形状需要根据整个design的floorplan来切分。

无论多复杂的多边形,都可以划分成多个长方形,每个长方形都有各自的左下角和右上角的坐标。有了每个长方形的坐标后,整体形状就可以获取到了。

我们可以通过下面的命令来指定好各个PD的形状。

Legacy UI:

modifyPowerDomainAttr PD --disjointHInstBoxList { {A {ax0 ay0 ax1 ay1 ax2 ay2 ax3 ay3}}

{{B C} {bx0 by0 bx1 by1 bx2 by2 bx3 by3}} }

modifyPowerDomainAttr PD --addBlockBox {block1}

Common UI:

update_power_domain PD -disjoint_hinst_box_list { {A {ax0 ay0 ax1 ay1 ax2 ay2 ax3 ay3}}

{{B C} {bx0 by0 bx1 by1 bx2 by2 bx3 by3}} }

update_power_domain PD -add_block_box {block1}

当然也可以写成下面这种格式。其中的disjointHInstBoxList写上每个长方形的两个坐标值。

modifyPowerDomainAttr -disjointHInstBoxList [list [list inst1 [list $x1 $y1 $x2 $y2]] [list inst2 [list $x3 $y3 $x4 $y4]]]

update_power_domain -disjoint_hinst_box_list [list [list inst1 [list $x1 $y1 $x2 $y2]] [list inst2 [list $x3 $y3 $x4 $y4]]]

如果placement后发现cell并没有摆放到它归属的power domain,就需要使用下面的教程来查看domain中cell的effective PD属性是否正确了。

相关推荐
IC拓荒者1 天前
数字IC后端设计实现之Innovus place报错案例 (IMPSP-9099,9100三种解决方案)
数字后端·数字ic后端·ic后端培训·innovus零基础lab·innovus place·innovus零基础·scan chain
IC拓荒者2 天前
TSMC12nm工艺数字IC后端实现难点都有哪些?
数字ic后端·数字后端培训·calibre lvs·物理验证lvs·tsmc12nm·t12nm数字后端·double pattern
IC拓荒者5 天前
数字IC后端实现之Innovus specifyCellEdgeSpacing和ICC2 set_placement_spacing_rule的应用
数字ic后端·数字后端培训·calibre drc·drc·innovus零基础入门·innovus drc·物理验证drc
IC拓荒者10 天前
数字IC后端设计实现之Innovus自动修复Min Step DRC Violation方案
数字ic后端·数字后端培训·calibre drc·innovus零基础lab·数字后端innovus·数字后端零基础·min step drc
IC拓荒者10 天前
Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)
数字ic后端·数字后端培训·时钟树综合·innovus零基础入门·flexible htree·clock tree·multi-tap clock
IC拓荒者11 天前
物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?
lvs·数字ic后端·物理验证·ic后端培训·calibre lvs·vnw vpw·衬底接触
IC拓荒者16 天前
数字后端零基础入门系列 | Innovus零基础LAB学习Day9
数字ic后端·数字后端培训·innovus零基础lab·数字后端innovus·数字后端零基础·后端零基础入门·innovus走线
IC拓荒者16 天前
物理验证Calibre LVS Debug案例之通过deleteEmptyModule解决LVS问题
数字ic后端·数字后端培训·数字后端入门·calibre lvs·empty module·t12nm lvs案例·物理验证lvs
IC拓荒者20 天前
数字后端零基础入门系列 | Innovus零基础LAB学习Day8
数字ic后端·数字后端培训·innovus·drc violation·数字后端入门·innovus零基础lab·route drc
IC拓荒者22 天前
DDRPHY数字IC后端设计实现系列专题之后端设计导入,IO Ring设计
数字ic后端·数字后端培训·ddrphy后端实现·ddr控制器·ddr接口dfi·数字后端实现