静态时序分析
什么是静态时域分析
- 我:通过综合工具生成门级网表,根据晶圆厂提供的在不同PVT条件下的单元延迟信息计算所有路径的延时信息,根据延时判断路径是否满足建立与保持时间,给出时序违例的路径信息。
- 定义:STA是分析调试并确认一个门级系统设计时序性能的比较透彻的方法。在门级电路设计过程中,为得到一个最佳的电路设计,在结构逻辑、电路布局布线等方面,时序分析起着关键性的作用。静态时序分析既要检验门级电路的最大延迟、以保证电路在指定的频率下能够满足建立时间要求,同时又要检验门级电路的最小延迟、以满足保持时间的需求。芯片的设计只有通过了静态时序分析才能真正完成,甚至在从逻辑综合开始后的每一个设计步骤的结果都需要满足或部分满足时序的要求。
静态时域分析过程是怎样的
利用PT的单元库的非线性时序模型根据工艺的翻转时间,输出负载来查表找到cell的延时,进行计算后得到路径的延时信息,来检查路径是否满足建立与保持时间。
- 时序库.db(打不开) .lib(能打开)
- 转换的K因子计算
- 非线性的延时模型、查找表(输入反转时间、输出电容负载)延时是30%-70%=40%,库里的延时是实际的两倍、库里延时10%-90%=80%,故设置slew_derate_from_library=0.5=80/40
- 低功耗、建库、原有库扩展
- 表项与延时值不对,实际值=最终测量值=K库,改变PVT时,会K库,怎么去插值
优点与缺点
- 优点:
- 不需要输入激励
- 能够覆盖所有路径
- 运行速度快
- 缺点:
- 只适用于同步电路
- 无法验证电路的功能
- 需要比较贵的工具支持
- 对于新工艺可能还需要建立一套特征库,建库的代价可能要几百万
- 工具:
- Synopsys 的 prime time,
- Cadence 的 Encounter Timing System 等
与动态时序分析相比有哪些不同
- 动态时序分析需要写激励,在testbench中写一段仿真时间,最后对仿真结果进行时序和功能分析,这里的仿真可以是门级或者晶体管级,包括spice格式和RTL格式的网表
- 优点
- 晶体管级的仿真比较精确,直接基于工厂提供的spice工艺库计算得到
- 适用于任何电路,包括同步、异步、latch等等
- 不需要额外搞一套特征库
- 不需要很贵的时序分析工具
- 缺点
- 需要给不同的测试激励
- 关键路径无法检查全(致命性的)
- 规模大的电路spice仿真特别慢(致命性的)
PT
PrimeTime(PT)打开方式
标准单元的门级的时序分析
- 脚本模式pt_shell
- GUI
PT工作的时机
- 在综合阶段Synthesis .sdc文件
- 在PR(布局布线)阶段 .sdf文件 这两个阶段的延时库是不一样的,越往下越准确 SPEF文件
PT时序库.db.lib
标准单元库
- Synopsys Timing Lib 概览
- lib(可打开) db(不可见)
库的文件头描述
cell模型
- 非线性延时模型
- cell标准单元延时模型
- 线性
- 非线性(general 实际为非线性模型)
- 二维查找表
- 表项{1.input transition2. output capacitance} ={输入反转时间,输出负载电容}一般为3x3表格
- 若没在这9个点上,则要插值(高斯消元法=利用周围四个点来算中间点)
- 阈值规范和转换下降比例
- 若想确定一个cell的delay
- 就必须先确定表项,就是索引的,翻转时间,这个时间与工艺有关
- 一般真实为30%-70%=40%;库里面是10%-90%=80%,derate=40%/80%=0.5倍的库时间=实际的时间
- K库:我原来的库的PVT条件和我实际情况不符,我想重新建一下库,表项和延迟值不一样了,先抽取,再插值,新算出3x3的表,表项和内容都不一样。
- 时间模型
- 组合逻辑
- 时序逻辑
- 时序的cell,时序弧比较多
- 时序的种类有建立时间调的表和保持时间调的表
- pin ck到D
- 组合逻辑
- 线延时模型 线延迟模型的定义
- 互连线=Rc树来模拟
- 线载模型
- 电阻、电容、面积、斜率、长度
- 用斜率slop来计算未定义的参数,比如长度为8怎么算,模型里面只规定了1-5
时序弧(Timing Arc)
描述两个节点之间延时数据
- 连线延时
- 单元的输出端口和扇出网络负载之间的延时
- 单元延时
- 单元的输入端口和单元的输出端口之间的延时
- 单元延时分为四种
- 转换更低的的门限百分比下降沿
- 转换更高的的门限百分比下降沿
- 转换更低的的门限百分比上升沿
- 转换更高的的门限百分比上升沿
- 逻辑门延时
- input_threshold_pct_rise
- output_threshold_pct_rise
- output_threshold_pct_fall
- input_threshold_pct_fall
- 建立时间与保持时间的约束
- 建立时间的约束是最大延时(设置PVT与cell model时要MAX延时)
- 保持时间约束的是最小逻辑延迟(设置PVT与cell model时要min延时)
时序路径
- input Port -> D触发器d端
- D触发器clk端-> D触发器d端
- D触发器clk端-> output Port
- input Port -> output Port
- 起点定义
- 一和时序单元的clk引脚(D触发器clk pin)pin为内部
- input port(port连接外部)
- 终点
- D触发器的D端
- D触发器的output port
时钟域
- 全局异步,局部同步 静态时序分析中,处理的是同步电路 用时钟域来划分 跨时钟域的的路径进行约束,不需要进行路径的时序分析
操作条件
指定操作环境
- WCS(worst-case slow)
- TYP(Typical)
- BCF(Best case Fast)
- PVT process(工艺制程) Voltage(电压) and Temperature(温度)
- cell delay or interconnect delays 都是基于特定环境条件的(特定PVT) PVT
- fast typical slow
- 高温低电压延迟最大->看setup
- 低温高电压->看hold
基础知识(转载自b站)
- 术语
低功耗
K库:查找表怎么抽取与插值syn mark RTL级降低功耗的主要途径为,减少反转
- 状态机采用独热码
- 门控时钟