SOC时序分析中的跳变点介绍
value2_0{$instance_name} = $correct_value2[0]; ########NEGATIVE CHANGED TO ZERO DELAY##### $load_correct_value2_1{$instance_name} = $correct_value2[1]; if($correct_value2[0] = -0.0) {$correct_value2[0] = 0.000;} if($correct_value2[1] = -0.0) {$correct_value2[1] = 0.000;} if ($correct_value1[0] == $correct_value2[0] $correct_value1[1] == $correct_value2[1] ) { # Print these values only if they are differnet from the already printed values for the INTERCONNECT print file1 )n; } else { print file1 ($correct_value2[0]::$correct_value2[1]))n; } } elsif( $value2 =~ :[^:]) { $value2 =~ s/[()]//g; @correct_value2 = split(/:/,$value2); $load_correct_value2_0{$instance_name} = $correct_value2[0]; ########NEGATIVE CHANGED TO ZERO DELAY##### $load_correct_value2_1{$instance_name} = $correct_value2[1]; $load_correct_value2_2{$instance_name} = $correct_value2[2]; if($correct_value2[0] = -0.0) {$correct_value2[0] = 0.000;} if($correct_value2[1] = -0.0) {$correct_value2[1] = 0.000;} if($correct_value2[2] = -0.0) {$correct_value2[2] = 0.000;} if ($correct_value1[0] == $correct_value2[0] $correct_value1[1] == $correct_value2[1] $correct_value1[2] == $correct_value2[2]) { # Print these values only if they are differnet from the already printed values for the INTERCONNECT print file1 )n; } else { print file1 ($correct_value2[0]:$correct_value2[1]:$correct_value2[2]))n; } } $load_instance{$instance_name} = $instance_name; ##SAVE ALL LOAD INSTACES FOR NEG DELAY IN THE ASSOCIATIVE ARRAY## $load_pin{$instance_name.$pin_name} = $pin_name; ##SAVE ALL LOAD PINS FOR NEG DELAY IN THE ASSOCIATIVE ARRAY## } elsif ($line =~ CELL ) { print file1 $line; $find = 0; } elsif($line =~ INSTANCE ) ##CHECKING CORRESPONDING INSTANCES AND FIND FLAG = 1 IF FOUND###### { print file1 $line1; @array2 = split(/s+/,$line); $instance_name2 = $array2[1]; ##GETTING THE LOAD INSTANCE NAME FOUND HERE########## $instance_name2 =~ s/[()]//g; $instance_definition{$instance_name2} = $instance_name2 ; if(exists $load_instance{$instance_name2}) ####COMPARE INSTANCE NAME WITH THAT SAVED IN ASSO ARRAY##### { if($load_instance{$instance_name2} eq $instance_name2) {$find = 1;} } } elsif($line =~ IOPATH $find == 1) ##AFTER INSTANCES ARE FOUND CHECKING FOR CORRSPONDING PINS###### { @array4 = split(/s+/,$line); if ($array4[0] =~ COND ) { ## Take care of COND statements $pin_name2 = $array4[3]; } else { $pin_name2 = $array4[1]; } if($line =~ IOPATH exists $load_pin{$instance_name2.$pin_name2} ) { if ( $load_pin{$instance_name2.$pin_name2} eq $pin_name2 ) { @array3 = split(/s+/,$line); $count3 = @array3 ; @value_IOPATH = ; # This is to initialize the array to blank if ($array3[0] =~ COND ) { for ($j=5; $j=$count3 ; $j++) { $value_IOPATH[$j-5] = $array3[$j]; $value_IOPATH_width = @value_IOPATH; if ($count3 == 6) { #### In case there is only one triplet for COND.*IOPATH $value_IOPATH[1] = $value_IOPATH[0]; } #$value1_IOPATH = $array3[5]; #$value2_IOPATH = $array3[6]; } $constant_fields = 4; } elsif ($array3[0] =~ IOPATH) { for ($k=3; $k=$count3 ; $k++) { $value_IOPATH[$k-3] = $array3[$k]; $value_IOPATH_width = @value_IOPATH; if ($count3 == 4) { #### In case there is only one triplet for IOPATH $value_IOPATH[1] = $value_IOPATH[0]; } #$value1_IOPATH = $array3[3]; #$value2_IOPATH = $array3[4]; } $constant_fields = 2; } for($i=0;$i= $constant_fields;$i++) {print file1 $array3[$i] ;} if( $value_IOPATH[0] =~ ::) ####CORRECT OR ACCOMODATING THE NEG DELAY VALUES HERE ######### { $value_IOPATH[0] =~ s/[()]//g; @correct_value1_IOPATH = split(/::/,$value_IOPATH[0]); if(exists $load_correct_value1_0{$instance_name2}) { if($load_correct_value1_0{$instance_name2} 0.0) { # So that only negativ
- RS232、RS485和RS422介绍与比较(12-14)
- ARM处理器模式介绍和模式切换(11-28)
- EZ-USB FX2单片机CY7C68013的特性介绍(10-15)
- MCS-51单片机的中央处理器CPU介绍(05-13)
- PIC12F683微控制器实验板介绍(11-10)
- 详细介绍用51单片机解密任何红外遥控器(10-23)