SOC时序分析中的跳变点
NTERCONNECT delay \n";}
}
}
if(exists $load_correct_value1_2{$instance_name2}) {
if($load_correct_value1_2{$instance_name2} < 0.0) { # So that only negative delay value triplet is changed in the IOPATH syntax
if ( abs($load_correct_value1_2{$instance_name2}) < $correct_value1_IOPATH[2] ) {
$correct_value1_IOPATH[2] = $correct_value1_IOPATH[2] + $load_correct_value1_2{$instance_name2};
} else { print "IOPATH delay for $load_pin{$instance_name2.$pin_name2} of $instance_name2 is smaller than the INTERCONNECT delay \n";}
}
}
print file1 "($correct_value1_IOPATH[0]:$correct_value1_IOPATH[1]:$correct_value1_IOPATH[2])";
}
else{print file1 "$value_IOPATH[0] ";} # This is to print empty brackets in case rise and fall triplets are empty
if( $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 ($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 small
- 在进行时序分析时为什么CPR操作得出的效果却是相反的?(02-07)
- 时序分析中的一些基本概念(02-11)
- 如何成为一名优秀的SoC设计工程师(06-19)
- 片上系统SoC设计流程(09-12)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)