PrimeTimeSI相关运用及概念

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PrimeTime –SI 相关运用及概念
PrimeTime SI主要分析两种信号串扰:delay和static noise(noise bump or glitch)。

PrimeTime SI认为两种情况不存在信号串扰:
1)aggressor和victim之间的耦合电容非常小;
2)aggressor和victim的信号transition time不相互交叠。

在不交叠的时候,如果aggressor 对victim产生的glitch足够大,使victim的逻辑发生变化,则PrimeTime SI也会考虑。

如何使用PrimeTime SI进行crosstalk delay分析(analysis mode : on-chip variation)
基于PrimeTime命令、library以及脚本,额外的步骤如下:
1)使能PrimeTime SI
set_app_var si_enable_analysis true
2)读取SPEF文件中包含的耦合电容信息(确认SPEF包含耦合电容信息,StarRC是否有相应的option?)
read_parasitics –keep_capacitive_coupling file_name.spf
3)设置PrimeTime SI performance相关参数(选择设置set_app_var)
PrimeTime脚本中crosstalk report的相关命令
report_si_bottleneck
report_delay_calculation -crosstalk -from pin -to pin
Example:
PrimeTime SI是如何运行的(two iteration)
1)基于victim net上bump voltage的值(通过设置threshold)过滤掉影响很小的aggressor net;
2)把没有被过滤的net作为initial net来进行crosstalk分析,也可自己定义;
3)Delay calculation
计算timing delay分为两个阶段,第一阶段为悲观估计,工具首先假设所有的aggressor会对victim在同一时刻产生信号串扰,找出worst-case delay values;第二阶段考虑timing window 以及crosstalk的contribution,即通过分析aggressor net的transition time以及direction看是否会影响到victim net。

设置si_xtalk_exit_on_max_iteration_count变量定义分析循环个数,默认为2。

PrimeTime SI分析时候考虑相关信号的logic因素,即会分析aggressor net上信号的transition direction对victim net造成negative delay或者positive delay。

默认的变量si_analysis_logic_correlation_mode设置为true。

设置相应的threshold value来过滤aggressor net
PrimeTime SI也会根据aggressor net对victim net的bump voltage大小,来过滤掉那些耦合影响可以忽略不计的aggressor net。

先针对单个aggressor net过滤,根据变量
si_filter_per_aggr_noise_peak_ratio,默认值为0.01(power voltage的百分之一)。

然后针对周边aggressor nets组合产生的影响来过滤,根据变量set_filter_accum_aggr_noise_peak_ratio,默认值为0.03。

在使能PrimeTime SI分析前,需要确保电路综合及常规STA没有问题。

在用report_timing进行一次crosstalk delay分析前,需要执行check_timing,主要的check 涉及以下几点:
1)no_driving_cell 当电路中有no driving cell时,该aggressor net会产生很强的驱动产生crosstalk;
2)ideal_clocks 确保电路中的时钟为propagated时钟树结构;
3)partial_input_delay 所有的Inputs需要定义完整的max delay和min delay定义,缺一不可,为了SI分析提供精确的timing window;
4)unexpandable_clocks 确保电路中所有不同频率的时钟都源自一个基准时钟。

除了ideal_clocks其他check都为check_timing的默认选项,如需包含ideal_clocks的check,执行“check_timing –include { ideal_clocks }”
四条命令可以选择排除哪些不需要分析的net或者一组net:
·set_si_delay_analysis 排除定义的nets进行crosstalk delay分析
·set_si_noise_analysis 排除定义的nets进行crosstalk noise分析
·set_si_aggressor_exclusion 排除aggressor net与其他aggressor nets transition方向相同·set_coupling_separation 排除定义的nets或者一组net进行crosstalk delay/noise分析如果这些命令的定义存在矛盾时,set_coupling_separation有最高优先级。

set_case_analysis的net不会进行crosstalk delay/noise分析。

当aggressor nets有相同的transition方向rise或者fall,则可用set_si_aggressor_exclusion命令建立exclusive group,这样在crosstalk delay/noise分析时工具会选择bump voltage最大的aggressor net来分析。

关于SI分析时候clock groups的设定
复杂电路中会有许多时钟,在分析timing时需要分不同的clock group来进行分析,就上图
简单的mux电路举例,可以set_case_analysis SEL 1/0分别对CLK1和CLK2进行两次分析,但如果有许多时钟,那就必须用set_false_path来区分不同的timing path,比较简单的做法是:set_clock_groups –logically_exclusive –group {CLK1} –group {CLK2}
其作用相当于把所有的clock间都set_false_path,但不同于timing path分析,SI分析的时候还是会对CLK1和CLK2间的耦合电容x4进行分析,所以需要在SI分析时对clock进行物理上的划分:set_clock_ groups –physically_exclusive –group {CLK1} –group {CLK2}
这样PrimeTime SI不会分析基于耦合电容x4产生的CLK1和CLK2之间的crosstalk,当然x1之间的CLK1和CLK2也被忽略,如果仅仅想忽略mux输出后电路中CLK1和CLK2之间的SI 分析(因为实际电路工作中mux只可能会输出CLK1或CLK2),那需要在mux的输出节点使用create_generated_clock 命令分别产生CLK1和CLK2,然后再进行物理上的划分即可。

Composite Aggressor Mode(Delay Analysis)
PrimeTime SI做delay分析时默认不使能composite aggressor mode。

因为对于一个victim net而言会有许多不同情况的aggressor nets,根据之前提到过滤的方法,可以将那些影响忽略不计的aggressor net滤掉,只考虑bump voltage大的aggressor,当然这样分析并不完全非常的精确,所以可以使能composite aggressor mode来对全部的aggressor nets进行综合分析。

在composite aggressor mode下,会将影响较小的aggressor net 合成一根aggressor net(虚拟的)来进行分析。

使能该模式,设置si_xtalk_composite_aggr_mode变量为statistical。

设置si_xtalk_composite_aggr_noise_peak_ratio变量定义bump threshold来划分哪些为影响较小的aggressor net。

如何生成crosstalk analysis report
1)report_timing 生成包含crosstalk delay信息的slack timing report。

需加上option –crosstalk_delta,PrimeTime SI在report中显示delta delay
和delta transition信息在cell的input pins;
2)report_si_bottleneck 生成造成主要violation的aggressor nets及victim nets。

-slack_less_than选项可以限定delta delay的范围;
3)report_delay_calculation –crosstalk 生成某一victim net详细的crosstalk计算信息
-from 输出pin –to 输入pin。

在report中setup分析时显示的delta slew为positive或zero,而hold分析时显示的delta slew为negative或zero;
4)report_si_double_switching 生成包含double-switch violations的victim nets。

PrimeTime SI除了会分析steady-state victim net上出现的
Noise,也会分析switching victim net上出现的noise,这种
情况成为double-switching。

要进行double-switching检查必须有CCS noise library model。

使能double-switching检查,设置变量si_xtalk_double_switching_mode值为clock_network (对时钟网络进行check),或者full_design(对data paths进行check)。

update_timing开始double-switching的check;
5)report_noise 生成static noise report,即victim net上的noise bump。

查看crosstalk settings
report_si_delay_analysis
report_si_noise_analysis
report_si_aggressor_exclusion
PrimeTime SI进行crosstalk noise分析flow
在用report_timing进行一次crosstalk noise分析前,需要执行check_noise,该命令涉及以下option:
1)-include 选择noise model check的类型,默认为noise immunity checking;
2)-beyond_rail 决定是beyond-rail noise checking还是between-rail noise checking(默认);3)-verbose 生成summary report;
4)-nosplit 防止report中的长句出现split;
set_noise_parameters命令相关option
-ignore_arrival 则所有的aggressor nets信号认为在同一时刻翻转,不考虑timing window;-include_beyond_rails 会分析above high和below low两种noise bump,默认工具只分析
between-rail noise bump;
-enable_propagation 用于找出worst violations,默认工具只考虑crosstalk noise及user
defined noise(no propagation);
-analysis_mode (report_at_source/report_at_endpoint)定义了report noise的方式,默认为report_at_source。

前者提供一个详细的noise propagated信息,而后
者则更为直观地找出violation点,具体差异可见下图比较。

report_at_source
report_at_endpoint
如果在report_at_endpoint模式下要知道violation的源头,则可以使用以下两条命令:report_noise_violation_sources/get_noise_violation_sources
Composite Aggressor Mode(Noise Analysis)
PrimeTime SI做noise分析时默认不使能composite aggressor mode。

使能该模式,设置si_noise_composite_aggr_mode变量为statistical。

如果不想将某些aggressor net进行composite的分析,可使用如下命令:
set_si_noise_disable_statistical/remove_si_noise_disable_statistical
如要查看哪些aggressor nets参与了composite分析,则report_noise_calculation。

PrimeTime SI在进行crosstalk noise分析时可基于三种library情况
1)With incomplete library
当library中noise immunity信息不明确时,可以使用如下命令进行设置
·set_noise_lib_pin 定义当前设计中pin的noise characteristics信息引用其他library
中相同pin的特性;
·set_noise_immunity_curve 定义设计中output port或library cell input pin的noise
Immunity相关信息,包括height,width,area;
·set_noise_margin 如果没有noise immunity信息则定义noise height;
·set_steady_state_resistance 定义设计中input port或library cell output pin的drive
resistance,决定了voltage bump的大小。

2)With CCS noise library
基于transistor-level的SI分析,动态的结果更为精确。

如果通过set_noise_immunity_curve或set_noise_margin定义了static的noise immunity 特性,则工具优先根据这些定义进行分析,而不是CCS noise library中的查找表。

3)With nonlinear delay models(NLDM)
Library需要包含以下characteristics用于noise分析:
·Steady-State I-V Characteristics
·Noise Immunity
·Propagated Noise Characteristics
不包含noise model信息,需使用Synopsys Library Compiler及SPICE工具生成相应library。

Fast analysis mode
在load Design及Library之前,set_program_options –enable_fast_analysis。

Stage delay conception
Stage delay = cell delay + net delay
可以分为max/min rise/fall delays
max delay即positive delta delay,min delay即negative delta delay。

Recommended settings for StarRC
·COUPLE_TO_GROUND: NO
·REDUCTION: YES or LAYER
·MODE: 200 for 130nm and below
·MODE: 100 for above 130nm
设置clock group属性的命令优先级
report_noise option
-all_violators/-clock_pins/-async_pins/-data_pins
Noise时PrimeTime SI所参照的noise immunity顺序
•PrimeTime SI command-specified noise immunity curves (set_noise_immunity_curve) •PrimeTime SI command-specified bump height noise margins (set_noise_margin)
•Library-specified per-arc noise immunity tables
•Library-specified per-pin noise immunity curves
•Library-specified DC noise margins (VOL, VOH, VIL, VIH)
Run fast initial noise analysis
set_noise_parameters –ignore_arrival –analysis_effort low
report_noise
PrimeTime SI分析时三种alignment mode
通过设置变量si_xtalk_delay_analysis_mode,决定分析哪些timing path上的crosstalk,默认值为all_paths。

因为对每一根victim net,工具都会根据这根net上的timing window(包含所有timing stage 的一个时间窗口,timing window = latest path –earliest path)结合aggressor nets的timing window 来计算delta delay,而一个timing window中集合了不同的timing path。

1)all_paths
这种情况下会对victim net所涉及的全部timing path进行crosstalk分析
2)all_violating_paths
这种情况下会对PrimeTime常规分析下出现violation的timing path进行crosstalk分析
3)worst_path
这种情况下会对victim net所涉及的最差timing path进行分析,如setup check时候为delay最大的path,hold check时候为delay最小的path。

上图worst path为C点至与门输出,即victim net上timing window的latest path。

ECO fixing flow
•Fix setup violations by resizing cells
•Fix hold violations by inserting buffers
•Write change list for ICC
Size cell或insert buffer可以手动也可以自动处理:
自动处理使用命令
fix_eco_timing –type setup/hold
手动处理使用命令
report_timing …
estimate_eco
size_cell(during setup fixing)/ insert_buffer(during hold fixing)
update timing
完成netlist fixing后用write_changs –format icctcl命令输出给ICC做physical ECO。

相关文档
最新文档