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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 3275|回复: 6

[求助] pt里fix_eco_timing后吐出change.tcl,怎么改成innovus里可以吃的形式?

[复制链接]
发表于 2021-3-1 18:03:57 | 显示全部楼层 |阅读模式

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

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

×
求教大佬们:pt里fix_eco_timing后吐出change.tcl,怎么改成innovus里可以吃的形式?或者说innovus里的命令应该怎么写?

image.png
发表于 2021-3-1 19:23:41 | 显示全部楼层
没有直接可用的吧,写脚本转。
回复 支持 反对

使用道具 举报

发表于 2021-3-1 19:42:13 | 显示全部楼层
需要转换呢,一般应该是通过脚本转换的
回复 支持 反对

使用道具 举报

发表于 2021-3-11 11:25:07 | 显示全部楼层
写脚本自己转
回复 支持 反对

使用道具 举报

发表于 2021-3-12 16:47:20 | 显示全部楼层
pt_eco应该会同时生成供inn和PT的吃的脚本文件
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
# 将icc2读入的数据修改成inn读入的数据
import re
infile = open("timing.tcl", "r")
outfile = open("timing_enc.tcl", "w")
inst_name = ''
for line in infile:
  if 'current_instance' in line:
    insp_sp = re.split(r'\s+|{|}|', line)
    print(inst_sp)
    if len(inst_sp)==5:
      inst_name=inst_sp[2]+"/"
      hinstGuide_name=inst_sp[2]
    else:
      inst_name=""
      hinstGuide_name="\"\""

   elif 'insert_buffer' in line:
     insert_sp = re.split(r'\s+|\[|{|}\]|-', line)
     pin_name=insert_sp[4]
     new_cell_name=insert_sp[16]
     new_net_name=insert_sp[11]
     insert_buff=insert_sp[7]
     inset_line="ecoAddRepeater -cell " + insert_buff + " -term " + inst_name + pin_name + " -name " + new_cell_name + " -new_net_name " + new_net_name + " -hinstGuide " + hinstGuide_name + "\n"
     outfile.write(insert_line)

   elif 'size_cell' in line:
     insert_sp = re.split(r'\s+|{|}', line)
     cell_name = insert_sp[2]
     new_cell_name = insert_sp[5]
     insert_lne="ecoChangeCell -inst " + inst_name + cell_name + " -cell " + new_cell_name + "\n"

s

infile.close()
outfile.close()
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
# 将icc2读入的数据修改成inn读入的数据
import re
infile = open("timing.tcl", "r")
outfile = open("timing_enc.tcl", "w")
inst_name = ''
for line in infile:
  if 'current_instance' in line:
    insp_sp = re.split(r'\s+|{|}|', line)
    print(inst_sp)
    if len(inst_sp)==5:
      inst_name=inst_sp[2]+"/"
      hinstGuide_name=inst_sp[2]
    else:
      inst_name=""
      hinstGuide_name="\"\""

   elif 'insert_buffer' in line:
     insert_sp = re.split(r'\s+|\[|{|}\]|-', line)
     pin_name=insert_sp[4]
     new_cell_name=insert_sp[16]
     new_net_name=insert_sp[11]
     insert_buff=insert_sp[7]
     inset_line="ecoAddRepeater -cell " + insert_buff + " -term " + inst_name + pin_name + " -name " + new_cell_name + " -new_net_name " + new_net_name + " -hinstGuide " + hinstGuide_name + "\n"
     outfile.write(insert_line)

   elif 'size_cell' in line:
     insert_sp = re.split(r'\s+|{|}', line)
     cell_name = insert_sp[2]
     new_cell_name = insert_sp[5]
     insert_lne="ecoChangeCell -inst " + inst_name + cell_name + " -cell " + new_cell_name + "\n"

s

infile.close()
outfile.close()
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

X 关闭广告

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

GMT+8, 2025-10-28 03:57 , Processed in 0.014748 second(s), 4 queries , Gzip On, Redis On.

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