use strict; use warnings; my $in_macro = $ARGV[0]; my $alpha_config = $ARGV[1]; if ($#ARGV!=1) { print "USAGE :: perl bias_vol_chk.pl <> <> \n\n"; exit(1); } my $pvt_name; my $bias_voltage; my @bias_voltage; open my $ALPHAFILE, "<", $alpha_config or die "Can not open config_FILE"; while (my $line = <$ALPHAFILE>) { chomp $line; print "alpha[$.]: $line \n"; if ($line =~m/\s*cornerData\((.*)\)\s*\{(.*),TEMP\s*(.*)/g) { $pvt_name = $1; $bias_voltage = $2; print " PVT_NAME: $pvt_name\n"; print " BIAS_V: $bias_voltage\n"; @bias_voltage = split (',',$bias_voltage); if ($pvt_name =~m/^([a-z].*)([0-9]p.*)/) { my ($process, $vol_temp) = ($1, $2); my $process_two = substr($process, 0, 2); #got ff from ffgp my @vol_temp = split ('v',$vol_temp); my $temp = $vol_temp[1]; my $volt_1 = $vol_temp[0]; $volt_1 =~ s/[0]$//; $vol_temp[0] =~ s/[0]$//; my $volt_2 = $vol_temp[0]; my @volt_2 = split('p',$volt_2); $volt_2 = join('.',@volt_2); #replacing p with . my $file_name1 = "lib_pg/$in_macro"; print " FNAME 1: $file_name1\n"; if (-e $file_name1) { my $data = handle_library_file($file_name1); # Do something with the $data } my $file_name2 = "lib_pg/$in_macro"; print " FNAME 2: $file_name2\n"; if (-e $file_name2) { my $data = handle_library_file($file_name2); # Do something with the $data } } } } sub handle_library_file { my $file_name = shift; open my $LIBFILE, "<", $file_name or die "Can not open INPUT liberty file $file_name: $!"; while (my $libline = <$LIBFILE>) { chomp $libline; if ($libline=~m/^\s*voltage_map\((.*)\)/g) { my @volt_array = ("$1"); my $lib_volt = $1; my @lib_volt = split (',',$lib_volt); print "FILE lib_volt: @lib_volt \n"; } } # After gathering and processing the data, return it! }