在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: dyhikstor

[求助] 请问大家有没有PT后icctcl_to_innovus tcl脚本,谢谢大家了【已解决】

[复制链接]
发表于 2022-10-5 13:30:31 | 显示全部楼层
谢谢分享
发表于 2023-12-13 10:47:48 | 显示全部楼层
set in_icctcl_file [open ${output}_icc.tcl r+]
set out_innovus_file [open ${output}_inn.tcl w]

while {[gets $in_icctcl_file line]>=0} {
if {[regexp {current_instance$} $line ]} {
set hier_inst ""

set hier_inst1 ""
puts $out_innovus_file "#$line"
continue
}

if {[regexp {current_instance \{(\S+)\}} $line uselessvar_a hier_inst]} {
set hier_inst1  $hier_inst
set hier_inst $hier_inst/
puts $out_innovus_file "#$line"
continue
}

switch -regexp $line {
{size_cell} {
regexp {size_cell\s*\{(\S+)\}\s*\{(\S+)\}} $line uselessvar_a inst cell_type
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoChangeCell -inst $hier_inst$inst -cell $cell_type \n"
}

{remove_buffer} {
regexp {remove_buffer\s*\[get_cells\s*\{(\S+)\}\]} $line uselessvar_a inst
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoDeleteRepeater -inst $hier_inst$inst -nonPhysical \n"
}

{insert_buffer} {
regexp {insert_buffer\s*\[get_pins\s*\{(\S+)\}\]\s*(\S+)\s*-new_net_name\s*\{(\S+)\}\s*-new_cell_name\s*\{(\S+)\}} $line uselessvar_a term cell_type new_netname new_cellname
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoAddRepeater -term $hier_inst$term -cell $cell_type -new_net_name $new_netname -name $new_cellname  -hinstGuide $hier_inst1   \n"
}
}
}
close $in_icctcl_file
close $out_innovus_file

PT的icc tcl转innovus脚本,在该脚本的目录下打开终端输入tclsh,然后把该脚本复制进去运行。就会输出${output}_inn.tcl脚本。在innovus里source -echo -verbose ../shiftreg_PT/${output}_inn.tcl就可以了。其中PT用write_change -format icctcl -output ${output}_icc.tcl 写出icc tcl脚本,其中${output}是你自己定义的名字,这里是个变量,需要你修改为自己的名字。
发表于 2023-12-13 10:54:10 | 显示全部楼层
set in_icctcl_file [open ${output}_icc.tcl r+]
set out_innovus_file [open ${output}.tcl w]

while {[gets $in_icctcl_file line]>=0} {
if {[regexp {current_instance$} $line ]} {
set hier_inst ""
set hier_inst1 ""
puts $out_innovus_file "#$line"
continue
}

if {[regexp {current_instance \{(\S+)\}} $line uselessvar_a hier_inst]} {
set hier_inst1  $hier_inst
set hier_inst $hier_inst/
puts $out_innovus_file "#$line"
continue
}

switch -regexp $line {
{size_cell} {
regexp {size_cell\s*\{(\S+)\}\s*\{(\S+)\}} $line uselessvar_a inst cell_type
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoChangeCell -inst $hier_inst$inst -cell $cell_type \n"
}

{remove_buffer} {
regexp {remove_buffer\s*\[get_cells\s*\{(\S+)\}\]} $line uselessvar_a inst
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoDeleteRepeater -inst $hier_inst$inst -nonPhysical \n"
}

{insert_buffer} {
regexp {insert_buffer\s*\[get_pins\s*\{(\S+)\}\]\s*(\S+)\s*-new_net_name\s*\{(\S+)\}\s*-new_cell_name\s*\{(\S+)\}} $line uselessvar_a term cell_type new_netname new_cellname
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoAddRepeater -term $hier_inst$term -cell $cell_type -new_net_name $new_netname -name $new_cellname  -hinstGuide $hier_inst1   \n"
}
}
}
close $in_icctcl_file
close $out_innovus_file

PT 的icc tcl转innovus的脚本,在该脚本目录下打开终端输入tclsh,然后复制该脚本进去,最后输出${output}.tcl,然后在innovus里source -echo -verbose ../shiftreg_PT/${output}.tcl。PT用write_change -format icctcl -output ${output}_icc.tcl写出icc tcl。其中${output}是自定义的名字,这里是变量,实际需要修改为自己的名字
发表于 2023-12-15 11:30:45 | 显示全部楼层


liki799 发表于 2023-12-13 10:54
set in_icctcl_file [open ${output}_icc.tcl r+]
set out_innovus_file [open ${output}.tcl w]


非常感谢热心的大佬!小弟我正好需要这个脚本,今天刚好就看到了
发表于 2023-12-24 13:36:58 | 显示全部楼层
thank you very much
发表于 2023-12-24 23:07:49 | 显示全部楼层
感谢大神
发表于 2024-2-2 15:59:59 | 显示全部楼层


liki799 发表于 2023-12-13 10:54
set in_icctcl_file [open ${output}_icc.tcl r+]
set out_innovus_file [open ${output}.tcl w]


一直显示insert_buffer里面的uselessvar_a是一个无效变量呀
发表于 2024-3-6 17:55:43 | 显示全部楼层
add_buffer_on_route的呢


发表于 2024-4-26 10:23:39 | 显示全部楼层


liki799 发表于 2023-12-13 10:54
set in_icctcl_file [open ${output}_icc.tcl r+]
set out_innovus_file [open ${output}.tcl w]


你好大佬,你分享的这个脚本在匹配insert_buffer xxx 的line的时候,因为-new_cell_names和-new_cell_names这两个字段后面少写了s,在运行的时候会报错匹配不到term,现在加上s之后已经可以了。最后表达对您分享脚本的感谢
发表于 2024-6-5 10:30:16 | 显示全部楼层
十分感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-8 09:28 , Processed in 0.021489 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表