1、导出带dont touch属性为true的inst
proc gen_dont_touch_cell_list {file_name} {
set f [open $file_name "w"]
set lst [dbGet [dbGet -p top.insts.dontTouch true].name]
foreach cell $lst {
puts $f $cell
}
close $f
}
# 调用
gen_dont_touch_cell_list donttouch.list
2、移除一些inst的dont touch属性
proc remove_dont_touch_by_list {file_name} {
set f [open $file_name "r"]
while {[gets $f line] != -1} {
set_dont_touch $line false
}
close $f
}
# 提前准备一个要移除的inst列表文件
# 调用
remove_dont_touch_by_list donttouch_to_be_removed.list
3、把指定inst列表改成size only
proc set_sizeonly_by_list {file_name} {
set f [open $file_name "r"]
while {[gets $f line] != -1} {
#puts $line
dbSet [dbGetInstByName $line].dontTouch sizeOk
}
close $f
}
# 提前准备一个要改size only的inst列表文件
# 调用
remove_dont_touch_by_list donttouch_sizeonly.list