#!/usr/bin/perl open(I,"t6.vcd"); $s=0; %hname=(); %hbit=(); $t=0; while($l=) { 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);