热度 12| ||
大家好,今天来分享一下在stripe下面快速打placeblockage的tcl脚本
在place阶段出现congestion的地方,一般是block的周围和stripe下面,这两种解决起来就很简单,可以添加halo,但是我这次做的项目stripe上面就不能够添加halo,原因是这个每条stripe没有属于自己的名字,工具不能认为它是一个独立单位,就像不是一个人,就没办法给你穿一件合适的衣服。当我需要确定面积x,y但是又必须加placelockage的时候,太麻烦太麻烦了,因为命令:
createPlaceBlockage \
-type hard \
-box "x1 y1 x2 y2" \
-name blk
每次都要输入这条blockage的左下角和右上角的坐标,当你打一条的时候还可以,大于3条,改完面积心态都要崩了!就自己写了一个小脚本(tcl入门不到一个月,请大佬优)
proc vbloc {x y} {
for {set x1 [expr a+$::addStripe_xleft_offset]} {$x1<$x-(a+b)} {incr x1 $::set_to_set_distance } {
set x2 [expr $x1+b]
set y1 [expr $y-a]
puts [createPlaceBlockage \
-type hard \
-box "$x1 a $x2 $y1" \
-name blk]
}
}
explain:
x:宽
y:高
a:是floorplac -site xxx -d x y a a a a 的边距,自己在脚本中修改为自己的值,也可以用变量
addStripe_xleft_offset:stripe到左边的距离
b:每对stripe的宽度,自己设置的
set_to_set_distance:每对stripe之间的间距
使用方法,把脚本放在终端中load一下,输入 vbloc x y就OK了,亲测非常方便。