前一节写的关于PT修时序后吐出相关脚本,但是无法直接使用APR工具innovus进行时序修复,此节介绍一种利用perl脚本将吐出脚本转化为innovus可读的脚本
1.转化前文本形式
2,转化后脚本
3.perl 脚本正文
#!/usr/bin/perl
#translate pt sie_cell script
use warnings;
use autodie;
my $in = $ARGV[0];
if ( ! open IN , '<',$in) {
die "can't read $in :$!";
}
my $out1 = "$in.inn.tcl";
my $out2 = "$in.icc.tcl";
if ( ! open OUT1, '>',$out1) {die "can't write $out1 : $1 ";}
if ( ! open OUT2, '>',$out2) {die "can't write $out2 : $2 ";}
my $inst = "";
while (<>) {
chomp;
if ( /^current_instance$/) {
$inst = "";
}
elsif ( /^current_instance\s+\{(.*)\}$/ ) {
$inst = "$1/";
}
elsif ( /size_cell\s+\{(.*)\}\s+\{(.*)\}$/ ) {
print OUT1 "size_cell ${inst}$1 $2 \n";
print OUT2 "size_cell ${inst}$1 $2 \n";
}
elsif .....
}
附上截图
4.运行命令