SOC时序分析中的跳变点介绍
跳变点和电压电平的默认值,分析这些路径。作为一种变通方法,用户应在向负责库的人员进行咨询后,再定义跳变点。 6.如果不通过时序工具进行扩展会怎样:激烈。这可能会导致芯片故障,因为使用时序工具计算的时延不接近Spice值。如果可以为跳变点不同的界面进行Spice分析,应当是一种很好的操作方法。 如果对SOC中所使用的所有模型(硬模块)使用同样的跳变点,应当是一种很好的操作方法。 这完全可以消除因阈值不同所产生的问题。 7.Spice合作关系: 对多阈值路径进行Spice分析,是增强信心并解决时序问题的好方法。 尽管在Spice世界,阈值实际并不存在。在时序模型中使用它们是为了简化时序分析工具。 时序工具提供一个选项,复制出特定时序路径的spice网列表。除了spice网列表外,还复制出包含输入矢量的激励文件。复制出的spice网列表可能不包含针对时序路径中标准单元和/或硬模块的spice网列表。 Spice模拟工具可读取复制的spice网列表和标准单元/硬模块的spice网列表,然后提供激励文件来模拟重要路径。 需要通过分析生成的波形,查看路径是否满足时序要求。测量SPICE中此类路径的时延和过渡值时需要谨记:要采用与时序模型中所提及的跳变点相同的跳变点。 8.扩展类型: 大多数行业标准工具使用线性或非线性扩展作为其运作方式 a)线性扩展:在该方法中,工具假定不同阈值的线性斜坡。 该方法使用相似三角形的概念扩展驱动程序到负载单元的时延。 b)非线性扩展:此时,工具使用电流源模型来定义坡道。这需要通过复杂的数学方程来计算时延。 总之,本文以跳变点定义开始,然后阐释如何固定用于特定技术库的跳变点。然后本文论述了时序工具如何解释跳变点,以及当驱动程序与负载单元跳变点不同时可能会引发的问题。 #!/usr/local/bin/perl print n***************RUNNING PERL SCRIPT negaTIvedelinsdf_assarray.pl****nn; if (!exists $ARGV[0] || !exists $ARGV[1]) { print USAGE:: negativedelinsdf_assarray.pl } open(FILEA,$ARGV[0]) || die (ERROR:: SDF file $ARGV[0] cannot be opened for reADIngn); open(file1, >$ARGV[1]) || die (ERROR:: file $ARGV[1] cannot be opened for writingn); while( { $line = $_; $line1 = $line; $line =~ s/^s+//g ; if ( $line =~ INTERCONNECT.*-[0-9]) ######## FINDING NEGATIVE INTERCONNECT ###### { @array1 = split(/s+/,$line); $count = @array1; if ($count == 4){ ## To accont for the fact that only one INTERCONNECT triplet is present $array1[$count]= $array1[$count-1]; $count = $count + 1; } for($i=0;$i= $count -3;$i++) {print file1 $array1[$i] ;} $value2 = $array1[$count -1]; $value1 = $array1[$count -2]; $instance_name = $array1[2]; @instance = split(///,$instance_name); $count2 = @instance; $pin_name = $instance[$count2 -1]; ####### GETTING LOAD INSTANCE PIN NAME ############### $instance_name =~ s//[^(.*/)][A-Z0-9a-z_[0-9]+]*$//g; ####### GETTING LOAD INSTANCE NAME ############### if( $value1 =~ ::) { $value1 =~ s/[()]//g; @correct_value1 = split(/::/,$value1); $load_correct_value1_0{$instance_name} = $correct_value1[0]; $load_correct_value1_1{$instance_name} = $correct_value1[1]; if($correct_value1[0] = -0.0) #####NEGATIVE CHANGED TO ZERO DELAY###### {$correct_value1[0] = 0.000;} if($correct_value1[1] = -0.0) {$correct_value1[1] = 0.000;} print file1 ($correct_value1[0]::$correct_value1[1]); } elsif( $value1 =~ :[^:]) { $value1 =~ s/[()]//g; @correct_value1 = split(/:/,$value1); $load_correct_value1_0{$instance_name} = $correct_value1[0]; $load_correct_value1_1{$instance_name} = $correct_value1[1]; $load_correct_value1_2{$instance_name} = $correct_value1[2]; if($correct_value1[0] = -0.0) #####NEGATIVE CHANGED TO ZERO DELAY###### {$correct_value1[0] = 0.000;} if($correct_value1[1] = -0.0) {$correct_value1[1] = 0.000;} if($correct_value1[2] = -0.0) {$correct_value1[2] = 0.000;} print file1 ($correct_value1[0]:$correct_value1[1]:$correct_value1[2]); } else{print file1 $value1 ;} if( $value2 =~ ::) { $value2 =~ s/[()]//g; @correct_value2 = split(/::/,$value2); $load_correct_
附录 A:在SDF中考虑负互连时延的脚本
- 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)