● 打印出设计中所有module名字
foreach module_name [dbGet top.hInst.treeHInsts.cell.name] {
Puts "$module_name"
}
● Get 到设计中所有leaf cells
foreach leaf_name [dbGet -u top.insts.cell.name] {
Puts "$leaf_name"
}
● 给选中instance设置dont touch属性
select_obj [dbGet top.insts.name LS* -p]
foreach term [dbGet selected.instTerms.net.term –e] {
set_dont_touch [dbGet $term.net.name] true
}
● Skip routes hierarchical hard macro nets
proc skiproutesOnHmsNets {hmInstPattern} {
deselectAll
selectInst *$hmInstPattern*
dbset selected.hinst.hnets.net.skipRouting 1
deselectAll
}
针对某些不想让工具绕线的net,可以通过设置skipRoute选项来实现。不过值得注意的是,这个操作存在一定风险。如果后续要对这些net进行eco,那么这条net可能会是open net。
不过即便出现open,我们也有办法解决。通过将这些net的skipRoute属性改成0,然后再单独绕这些net。这样的解法也是非常完美的。
● 删掉macro身上的信号走线
foreach c [dbGet [dbGet -p2 top.insts.cell.baseClass block].name] {
set j [dbGet -p top.insts.name $c ]
dbSelectObj [dbQuery -area [dbGet $j.box ] -objType regular]
puts "Deleting object at [dbGet $j.box ] within Block [dbget $j.name]"
editDelete -selected -type Signal -use SIGNAL
}
网友评论