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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3242|回复: 4

[求助] 如何在两个report文件找到相同的cell pin(已经解决)

[复制链接]
发表于 2011-6-21 00:57:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 TomPaul 于 2011-6-24 21:45 编辑

我现在有2个文件,一个文件A是所有cell pin(dff/D)的列表,一个文件文件是report_tiiming -to dff/D的时序信息。
我现在要做的是找到每个dff/D前一个cell,然后增加它的驱动能力。

使用perl处理了好久,没找到合适的方法,不知道大家有什么好的建议

PS:use strict/warnings没写,匹配判断的语法有误
发表于 2011-6-21 08:30:48 | 显示全部楼层
我写过类似的perl脚本,给你的建议是:
1. 把Lib文件读进来,用来分别那个是inst 那个是net
2.利用哈希表来记录数据
3.利用哈希表做出一个链表,这个表可以完成从后往前trace的功能。
 楼主| 发表于 2011-6-21 08:38:53 | 显示全部楼层
哈希表?hash吧,散列

我的问题可能问得太大了,简单点,一步一步问吧:
1、如何判断两个文件中的每行数据时等效的?
  if($array1[0] == $array2[0])
$array1[0] 表示第一个列表文件中的数据,也就是每个dff/D,

$array2[0]同样的设置。

这样肯定是不行的,我试过了。
发表于 2011-6-21 11:29:29 | 显示全部楼层
1)用linux命令tac把timing report反过来
2)在perl里面,先读入A文件里所有的pin,存到一个list里面,再读入反过来的timing report,遇到DFF,就到list里面搜索,如果匹配上了,就把下一行print出来

别问我如果下一行不是cell怎么办,自己去想办法
 楼主| 发表于 2011-6-22 14:38:13 | 显示全部楼层
多谢各位了。
实际上在文件中找出每个dff/D来,我还是可以的。
问题是,如何判断找出的dff/D是否是文件A list 中所要求的dff/D,也就是如何判断两个文件中所找出的变量是否匹配,应该用perl的哪个功能呢?
以前我写过一个perl,找出时序报告中违反比较大的path时,我用过这样的匹配判断:

if ($line =~ /slack \(VIOLATED/)
。。。。。

现在的问题是:如果$line1是文件A的变量,$line2是文件B的变量,如何判断两个变量是否匹配?

写成if ($line1 =~ $line2)?还是if ($line1 == $line2)?还是。。。?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-13 11:48 , Processed in 0.016547 second(s), 6 queries , Gzip On, Redis On.

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