blob: 70b8fa972e90b5dbc945c6296e3faaefeb96066f [file] [log] [blame]
#!/usr/bin/perl -w
my $STDCELLLIB=$ENV{'STDCELLLIB'} || "/home/philipp/libresilicon/StdCellLib";
print <<EOF
`default_nettype none
/*
*-------------------------------------------------------------
*
* user_proj_cells (LibreSilicon Testwafer #1)
*
*/
EOF
;
our $nextla=0;
our $nextio=0;
foreach my $mag(sort <$STDCELLLIB/Catalog/*.mag>)
{
next if((-s $mag)<=50);
#print `ls -la $mag`;
my $cell=$mag; $cell=~s/\.mag$/.cell/;
my $lib=$mag; $lib=~s/\.mag$/.lib/;
my $name=""; $name=$1 if($mag=~m/([\w\-\.]+)\.mag$/);
next unless(-f $cell);
next unless(-f $lib);
next unless(-f $ENV{'CARAVEL'}."/cells/mag/$name.mag");
open CELL,"<$cell";
print "module $name(\n";
while(<CELL>)
{
if(m/^\.inputs (.*)/)
{
foreach my $inp(sort split " ",$1)
{
my $io=$nextio++;
print " inout $inp, // input\n";
}
}
if(m/^\.outputs (.*)/)
{
foreach my $outp(sort split " ",$1)
{
my $io=$nextio++;
print " inout $outp, // output\n";
}
}
}
close CELL;
print " \`ifdef USE_POWER_PINS\n";
print " inout VPWR, // cell power supply\n";
print " inout VGND // cell ground supply\n";
print " \`endif\n";
print ");\n";
print "endmodule\n\n";
}