my $rw = open(FILE, $techfile); if(not defined($rw)) { die "ERROR Can't read techfile! \n"; } while(defined(my $i = )) { chomp($i); if( $i =~ /metal/ ) { $blockMetal=1; $curlev=&LevelList("metal ",$i); $metals{$curlev}=(); } if( $i =~ /via/ ) { $blockVia=1; $curlev=&LevelList("via ",$i); $vias{$curlev}=(); } #start single metal-level extraction if($blockMetal > 0) { $zBlock=&CharCount($zBlock,$i); if( $i =~ /POLYNOMIAL_BASED_EM_DC/ ) { $blockEMDC=1; } #start extraction #POLYNOMIAL_BASED_EM_DC block for single metal level if($blockEMDC > 0) { $zzBlock=&CharCount($zzBlock,$i); push @readin, $i; #line added to array if($zzBlock == 0) { $blockEMDC=0; $readin=join(' ',@readin); #connect whole block to one string $_=&CreateHash($readin,\%{$metals{$curlev}{'POLY_BASED_EM_DC'}},'DC',$eps); #if(!$_) {print("$curlev DC consistent is fine!\n")};#only for debugging if($_==1){print("$curlev DC lentgh AND width ranges block is missing!\n")} elsif($_==2){print("$curlev DC count of lentgh-ranges AND count of EM_POLYNOMIALS blocks doesn't match!\n")} elsif($_==3){print("$curlev DC count of width-ranges AND count of EM_POLYNOMIALS block-lines doesn't match!\n")} undef @readin; undef $readin; undef $zzBlock; } } #end extraction #POLYNOMIAL_BASED_EM_DC block for single metal level