createPlaceBlockage
描述
对目标创建blockage
参数
-allMacro
指定打在所有的hard macro上
-allPartition
指定打在所有的partition上
-box {x1 y1 x2 y2}
以box方式创建
-boxlist {{lx1 ly1 ux2 uy2} {lx2 ly2 ux2 uy2} ... }
以boxlist的方式创建
-cover
指定完全覆盖在所选择的object上,可以配合-inst | -hinst | -allPartition | -allMacro这些object使用
-density <integer>
指定partial blockage的density, 范围5%-100%以5%为步进,使用时需要配合-type
-excludeFlops
指partial blockage并不会对flop或者latch等时序器件起作用
-hinst <hInst>
可以指定placemnet blockage打在哪个inst,或者hinst上
-innerRingByEdge {<edge1> <edge2> <edge3> <edge4> ... }
针对多边形生效,指定blockage向内缩进的距离,edge指定顺序为顺时针
-innerRingBySide {<left> <bottom> <right> <top>}
针对box生效,指定blockage向内所进的距离,分别对应左下右上
-inst <inst>
指定打在哪个inst上,可以随着inst移动
-name <string>
placement blockage 的名字
-noCutByCore
指定后placement blockage不会被core boundary切掉,可以创建在core外面
-outerRingByEdge {<edge1> <edge2> <edge3> <edge4> ...}
指定blockage向外扩张的距离,其他同上
-outerRingBySide {<left> <bottom> <right> <top>}
同上
-polygon {{x1 y1} {x2 y2} ... }
以多边形方式创建,指定顺寻从左下角顶点开始
-prefixOn
增加一个前缀
-snapToSite
会自动snap到row site上面去
-type {hard soft partial macroOnly}
指定blockage类型
示例
createPlaceBlockage -inst $my_block -type soft -density 50 -outerRingBySide 2
针对my_block创建一个类型为soft、密度为50%、向外扩张距离为2的blockage。
相关
Placement blockage是在做floorplan时加入的人为约束,可以有效控制区域density,从而避免congestion的问题,提高routing效率。其中Placement blockage的种类有:
- hard: 是约束最严格的blockage,该区域范围内,place,legalize, optimize,CTS等任何阶段都不能摆放instance。
- soft: 该区域内,在placement阶段不允许摆放instance,但是在legalize,optimize阶段时允许摆放instance的。
- partial: 如果要使用partial blockage,首先要人为设计一个阻碍百分比值。在该区域内,工具会block住阻碍值的instance。如果设定了block百分比值是40%,就说明该区域至少会block40%的instance,也就是说该区域最多允许摆放60%的instance. 值得注意的是partial blockage也是只在placement阶段起作用,在legalize,optimize阶段时都不起作用。
- hard_macro: 该区域内不允许摆放hard macro,在自动macro placement阶段工具不会摆放macro在该区域。
- category: 这是一种特殊的partial blockage,在某些区域,如果我们不想摆放某种指定的instance,可以把这些instance都指定为一个category,然后category blockage下面的区域就不会摆放这些instance
- register: 这也是一种特殊的partial blockage, 该blockage区域不允许摆放register,当然也是只在placement阶段起作用,在legalize,optimize阶段时都不起作用。
- rp_group: 这也是一种特殊的partial blockage,rp_group blockage的区域不允许摆放relative placement instance,很少用到。
- allow_buffer_only: 这也是一种特殊的partial blockage, 该blockage区域只允许摆放buffer,当然也是只在placement阶段起作用,在legalize,optimize阶段时都不起作用。
- allow_rp_only: 这也是一种特殊的partial blockage, 该blockage区域只允许摆放relative placement group,不过hard macro依然可以摆放。
本文详细介绍了Innovus中的createPlaceBlockage命令,用于创建放置障碍物,包括硬约束和软约束,以及partial blockage的密度设定。示例展示了如何创建针对特定实例的软约束blockage,强调了blockage在不同阶段的作用以及各种类型的placement blockage,如hard、soft和partial,以及它们在优化布局和解决拥堵问题中的应用。
1705

被折叠的 条评论
为什么被折叠?



