微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SOC时序分析中的跳变点介绍

SOC时序分析中的跳变点介绍

时间:07-12 来源:互联网 点击:

H delay for $load_pin{$instance_name2.$pin_name2} of $instance_name2 is smaller than the INTERCONNECT delay n;}}}

if ($correct_value1_IOPATH[0] == $correct_value2_IOPATH[0] $correct_value1_IOPATH[1] == $correct_value2_IOPATH[1]) { # Print these values only if they are differnet from the already printed values for the IOPATH

} else {

print file1 ($correct_value2_IOPATH[0]::$correct_value2_IOPATH[1]);

}

}

elsif( $value_IOPATH[1] =~ :[^:])

{ $value_IOPATH[1] =~ s/[()]//g;

@correct_value2_IOPATH = split(/:/,$value_IOPATH[1]);

if(exists $load_correct_value2_0{$instance_name2}) {

if( $load_correct_value2_0{$instance_name2} 0.0) {

if ( abs($load_correct_value2_0{$instance_name2}) $correct_value2_IOPATH[0] ) {

$correct_value2_IOPATH[0] = $correct_value2_IOPATH[0] + $load_correct_value2_0{$instance_name2};}

else { print IOPATH delay for $load_pin{$instance_name2.$pin_name2} of $instance_name2 is smaller than the INTERCONNECT delay n;}}}

if(exists $load_correct_value2_1{$instance_name2}) {

if( $load_correct_value2_1{$instance_name2} 0.0) {

if ( abs($load_correct_value2_1{$instance_name2}) $correct_value2_IOPATH[1] ) {

$correct_value2_IOPATH[1] = $correct_value2_IOPATH[1] + $load_correct_value2_1{$instance_name2};}

else { print IOPATH delay for $load_pin{$instance_name2.$pin_name2} of $instance_name2 is smaller than the INTERCONNECT delay n;}}}

if(exists $load_correct_value2_2{$instance_name2}) {

if( $load_correct_value2_2{$instance_name2} 0.0) {

if ( abs($load_correct_value2_2{$instance_name2}) $correct_value2_IOPATH[2] ) {

$correct_value2_IOPATH[2] = $correct_value2_IOPATH[2] + $load_correct_value2_2{$instance_name2};}

else { print IOPATH delay for $load_pin{$instance_name2.$pin_name2} of $instance_name2 is smaller than the INTERCONNECT delay n;}}}

if ($correct_value1_IOPATH[0] == $correct_value2_IOPATH[0] $correct_value1_IOPATH[1] == $correct_value2_IOPATH[1] $correct_value1_IOPATH[2] == $correct_value2_IOPATH[2]) { # Print these values only if they are differnet from the already printed values for the IOPATH

} else {

print file1 ($correct_value2_IOPATH[0]:$correct_value2_IOPATH[1]:$correct_value2_IOPATH[2]);

}

}

else{print file1 $value_IOPATH[1] ;} # This is to print empty brackets in case rise and fall triplets are empty

for ($m=2;$m=$value_IOPATH_width;$m++) {

if (exists $value_IOPATH[$m]) {

$value_IOPATH[$m] =~ s/)+/)/; # To account for the brackets

print file1 $value_IOPATH[$m];

}

}

if ($array4[0] =~ COND ) { ## Extra bracket for COND statements

print file1 ))n;

} else {print file1 )n;}

}

}

else

{print file1 $line1;} #######DUMPING OUT OF SDF IN FILE1######################

}

else

{print file1 $line1;}

}

close(file1);

close(fileA);

open(FILEA,$ARGV[0]) || die (ERROR:: SDF file $ARGV[0] cannot be opened for readingn);

print nn#############REPORTING INSTANCES WHOSE DEFINITION IS NOT THERE IN THE SDF#############n;

while()

{

$line2 = $_;

$line2 =~ s/^s+//g ;

if ( $line2 =~ INTERCONNECT.*-[0-9])

{ @array4 = split(/s+/,$line2);

$instance_name3 = $array4[2];

$instance_name3 =~ s//[^(.*/)][A-Z0-9a-z_[0-9]+]*$//g;

if(exists $instance_definition{$instance_name3})

{}

else

{print $line2;}

}

}

close(fileA);

print n;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top