|
#!/usr/bin/perl
open(I,"t6.vcd");
$s=0;
%hname=();
%hbit=();
$t=0;
while($l=<I>) {
if($l=~/module u2_MAPI/) { $s=1;}
elsif($s==1) {
if($l=~/upscope /) { $s=2;}
else {
@as=split(/ /,$l);
if($as[5]=~/\[/) {
print "reg $as[5] $as[4]\;\n";
$as[4].=$as[5];
}
else {
print "reg $as[4]\;\n";
}
%hname=(%hname,$as[3],$as[4]);
%hbit=(%hbit,$as[3],$as[2]);
}
}
elsif($s==2) {
if($l=~/dumpvars/) { $s=3;}
}
elsif($s==3) {
if($l=~/end/) { $s=4;}
}
elsif($s==4) {
chop($l);
if($l=~/^\#/) {
$l=~s/^.//g;
$t=$l-$t;
print " \#$t\;\n";
$t=$l;
}
elsif($l=~/^b/) {
$l=~s/^.//g;
($a,$b)=split(/ /,$l);
$name=$hname{$b};
$bit=$hbit{$b};
if($name) {
print " $name=${bit}'b${a}\;\n";
}
}
else {
@as=split(//,$l);
$a=@as[0]; shift(@as);
$b=join(//,@as);
$name=$hname{$b};
$bit=$hbit{$b};
if($name) {
print " $name=${bit}'b${a}\;\n";
}
}
}
}
close(I); |
|