innovus里批量修改dont touch属性的方法
专栏:iLoveIC Dec. 12, 2024, 7:09 p.m. 262 阅读
innovus里批量修改dont touch、sizeonly属性的方法

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

 

感谢阅读,更多文章点击这里:【专栏:iLoveIC】
最新20篇 开设专栏