Sie sind auf Seite 1von 6

$/="\n";

print "Enter the file name :\n";


$file=<STDIN>;
open(DATA,$file)|| die "Can't open $filename: $!";
open($data2,">Data.txt");
#print "Enter the cell Name:\n";
#$cell=<STDIN>;
print "Do you want to display \"SDF\" or all(1/2)\n";
$choice=<STDIN>;
if($choice==1)
{
%infor = (
Name=>"Cell Name",
Map=>"Pin Map",
Area=>"Pin Area",
Value=>"Setup Rising Value at 2x2",
);
#print "$infor{'Name'}";
#print "$infor{'Map'}";
#print "$infor{'Area'}";
#print "$infor{'Value'}"."\n";
printf $data2 ("%40s%40s%40s%40s\n",$infor{'Name'},$infor{'Map'},$infor{'Area'},
$infor{'Value'});
print "\n";
#if($cell=~/cell\.\*sdf/)
#{
#print "Enter the number of sdf\n";
#$n=<STDIN>;
while($line=<DATA>)
{
if($line=~/\Qcell\E/)
{
if($line=~/\Qsdf\E/)
{
chop($line);
chop($line);
chop($line);
$infor{'Name'}=$line;
#print "Cell Name :$line\n";
$/="(";
while($line=<DATA>)
{
if($line=~/pin_name_map/)
{
$/=")";
$line=<DATA>;
$/=";";
chop($line);
$infor{'Map'}=$line;
#print "Pin Name Map: $line\n";
$line=<DATA>;
$/=":";
$line=<DATA>;
$/=";";
$line=<DATA>;
chop($line);
chop($line);
$infor{'Area'}=$line;
#print "Area: $line\n";

$/="\n";
while($line=<DATA>)
{
if($line=~/pin\(d\)/)
{
#print "You are in PIN(D)\n";
while($line=<DATA>)
{
if($line=~/setup_rising/)
{
while($line=<DATA>)
{
if($line=~/rise_constraint\(cnst_ctin_rtin_7x7\)/)
{
#print "You are in RISE CONSTRAINT\n";
$line=<DATA>;
$line=<DATA>;
$/="\"";
$line=<DATA>;
$/="\n";
#print "Enter The Row Number:\n";
$indx_1=2;
while($indx_1!=0)
{
$line=<DATA>;
--$indx_1;
}
#print "$line";
@array=split(/,/,$line);
#print "Enter The CoLumn Number:\n";
$indx_2=2;
if($indx_2==7)
{
chop($array[$indx_2-1]);
$infor{'Value'}=$array[$indx_2-1];
#print "The Value :$array[$indx_2-1]\n";
}
else
{
$infor{'Value'}=$array[$indx_2-1];
#print "The Value :$array[$indx_2-1]\n";
}
#print $infor{'Name'};
#print $infor{'Map'};
#print $infor{'Area'};
#print $infor{'Value'}."\n";
printf $data2 ("%40s%40s%40s%40s\n",$infor{'Name'},$infor{'Map'},$infor{'Area'},
$infor{'Value'});
print "\n";
last;
}#7th if rise constratint
}#5th while loop
last;
}#6th if setup rising
}#4th while loop
last;
}#5th if loop pin

}#3rd while loop


last;
}#4th if pin name
}#2nd while loop
}#3rd if sdf
}#2nd if cell
}#1st while loop
#}#1st if cell& sdf
}

#else block start

else
{
$\="\n";
%infor = (
Name=>"Cell Name",
Map=>"Pin Map",
Area=>"Pin Area",
Value=>"Setup Rising Value at 2x2",
);
printf $data2 ("%40s%40s%40s%40s\n",$infor{'Name'},$infor{'Map'},$infor{'Area'},
$infor{'Value'});
print "\n";
while($line=<DATA>)
{
if($line=~/\Qcell\E/)
{
if($line=~/\Qsdf\E/)
{
chop($line);
chop($line);
chop($line);
$infor{'Name'}=$line;
$/="(";
while($line=<DATA>)
{
if($line=~/pin_name_map/)
{
$/=")";
$line=<DATA>;
$/=";";
chop($line);
$infor{'Map'}=$line;
$line=<DATA>;
$/=":";
$line=<DATA>;
$/=";";
$line=<DATA>;
chop($line);
chop($line);
$infor{'Area'}=$line;
$/="\n";

while($line=<DATA>)
{
if($line=~/pin\(d\)/)
{
while($line=<DATA>)
{
if($line=~/setup_rising/)
{
while($line=<DATA>)
{
if($line=~/rise_constraint\(cnst_ctin_rtin_7x7\)/)
{
$line=<DATA>;
$line=<DATA>;
$/="\"";
$line=<DATA>;
$/="\n";
$line=<DATA>;
$line=<DATA>;
@array=split(/,/,$line);
$infor{'Value'}=$array[1];
printf $data2 ("%40s%40s%40s%40s\n",$infor{'Name'},$infor{'Map'},$infor{'Area'},
$infor{'Value'});
print "\n";
print "\n";
print "\n";
print "\n";
last;
}#7th if rise constratint
}#5th while loop
last;
}#6th if setup rising
}#4th while loop
last;
}#5th if loop pin
}#3rd while loop
last;
}#4th if pin name
}
}
}
}
seek (DATA,0,0);
%infor1 = (
Name=>"Cell Name",
Map=>"Pin Map",
Area=>"Pin Area",
Pname=>"Pin Name",
Indx_m=>"Index m",
Indx_n=>"Index n",
Timing=>"Timing",
);
print "Enter The Index M:\n";

$ind_m=2;
$infor{'Indx_m'}=$ind_m;
print "Enter The Index N:\n";
$ind_n=2;
$infor{'Indx_n'}=$ind_n;
printf $data2 ("%40s%40s%40s%10s%10s%10s%40s\n",$infor1{'Name'},$infor1{'Map'},$
infor1{'Area'},$infor1{'Pname'},$infor1{'Indx_m'},$infor1{'Indx_n'},$infor1{'Tim
ing'});
%infor = (
Name=>"Cell Name",
Map=>"Pin Map",
Area=>"Pin Area",
Pname=>"Pin Name",
Indx_m=>"Index m",
Indx_n=>"Index n",
CeRi=>"Cell Rise",
CeFa=>"Cell Fall",
);
printf $data2 ("%40s%40s%40s%10s%10s%10s%20s%20s\n","","","","","","",$infor{'Ce
Ri'},$infor{'CeFa'});
while($line=<DATA>)
{
if($line=~/.*cell\(m0ihp.*/)
{
if($line!~/\Qsdf\E/)
{
chop($line);
chop($line);
chop($line);
$infor{'Name'}=$line;
$/="(";
while($line=<DATA>)
{
if($line=~/pin_name_map/)
{
$/=")";
$line=<DATA>;
$/=";";
chop($line);
$infor{'Map'}=$line;
$line=<DATA>;
$/=":";
$line=<DATA>;
$/=";";
$line=<DATA>;
chop($line);
chop($line);
$infor{'Area'}=$line;
$/="\n";

printf $data2 ("%40s%40s%40s%10s%10s%10s%20s%20s\n",$infor{'Name'},$infor{'Map'}


,$infor{'Area'},$infor{'Pname'},$infor{'Indx_m'},$infor{'Indx_n'},$infor{'CeRi'}
,$infor{'CeFa'});

print "\n";
last;
}
else
{
next;
}
next;
}#4th if pin name
}#2nd while loop
#}#3rd if sdf
}#2nd if cell
}#1st while loop
}#1st if cell& sdf

Das könnte Ihnen auch gefallen