STA【1】

一、 STA

时序分析分为动态时序分析(DTA, Dynamic Timing Analysis)和静态时序分析(STA, Static Timing Analysis)。DTA的优点是准确(spice), 可以进行功能验证。缺点是需要激励,速度很慢。STA的优点是运算速度快,缺点是不能进行功能验证,并且会报出一些false的错误。因为DTA太慢,且需要激励,通常使用STA来进行时序分析。在synthesis和place and route时,都需要STA来保证时序正确。

静态时序分析:通过为synthesis计算cell和net组成的path的延时,判断path延时是否满足相应时序约束,然后基于path延时,工具从timing library中选择cells来创建一个满足timing要求的电路。之所以称为静态时序分析,是由于没有输入激励文件。

STA工具通过读入Netlist、constraints、Timing library、SDF/SPEF、产生report。SDF文件不能进行noise分析,而SPEF文件可以分析noise。SDF是计算好的pin to pin的delay值(according to spef or other parasitic files),SPEF是每一条net上的parasitic

当想参照noise的时候,除了需要知道driving cell的强弱,也需要知道每一条net上面的loading,而sdf只有一个delay值,所以资讯是不够的,SPEF是STA tools根据RC算一遍延迟等,再分析是不是满足constraint的要求。sdf是已经算好延迟,STA tools只是分析是不是满足要求而已。

静态时序分析需要计算时序路径的延时,时序路径包括两个基本元素:Timing arc in cells和Timing arcs in netsTiming arcs是一个假想的弧,用来表示输入变化导致输出变化的关系。Timing arc有三个特性分别是unateness、slew和delay。

二、 Timing library

Timing library通常指包含timing, power, noise, function信息的logic library。Timing library为STA提供cells和nets的延时信息。Timing arcs用来体现cells和nets的延时信息。工具通过不同的PVT(process voltage temperature)工作条件下,得到对应的时序信息。目前广泛使用的格式是library,以.lib作为扩展名。

Timing arcs中包含的unateness、slew和delay特性都可以从timing library中查到。

1. Unateness

表示信号的翻转和输入的关系,信号从1到1就是positive unate,从1到0就是negative unate,无关就是nonunate。

图1 从timing library中查到pin(Y)的unateness为positive_unate

2. Slew

指信号电平翻转的速度,即从1变0或从0变1的翻转速度,即是指信号的翻转率,通常slew=constant/(transition time)。

transition time是指信号从高电平转化到低电平或者低电平转化到高电平所花费的时间。Transition time的长短和输入信号input transition以及output的load有关。上升和下降transition时间都是timing arc的特性,输入信号和输出信号都有上升和下降的transition时间。STA工具是通过slew的阈值来计算输入的transition时间

Slew的阈值可以在timing library中定义,输入的上升和下降时间是通过slew的阈值来计算的。 如图2 lib中的index_1是指input transition时间,index_2是指output load值


图2 pin transtion

3. Delay

Delay分为cell delay和net delay,cell delay指信号从输入到输出的时间。Net delay指信号从net的起始点到终点的时间。

Cell delay:Cell中的晶体管需要一定的时间来开关,因此cell的input的改变需要一定的时间才能使得output改变。

Net delay:Net延时是指信号刚传到net上到信号到达这条net的loads的时间。

图3中threshold指从10%到90%或从90%到10%的时间,input_threshold到50%时认为信号到了input端,output_threshold到50%时认为信号到达output端,input_threshold 50%到ouput_threshold 50%之间既是cell delay


图3 delay calculation

Delay(power和timing checks也是使用查找表)和input transition(即slew)和load(即output capacitance)相关,并不是线性的而是离散的点,因此需要用查找表(look up table)查这些值,如图4。

图4 Two dimensional model

4. Timing Library内容

下面就是Timing library的内容,如图5,红框内表示library和delay model,这里是一个非线性的delay model即查找表table_lookup。篮筐表示各种单位,绿框表示threshold和slew的电路传输时间和信号转换时间的电压百分比,橙框表示PVT。

图5 timing libary

Library中也会有default_cell_leakage_power, fanout_load, inout_pin_cap, leakage_power_density等描述漏电功耗,扇出负载和端口电容。以及voltage_map(VDD,0.935), voltage_map(VSS,0)等表示电源和地的电压信息。

在operation_conditions中会描述实际应用中cell所处的工艺/温度/电压:如pross:1, temperature:125, voltage:0.765。也有查找表的二位时序延时模板,二维功耗模板,内部功耗模板等。

图6 power查找表模板

5.Cell部分的library

接下来是cell部分,每个cell都有一个footprint名对应,一个footprint代表一组cells,相同footprint不同cells间的驱动能力可能不同,在进行优化的时候,只有同一类的cell才能进行优化。

图7 cell library

图8、图9是输入输出pin的属性,包含capacitance,direction等信息。


图8 input pin属性


图9 output pin属性

如图10也可以查到cell的timing sense,type及cell delay、transition等。

图10 cell timing_sense、timing_type

三、 wire delay

1. wire delay和WLM

wire delay:互连线延时是由于互连线电阻电容引起的,互连线延时也叫wire delay和net delay。Wire delay分两种,一种是绕线后,由工具抽出互连线的R和C,计算出线的延时;另一种是绕线前,通过wire load model来估算出wire delay。在net中,所有的timing arcs都是positive unate,net delay的计算通常也是从input threshold的50%到output threshold的50%。

Wire load model:WLMs是基于net的fanout和长度来评估R和C(可以代表百分之九十的nets),为工具提供一个绕线前评估方法。Wire load models的特点:统计学的,基于最近的校准面积计算的,选择合适的wire load model过程非常繁琐,就算是定制的wire load model,精准度也是很难说的。

2. 如何计算WLM的wire delay?

首先看block的area,从wire load的table中,选择block的area包含net的area的WLM。基于net的fanout,使用WLM估算net的length。使用电容乘数(CM)和电阻乘数(RM)来决定net的实际RC值。

公式如下:Cnet=CM*length、Rnet=RM

互联线长度 = 扇出1对应的互联线长度+(3-1)x slope

互联线电容 = 互联线长度 x 互联线单位电容值

互联线电阻 = 互联线长度 x 互联线单位电阻值

互联线面积 = 互联线长度 x 互联线单位长度面积值

3. 计算net的delay:Delay=Rnet*Cnet

WLM in library:

WLM包含resistance/cap/area/slope/fanout_length等

图11 wire load lib

Wire load可以从lib中选择不同种类,一般有zero,small,medium,large,huge等。以Wire load small为例,计算net的RC:

CM=0.0001895、RM=0.009、Slope=5.1

对于length大于1,STA工具使用slope来线性计算对应的fanout的length值

Length=7.65+slope*(fanout-1)

Delay = length*0.009*0.0001895

4. 图12有capacitance、fanout与block size的关系

图12 block size与cap、fanout关系

5. SDF、SPEF、WLM何时使用

5.1 SDF工具抽出来的延时信息,可以直接反标到电路上,可以被工具读取,一般用于前端仿真。

5.2 SPEF抽取net的RC值,为STA计算net delay提供RC,一般用于timing signoff

5.3 WLM估算net的RC值,为STA计算net delay提供RC,用于实际绕线前

6. Setup、hold

Setup、hold基础知识就不介绍了。

对于SDC最后生成的report中有一些概念说明一下:

Endpoint:时序路径的信号接收的时序单元,一个endpoint可能对应多个startpoint点。

Startpoint: 时序路径的信号的发射单元,一个startpoint 点可以对应多个endpoint 点。

other End Arrival Time: 0.353,从clk到dff_out/ck的时间。

setup:0.063 ,library setup,可以从timing library 中直接查到,这个值和input transition有关。

Phase shift:1000.000,暂时理解为周期(capture clock 的时钟沿的调整)。

uncertainty: sdc 中通过set_clock_uncertainty 设置。

Required Time: 899.905,要求数据从clk到dff_Out/D 的最大时间。

Arrival Time: 0.503,从clk到dff_out/D的时间。

Slack Time: 899.786,Required Time - Arrival Time。

Hold:0.050 ,library setup,可以从timing library 中直接查到,这个值和input transition有关。

四、 SDC约束

SDC约束一般分为工作环境、设计规则、系统接口、时序例外、时序类、power 6类约束。

1. 工作环境约束

set_operating_conditions、set_wire_load_mode、set_wire_load_model、set_wire_load_selection_group

Set_operating_conditions:指定timing library

wire load mode是为跨层次互联线选择线负载模型的方法。对于多层次设计,注意不同层次的子设计可以与父设计有不同线负载模型,这时除了需要决定某一层次采用何种wire load model,还需要确定对跨越不同层次的net采用何种wire load model。Wire load mode共有三种:TOP、enclosed 和segmented,下图给出了三种模式比较示意,design A和design B间的互联线,且不同层级使用的WLM是不同的。在top模式下,选用50x50 model;在enclosed模式下,选用40x40 model;在segmented模式下,分段选用model。

图13 wire load mode

2. 设计规则约束包括set_max_capacitance、set_max_fanout、set_max_transition、set_min_capacitance。

3. 系统接口约束包括set_drive、set_driving_cell、set_load、set_fanout_load、set_input_transition。

4. 时序类约束包括create_clock、create_generated_clock、set_clock_latency/set_clock_groups/set_clock_sense、set_timing_derate、set_propagated_clock、set_clock_uncertainty(加入margin)、set_input_delay/set_output_delay等。

Timing_derate指人为的把一些timing path设快或设慢。

5. 时序例外约束包括set_false_path、set_min_delay/set_max_delay、set_multicycle_path、set_disable_timing、set_case_analysis。

6. power约束包括set_max_dynamic_power、set_max_leakage_pwer。

原文链接:https://zhuanlan.zhihu.com/p/140498220

你可能感兴趣的:(STA【1】)