Perl在IC设计中的运用004_报告检查_过滤部分行

1、为什么使用perl过滤报告?

在IC设计中,有很多EDA工具会产生各类的报告文件,需要人工去检查。如max_delay,spyglass lint和cdc检查。有时候就需要将关键提取出来,将其他的无用的行删除。如

spyglass cdc 筛选出异步时钟径却没有跨时钟的路径,需要将包含跨时钟模块的路径全部删除,如果采用人工筛选,费时费力,perl脚本写好后,只需要1分钟就能获得过滤后的结果。

如max_delay检查也是:从网表文件中提取的max_delay约束,筛选出异步时钟径却没有跨时钟的路径,也需要将包含跨时钟模块的路径全部删除。

2、perl脚本如何实现?

脚本实现原理如下:

  1. 打开已有的文件config_max_delay.sdc
  2. 逐行匹配,是否包含跨时钟模块want_to_delet,如果包含则不操作,去匹配下一行,如果不包含跨时钟模块,则将此行保存到@save_line。
  3. 匹配结束后,将@save_line写入文件max_delay_unsyn.sdc

3、perl脚本如何使用

使用命令:perl 脚本名称

#!/usr/bin/perl -w
use strict ;
my $eachline ;
my @save_lines =0 ;
my $line_cnt   =0 ;
my $list    ;
my $delet   ;

my $want_to_delet = '(3x_syn)|(syn_bus)|(pluse_sampling)|(xxxxx)|(xxxxx)';

open (INFILE,"./config_max_delay.sdc");
while ($eachline=<INFILE>) {
 if($eachline =~ m/$want_to_delet/) {
 } else {
  push@save_lines,$eachline ;
 }
}

close(INFILE) ;
open(OUTFILE,">max_delay_unsync.sdc");
print OUTFILE "@save_lines" ;

print "Please to check max_delay_unsync.sdc\n";

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值