目录
5.3 时钟转换时间(clock transition time)
1. 逻辑门单元
逻辑门单元分为组合逻辑门单元和时序逻辑门单元两种。
反相器逻辑门单元的输出结果有两个状态:高电平与低电平,分别对应数字逻辑的0和1。
时序分析中逻辑门延时和信号线延时组成的阶段延时(stage delay)是时序分析中计算延时的主要组成部分。
逻辑门延时:逻辑单元自身逻辑求值的时间
信号线延时:逻辑信号从逻辑门单元的输出端口开始在互联线上传播到下一级逻辑输入端口的延时。
2. 门单元的时序计算参数
2.1 信号转换延时(transition delay)
定义:输出/输入端口的信号电平在高/低之间转换所需要的时间
当信号电压值大于逻辑1阈值电压Vth2时,视为高电平有效;当信号电压值大于逻辑0阈值电压Vth1时,视为低电平有效。
静态时序分析中,时序信息文件中通过以下4个设置定义信号转换延时的计算参数属性:
pct_fall为从高到低转换时,阈值计算电压与标准供电电压的百分比参数;pct_rise为从低到高转换时,阈值计算电压与标准供电电压的百分比参数。阈值计算电压即为判定高/低转换的电压界限。
2.2 逻辑门延时(logic gate delay)
定义:输入信号改变到对应的正确输入信号的时间间隔即为逻辑门延时。
上述定义逻辑门从低电平输入到低电平输出的延时为:从输入信号低于标准供电电压的60%开始到输出信号变化到低于标准供电电压50%时的时间间隔。
3. 时序单元相关约束
时序单元的时序约束是为了保证时序单元能够实现正确的逻辑功能所规定的输入或者输出信号数据需要保持稳定的最小时间间隔值。时序单元相关约束信息包括:建立时间、保持时间、恢复时间、移除时间以及最小脉冲宽度。
3.1 建立时间(setup time)
时序单元正常工作时,输入信号数据应该在时钟信号有效前到达并保持的最小时间。
3.2 保持时间(hold time)
对于时序单元,数据信号在时钟沿有效后必须保持的最小时间长度。
3.3 恢复时间
为了保证单元正确的逻辑功能,要求低电平复位信号或者高电平清零信号在时钟有效沿之前保持有效的最小时间长度。
3.4 移除时间
低电平复位信号或者高电平清零信号在时钟有效沿之后保持有效的最小时间长度。
3.5 最小脉冲宽度
最小脉冲宽度是指脉冲波形的开始到结束之间的最小时间间隔。
时序单元的时序分析必须满足输入信号脉宽大于最小脉冲宽度的要求,否则无法保证时序单元正常逻辑功能的实现。
4. 时序路径
设计中数据信号传播过程中所经过的逻辑路径。每条时序路径都有对应的始发点与终止点。
始发点:组合逻辑单元的数据输入端口和时序逻辑单元的时钟输入端口
终止点:组合逻辑单元的数据输出端口和时序逻辑单元的数据输入端口
2x2 四种时序路径:①.触发器到触发器(register to register) ②.触发器到输出端(register to output) ③.输入端到触发器(input to register) ④.输入端到输出端(inout to output)
其中,触发器到输出端与输入端到触发器这两个时序路径也称为外部时序路径。这是因为组合逻辑单元的输出/输入端口可以以外部设计的输入/输出端口相连。
5. 时钟特性
在同步电路设计中,各功能逻辑单元之间的数据传输都由一个同步信号控制,这个信号就是时钟信号。
时钟的时序特性:时钟周期(clock period)、时钟占空比(clock duty cycle)、时钟转换时间(clock transition time)、时钟延迟(clock latency)、时钟偏斜(clock skew)、时钟抖动(clock jitter)。
5.1 时钟周期(ckock period)
定义为时钟频率的倒数,又称为振荡周期。
5.2 时钟占空比(clock duty cycle)
时钟高电平信号在一个周期内所占的时间比率,大部分时钟占空比为50%,即高/低电平各占0.5个周期。
5.3 时钟转换时间(clock transition time)
定义为时钟信号的电压从标准供电电源电压的10%变化到标准供电电源电压的90%的时间间隔。时钟转换时间越短,不同切换形式(上升转换和下降转换)下越对称,时钟信号越好。
理想状态下不存在转换时间,但由于供电电压、工艺变化、扇出负载大小和互连负载大小等因素,存在转换时间。
5.4 时钟延迟(clock delay)
时钟信号从时钟源输出端口到达时序单元时钟输入端口所需要的传播时间。
OCV(片上工艺偏差)和PVT(process、voltage、temperature)等因素会不同幅度影响时钟输入的延时不确定性,总而导致整个设计时序的不确定。
5.5 时钟偏斜(clock skew)
非理想状态下,时钟信号到达同一时序路径下的相邻两个时序单元时钟输入端口的时间并不相同,导致相同时钟信号下的时钟偏斜。
实际中,时钟偏斜必定存在。静态时序分析主要分为布局布线前和布局布线后两个阶段,后者有具体的布局物理信息,能更加准确的估计互连线延迟,以及时钟树网络的延迟。
5.6 时钟抖动(clock jitter)
最理想的工作状态下,时钟输入信号在下一个时钟的有效电平或者信号边缘到来之前切换,并在其正确的逻辑电平上保持稳定。但实际中,不同实现单元的速度在不同时刻可能有着大小不一 的差别,时钟信号可能并不能准确的在理想的信号边缘到来前的瞬间保持在正确的信号值上其保持稳定,所需的时间比理想情况有一定的偏移,这种偏移是在同一个时序单元的时钟输入端口上的时钟偏移,主要表现为时钟抖动。
时间抖动永远存在,其带来的影响在静态时序分析中可以通过设置时序裕度值来解决。
6. 时序弧
时序弧:两个节点延时信息的数据。一般分为连线延时和单元延时。连线延时是单元输出端口和扇出网络负载之间的延时信息;单元延时是单元输入端口到输出端口的延时信息。
连线延时无功能属性,故在分类上没有区别。单元延时中的时序分为基本时序弧和约束时序弧。
6.1 组合时序弧
时序弧类型信息:timing_type : combinational;
用于表示组合逻辑单元的延时信息,通过时序弧类型信息combinational声明。其为默认的时序类型,没有特别声明的时序弧都被认为是组合时序弧。
分为基于三种不同逻辑状态下的延时弧:同向时序弧、反向时序弧、不定态时序弧。
同向时序弧:输入端信号变化方向与输出端信号变化方向一致的时序弧。
反向时序弧:输入端信号变化方向与输出端信号变化方向相反的时序弧。
不定态时序弧:输入端信号变化方向与输出端信号变化方向无固定确定关系的时序弧。
三种时序弧需要在时序信息文件中通过定义相关PIN和逻辑状态信息进行声明:
related_pin:"A";
timing_sense:positive_unate #同向时序弧
timing_sense:negative_unate #反向时序弧
timing_sense:non_unate #不定态时序弧
6.2 边沿时序弧
表示时序单元从时钟信号有效沿到输出信号有效的延时信息。
边沿时序弧根据时钟信号有效沿不同,分为上升沿有效和下降沿有效两种,通过时序弧类型信息falling_edge和rising_edge进行声明。
timing_sense:falling_edge #下降沿有效
timing_sense:rising_edge #上升沿有效
6.3 复位清零时序弧
表示具有复位清零端口的时序单元从复位清零信号有效沿到输出信号有效沿的延时信息。分为上升沿有效和下降沿有效两种,通过时序弧类型信息preset和clear进行声明。
timing_sense:preset #下降沿有效(复位)
timing_sense:clear #上升沿有效(清零)
6.4 三态使能时序弧
表示三态逻辑单元从使能信号有效到输出的延时信息。根据使能信号位有效与无效的不同,通过状态信息three_state_enable和three_state_disable进行声明。
timing_sense:three_state_enable #使能端有效
timing_sense:three_state_disable #使能端无效
6.5 建立时序弧
时钟沿有效前数据输入信号保持有效的时间信息。根据时钟信号有效沿不同,分为上升沿有效和下降沿有效两种,通过时序弧类型信息setup_falling和setup_rising进行声明。
timing_sense:setup_falling #下降沿有效
timing_sense:setup_rising #上升沿有效
6.6 保持时序弧
时钟沿有效后数据输入信号维持有效的时间信息。根据时钟信号有效沿不同,分为上升沿有效和下降沿有效两种,通过时序弧类型信息hold_falling和hold_rising进行声明。
timing_sense:hold_falling #下降沿有效
timing_sense:hold_rising #上升沿有效
6.7 恢复时序弧
在时钟沿有效前使能信号保持有效的时间信息。根据时钟信号有效沿不同,分为上升沿有效和下降沿有效两种,通过时序弧类型信息recovery_rising和recovery_falling进行声明。
timing_sense:recovery_falling #下降沿有效
timing_sense:recovery_rising #上升沿有效
6.8 移除时序弧
在时钟沿有效后使能信号保持有效的时间信息。根据时钟信号有效沿不同,分为上升沿有效和下降沿有效两种,通过时序弧类型信息removal_rising和removal_falling进行声明。
timing_sense:removal_falling #下降沿有效
timing_sense:removal_rising #上升沿有效
6.9 脉宽时序弧
时钟信号同一状态下维持有效的最小总时间信息。根据信号有效状态的不同,分为高电平有效和低电平有效两种,通过时序弧类型信息min_pulse_width进行声明。
timing_sense:min_pulse_width
7. PVT环境
在静态时序模拟时,为了更接近芯片实际工作的情况,需要对工艺、工作电压、工作温度等参数进行设置,参数组合简称PVT。分为typical、best、worst三种工艺情况。
不同工艺情况,单元延时不同,best最快,worst最慢,typical居中。时序分析需要不同,PVT组合条件不同,有三种常规的STA分析条件。
7.1 TYP(Typical)
典型的工艺(typical process)/典型的工艺温度(nominal temperature 25℃)/典型的有效电源电压(nominal voltage 工艺定义的标准供电电压)
7.2 BCF(Best-Case Fast)
最快的工艺(fast process)/最低的工艺温度(lowest temperature -40℃)/最高的有效电源电压(highest voltage 有效电源电压的1.1倍)。在先进工艺下(比如28nm工艺),单元延时大小在温度参数上产生反转,此时BCF工艺条件为最高的工艺温度(highest temperature)。
7.3 WCS(Worst-Case Slow)
最慢的工艺(slow process)/最高的工艺温度(highest temperature 125℃)/最低的有效电源电压(lowest voltage 有效电源电压的0.9倍)。与BCF相同,在先进工艺下(比如28nm工艺),单元延时大小在温度参数上产生反转,此时WCS工艺条件为最低的工艺温度(lowest temperature)。
若还需同时考虑功耗的分析,则加入如下两种工艺情况。
7.4 ML(maximal leakage)
最快的工艺(fast process)/最高的工艺温度(highest temperature 125℃)/最高的有效电源电压(highest voltage 有效电源电压的1.1倍)。工艺条件相当于先进工艺下的BCF。
7.5 TL(typical leakage)
典型的工艺(typical process)/最高的工艺温度(highest temperature 125℃)/典型的有效电源电压(nominal voltage 工艺定义的标准供电电压)
上述工艺的时序信息文件中,参数nom_process为工艺缩放因子,视流片情况而定,其值越小则时序分析延时结果越小,反之延时结果越大;参数tree_type用于定义互连线延时计算模型,其分为三类:best_case_tree、worst_case_tree、balanced_tree。
互连线延时计算模型best_case_tree只考虑驱动电阻负载、互连线负载总电容值和对应驱动负载电容值;互连线延时计算模型worst_case_tree相比best_case_tree还多考虑互连线总电阻负载:互连线延时计算模型balanced_tree相比worst_case_tree把互连线总电阻、申容负载根据负载节点的个数多少进行了平均分配。
在时序分析中,通过命令定义所需的工艺环境:
set_operating_conditions typ -library TYP
上述命令定义使用典型工艺条件。
8. 时序计算单位
在时序信息文件中还需对温度、电压、电流、电阻、电容负载、时间等变量因子进行单位定义。