perl脚本提取后仿中的notimingcheck路径


前言

在我们进行IC数字后仿过程中,需要先加上-nonotifier选项,让仿真遇到违例后,先不产生叉态,保证仿真正常进行,然后再提取log中的时序违例信息,筛选出异步路径,放到一个文件中,让仿真吃进去,去掉-nonotifier选项,再进行仿真。
在提取log中的时序违例信息时,需要一个能够自动提取时序违例信息的脚本,同时还要保留时序违例信息出现的位置,以便出现问题时能够进行复现。本文主要利用perl脚本,实现时序违例信息的提取。


一、perl脚本提取后仿中的notimingcheck路径

整个脚本的思路是:先利用linux中的find命令找出所有的路径和路径所在的信息;再利用hash数组,将路径进行去重复处理,并以键值对的形式保存起来;再交换键和值,方便进行排序处理;再将对应的键值对按照一定的格式输出到no_timingcheck.tfile文件中。

use warnings;
use strict;

my $debug = 0;
my @file;
my $filename;
my $key;
my $value;
my %f_path;  #hash for path and info
my %f_path_exchange; #exchange key and value

#==========get info and path
@file = `find ./*PSOTSIM* -name "*seed_1.log" |xargs grep -rn "Scope: "`;

#=========split key and value with hash to remove repeat path
foreach $filename (@file){
    if($debug == 1){
        print $filename;
    }
    if($filename =~ /:           Scope: /){
        if($debug == 1){
            print "$' \n";# path for key
            print "$` \n";# info for value
        }
        $key = $';   chomp($key);
        $value = $`;
        if(!exists $f_path{$key}){
            $f_path{$key} = $value;
        }
    }
}

#=========exchange key and value for sort
foreach $key (keys %f_path){
    $f_path_exchange{$f_path{$key}} = $key;
}

#=========output to no_timingcheck.tfile with right formal
if(! open FILE, ">", "no_timingcheck.tfile"){
    die "can not open file: $!";
}
foreach $key (sort keys %f_path_exchange){
    $value = $f_path_exchange{$key};
    if($debug == 1){
        print "$key => $value \n";
    }
    $output = "PATH " . $value . " -tcheck " . "#" . $key . "\n";
    if($debug == 1){
        print "$output \n";
    }
    print FILE $output;
}
close FILE;

这个脚本如果移植,需要更改的是@file这个地方,要根据自己实际的log路径和名字进行匹配。


总结

本文主要利用perl脚本,实现时序违例信息的提取。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值