blob: 9eadf77f4dd7e22388fc397d898a347f037f54c2 [file] [log] [blame]
#!/usr/bin/perl -w
foreach my $lef (<orig/*.lef>)
{
$lef=~s/^orig\///;
my $mag="../mag/$lef"; $mag=~s/\.lef$/\.mag/;
my $cell=$lef; $cell=~s/\.lef//;
print "$lef\n";
open LEFIN,"<orig/$lef";
open LEFOUT,">$lef";
our $pin="";
while(<LEFIN>)
{
$pin=$1 if(m/PIN (\w+)/);
s/SYMMETRY X Y R90/SITE unit/;
s/SITE CORE/SYMMETRY X Y R90/;
#s/SITE unit.*//;
s/metal2/met1/;
s/VDD/vdd/;
s/GND/gnd/;
s/USE SIGNAL/USE POWER/ if($pin eq "VDD");
s/USE SIGNAL/USE GROUND/ if($pin eq "GND");
print LEFOUT $_;
#print $_;
if(m/FOREIGN/)
{
if(open(MAG,"<$mag"))
{
while(<MAG>)
{
if(m/rect 0 0 (\d+) (\d+)/)
{
my $h=$1;
my $w=$2;
my $factor=0.01;
print "$lef -> ".($1*$factor)." ".($2*$factor)."\n";
print LEFOUT " SIZE ".($1*$factor)." BY ".($2*$factor)." ;\n";
}
if(m/string FIXED_BBOX 0 0 (\d+) (\d+)/)
{
my $h=$1;
my $w=$2;
my $factor=0.01;
print "$lef -> ".($1*$factor)." ".($2*$factor)."\n";
print LEFOUT " SIZE ".($1*$factor)." BY ".($2*$factor)." ;\n";
}
}
close MAG;
}
}
}
close LEFOUT;
close LEFIN;
open MAGIC,"|magic -dnull -noconsole -T sky130A";
print MAGIC "lef read $lef\n";
print MAGIC "load $cell\n";
print MAGIC "lef write $lef\n";
print MAGIC "quit\n";
close MAGIC;
}