use strict; use warnings; use Getopt::Long; use Cwd qw(abs_path); use Data::Dumper qw(Dumper); BEGIN { my @script_path_dirs = split('/',abs_path($0)); pop(@script_path_dirs); my $script_path = join('/',@script_path_dirs); # use lib $script_path; unshift @INC, $script_path; } use Voltrace; #### my %pinList = (); my $pinValFile = "Pin_Values.txt"; sub readPinValFile{ open(READ_PINVALS, $pinValFile) or die "[ERROR] Could not read Pin Val file, $!"; print WRITE_RUN_LOG "[INFO] Reading Pin Values file for pin info file->$pinValFile\n"; my @pinNames = (); my @pinMaxSDVs = (); my @pinMinSDVs = (); my $lineno=0; my $i=0; while(){ $i++; if($i > 1){ my $line = $_; $line =~ s/^\s*|\s*$//g; #To remove all leading and trailing blanks if($line ne ""){ my @pinWords = (); if($line =~ m/.*?,.*?,.*/){ @pinWords = split(',',$line); } elsif($line =~ m/.*?;.*?;.*/){ @pinWords = split(';',$line); } else{ $runLogErrCount++; print WRITE_RUN_LOG "\t\t[ERROR] Could not read pin info for $line at line $i\n"; next; } my $pin = $pinWords[0]; my $pinMaxSDV = $pinWords[1]; my $pinMinSDV = $pinWords[2]; $pin =~ s/^\s*|\s*$//g; #To remove all leading and trailing blanks $pinMaxSDV =~ s/^\s*|\s*$//g; #To remove all leading and trailing blanks $pinMinSDV =~ s/^\s*|\s*$//g; #To remove all leading and trailing blanks if($pin ne ""){ if($pinMaxSDV eq "nil"){ $pinMaxSDV = ""; } if($pinMinSDV eq "nil"){ $pinMinSDV = ""; } $pinList{$pin} = [$pinMaxSDV,$pinMinSDV]; } else{ $runLogErrCount++; print WRITE_RUN_LOG "\t\t[ERROR] Could not read pin info for $line at line $i, incorrect pin name\n"; next; } } } } }