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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10991|回复: 17

[讨论] innovus 做PR , 可否用pt做sta?

[复制链接]
发表于 2018-9-6 15:49:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
想了解下,innovus做PR的情况下,想用PT做sta,pt 写出来的timing eco脚本 怎么处理,给innovus 做eco?
发表于 2024-5-30 08:56:10 | 显示全部楼层


xenia_Yin 发表于 2024-5-30 08:50
怎么还是找不到term呢


现在可以了,开心
发表于 2024-5-30 08:50:12 | 显示全部楼层


hevendai 发表于 2024-5-29 20:42
set in_icctcl_file [open ${output}_icc.tcl r+]
set out_innovus_file [open ${output}.tcl w]


怎么还是找不到term呢
发表于 2024-5-29 20:42:05 | 显示全部楼层
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}是自定义的名字,这里是变量,实际需要修改为自己的名字
       


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


    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之后已经可以了。最后表达对您分享脚本的感谢



learnsure
change_icctcl_to_innovstcl
复制代码

############################################
# edit by wangnengxue 20200911 #
# Email : nengxuew@cadence.com #

###########################################

proc write_eco_change {args} {



set output ""
parse_proc_arguments -args $args results
foreach argname [array names results] {
if {[regexp -nocase {\-output} $argname ]} { set output $results($argname) }
}





write_change -format icctcl -output ${output}_icctcl


set in_icctcl_file [open ${output}_icctcl r+]
set out_innovus_file [open ${output} 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*(\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


}

define_proc_arguments write_eco_change -info "User change pt_script format to innovus script format \nExamble: write_eco_change -output ./wangnengxue.innovus.tcl" \
-define_args {\
{-output "Specifies the output script filenane and path"}
}
发表于 2022-6-22 09:37:33 | 显示全部楼层
转换成tcl脚本
发表于 2021-7-26 16:56:30 | 显示全部楼层


西山寺 发表于 2018-9-6 16:43
写脚本转换成innovus的相关命令来做eco


求脚本
发表于 2020-7-10 10:30:03 | 显示全部楼层
公司会有把icc2的命令转成inn的脚本的。
发表于 2019-4-24 11:53:40 | 显示全部楼层


SpunkyGG 发表于 2018-9-7 15:00
写一个脚本,将ICC2的命令全部替换成INNOVUS的命令,然后source


您好,请问脚本处理时,ecoAddRepeater 命令加入的buffer,有时出现hierarchical 不对,导致后面又会对这个cell操作的时候就找不到,这种情况怎么处理。
发表于 2018-9-17 09:45:58 | 显示全部楼层
要的要的。
 楼主| 发表于 2018-9-7 18:44:04 | 显示全部楼层
发表于 2018-9-7 18:04:59 | 显示全部楼层


厉害了,是physical aware的么?
大龄文艺男青年 发表于 2018-9-7 11:18



swap only
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-13 04:20 , Processed in 0.023410 second(s), 7 queries , Gzip On, Redis On.

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