STA静态时序分析

本文详细解析了路径基础和块基础的时序分析方法,涉及所需文件如库数据、PVT环境和互连数据,介绍了计算setup和hold检查的过程,以及如何阅读和解读时序报告。重点讲解了违例修复策略,包括hold和setup问题的处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分析类型

通过分析方式分为Path-Based及Block-Based两种。
Path-Based 如图:
在这里插入图片描述
Block-Based如图:
在这里插入图片描述

二、需要的文件

1.Library data(.db)
STA所需要的Timing Model就存放在标准组件库(Cell Library)中。这些必要的时序信息是以Timing Arc的方式呈现在标准组件库中。
2.PVT环境
3.interconnect data (.spef)
P&R前使用0线负载模型,P&R后通过RCE提取spef电阻电容电路贴回(Back-annotate)STA计算交互延迟。
4.timing constraints (.sdc)
Path分为四类:reg/clk-reg/d reg/clk-ouput input-reg/d input-output。
定义好时钟后reg/clk-reg/q的约束就确定了,其他三类需要额外定义boundary condition, boundary condition一般包括:driving cell 、 input transition time 、 output capacitance load 、input delay 、 output delay。
其余属于timing exception.

三、时序路径计算

Setup check : slack = Require Time (RT) - Arrival Time (AT) = (Tcapture + Tclk - Tsu) - ( Tlaunch + Tclk2q +Tdp) (launch比capture早一个周期)

Hold Check : slack = Arrival Time (AT) - Require Time (RT) = (Tlaunch + Tclk2q +Tdp) - (Tcapture + Thold) (launch和capture同一个周期)

注意以上公式没有考虑 clock source latency 、network latency和clock uncertainty,network latency RT和AT都要加,uncertainty加到RT上。

例题:
在这里插入图片描述

四、时序报告分析

报告时序的命令report_timing有很多开关,依据需求选择,可通过man 这个命令查看开关具体用法。
在这里插入图片描述
每条路径时序报告开头会有路径起点、终点、所属时钟域、所用的PVT环境。时序报告的组成从左至右分别为 路径节点、该节点推动组件个数、负载电容、节点上信号转换时间、时序放宽调整derate值、该节点造成的延迟以及自路径起点至该节点的总延迟(延迟数值通过library的time table查表得到。对于CK端,最右边的r代表触发器正沿触发,f代表负沿。对于q端r代表信号由0-1变化的延迟更长。

五、违例修复方法

交付前修复hold的优先级高于setup,因为setup影响的是性能,可以降频处理,而hold影响的是功能。

修复setup:
首先判断是否为真违例,即能否通过修改sdc、设置exception避免。如果是真违例研究时序报告分析违例原因,比如是时钟树不够balance导致的,需要调整时钟树;如果是路径太长导致的,可以换用阈值小的单元,但会因此导致功耗增加,还可以和前端沟通增加触发器级数采用流水线结构;如果是部分单元扇出过大导致的,可以换用驱动能力稍差但面积更小延迟更小的单元。如果违例很严重后端可能无法解决,需要通知前端修改rtl。
修复hold:
在setup有余量时通常采用插buf和inv的方法解决,或者是换阈值更高的单元。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值