内容发布更新时间 : 2024/11/10 3:53:54星期一 下面是文章的全部内容请认真阅读。
第六章 门级静态时序分析与PrimeTime
使用
一、PrimeTime简介
PrimeTime是Synopsys的一个单点的全芯片、门级静态时序分析器。它能分析大规模、同步、数字ASICS的时序。PrimeTime工作在设计的门级层次,并且和Synopsys其它工具整合得很紧密。
基本特点和功能: 时序检查方面:
建立和保持时序的检查(Setup and hold checks)
重新覆盖和去除检查(Recovery and removal checks) 时钟脉冲宽度检查(Clock pulse width checks) 时钟门锁检查(Clock-gating checks) 设计检查方面: 没有时钟端的寄存器
没有时序约束的结束点(endpoint)
主从时钟分离(Master-slave clock separation) 有多哥时钟的寄存器
对层次敏感的时钟(Level-sensitive clocking)
组合电路的反馈环(Combinational feedback loops)
设计规则检查,包括最大电容(maximum capacitance)、最大传输时间(maximum transition)和最大扇出(maximum fanout)
PrimeTime 时序分析流程和方法: 在时序分析之前需要做的步骤: 1、 建立设计环境
- 建立搜索路径(search path)和链接路径(link path) - 读入设计和库 - 链接顶层设计
- 建立运作条件、连线负载模型、端口负载、驱动和传输时间 2、 说明时序声明(约束)
- 定义时钟周期、波形、不确定性(uncertainty)和滞后时间(latency) - 说明输入、输出端口的延时
3、 说明时序例外情况(timing exceptions)
- 多周期路径(multicycle paths) - 不合法路径(false paths) - 说明最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs) 4、 进行分析和生成报告
- 检查时序 - 生成约束报告 - 生成路径时序报告
二、静态时序分析中路径延时的计算
静态时序分析工具一般将电路网表看成一个拓扑图,图中的节点(node)代表电路中的引脚(pin)。节点之间的边(edge)表示时序弧(timing arc),有两种:
# 连线延时(net delay)---驱动引脚(drive pin)和扇出(fanout)之间的连接
# 单元延时(cell delay)---输入引脚(input pin)和输出引脚(output pin)之间的连接
延时计算就是计算每条时序弧的值,可能是单元延时也可能是连线延时。通过累计这些延时可以计算时序路径(timing delay)的上升延时(rise delay)或下降延时(fall delay)。
正函数时序弧(positive unate timing arc):
将上升延时和上升延时相加,下降延时和下降延时相加。例如一个AND门单元延时和连线延时。
负函数时序弧(negative unate timing arc):
将新得到的上升延时和原来的下降延时相加,而新得到的下降延时和原来的上升延时相加。例如NAND门。
非函数时序弧(non-unate timing arc):
将原来的延时和新得到的最差情况延时(worst-case delay)相加。非函数时序弧出现在不能从输入量的变化预测输出端逻辑值变化的地方,例如XOR门。
下图展示了一个电路逻辑网络是如何转化成一张时序图的:
非线性延时模型(nonlinear delay model):
非线性模型是供应商以查表(lookup table)形式在工艺库中提供的延时信息,它和时序分析计算有着紧密的联系。
总的延时包含了单元延时和连线延时:
Dtotal = Dcell + Dc Dc
连线延时。它有两种计算方法,一是通过operating_conditions中的tree_type属性和wire_load模型;二是在标准延时方程中读入一个SDF文件。
Dcell
门自身的延时,典型地是取从输入引脚电压变化到50%到输出引脚电压变化到50%的之间的时间。
CMOS非线性模型有两种计算Dcell的方法,在一个工艺库中可以混用。一是用插值法在库所提供的单元延时表里查找;二是通过查传输(propagation)表和过渡(transition)表得到传输延时和过渡延时,再计算单元延时:Dcell = Dpropagation + Dtransition 。
Dpropagation
典型衡量Dpropagation的方法是从输入引脚电压变化了50%到门输出电压即将开始转变(比方说变化了10%)之间的时间。这样,如果Dtransition值定义为输出电压从10%变化到50%之间的时间的话,它就要被加到Dpropagation上去。这样结果就是输入变化了50%到输出变化了50%之间的时间。
Dtransition
输出引脚转变状态所需要的时间,有时也指输出斜坡(ramp)时间。它是输出引脚两个参考电压之间变化的时间,可以是20%到80%或10%到50%。它是通过插值查表法得到的。
如果提供的是单元延时表,那么总延时就是:Dtotal = Dcell + Dc ;
如果提供的是传输延时表,那么总延时就是:Dtotal = Dpropagation + Dtransition + Dc 。
库单元延时时序弧的种类有: 上升传输(Rise propagation) 单元上升(Cell rise)
下降传输(Fall propagation) 单元下降(Cell fall)
上升过渡(Rise transition) 下降过渡(Fall transition)
注:每个条延时弧可以有传输延时表或单元延时表,但不能都有;同时必须有过渡延时表。
每一个延时表可以通过以下六个变量中的一个到三个查找: input_net_transition output_net_length
total_output_net_capacitance
related_out_total_output_net_capacitance output_net_pin_cap output_net_wire_cap