首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【Vivado使用误区与进阶】读懂用好 Timing Report

【Vivado使用误区与进阶】读懂用好 Timing Report

了设计服务,写入Vivado中的XDC实际上就是用户设定的目标,Vivado对FPGA设计的实现过程必须以满足XDC中的约束为目标来进行。那么我们如何验证实现后的设计有没有满足时序要求,又如何在开始布局布线前判断某些约束有没有成功设置,或是验证约束的优先级,这些都需要用到Vivado中的静态时序分析工具。
静态时序分析
静态时序分析( Static Timing Analysis)简称STA,采用穷尽的分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误并报告。
STA不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少、覆盖率极高,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计。所以STA不仅是数字集成电路设计Timing Sign-off的必备手段,也越来越多地被用到设计的验证调试工作中。
STA在FPGA设计中也一样重要,但不同于一般数字集成电路的设计,FPGA设计中的静态时序分析工具一般都整合在芯片厂商提供的实现工具中。在Vivado中甚至没有一个独立的界面,而是通过几个特定的时序报告命令来实现。
OCV与PVT
即便是同一种FF,在同一个芯片上不同操作条件下的延时都不尽相同,我们称这种现象为OCV(on-chip variation)。OCV表示的是芯片内部的时序偏差,虽然很细小,但是也必须严格考虑到时序分析中去。
产生OCV的原因主要有PVT(Process / Voltage / Temperature)三个方面,而STA要做的就是针对不同工艺角(Process Corner)下特定的时序模型来分析时序路径,从而保证设计在任何条件下都能满足时序要求,可以正常工作。
通常PVT对芯片性能的影响如下图所示,


不同的PVT条件组成了不同的corner,另外在数字电路设计中还要考虑RC corner的影响,排列组合后就可能有超过十种的corner要分析。但是在FPGA设计中的静态时序分析一般仅考虑Best Case和Worst Case,也称作Fast Process Corner 和Slow Process Corner,分别对应极端的PVT条件。


Multi-Corner
Vivado中的STA支持多角时序分析(Multi-Corner Timing Analysis),会对以上两种corner下的时序同时进行分析,然后报告最差的情况。因为每个corner下的延时也会有一定的变化范围,所以时序分析还会考虑每种corner下的最大延时和最小延时。


如果一个设计在Best Case和Worst Case下都能满足时序要求,则可以推算这个设计在其允许的任何操作条件下都能保持正常工作。
这里要提醒大家,不要被corner的名字误导,实际上,同样一条路径可能在Slow Corner中满足时序却在Fast Corner中有时序违例。但是你在Vivado中看到的时序报告只会显示其对两种corner并行分析后选出的最差情况。


有特殊需要的情况下,可以在Vivado中通过config_timing_corners -corner <Slow|Fast> -delay_type <none|min|max|min_max> 来选择将某种corner应用于setup和/或hold的分析。在Report Timing Summary 和Report Timing的图形化界面也可以通过Timer Setting对corner做调整,具体界面详见稍后描述。
这样最大化考虑OCV的时序分析方法在处理同一条路径的共同时钟路径时也会应用不同的延时数据,从而会得出更为悲观的数据。为了真实反映路径延时情况,这部分延时必须被纠正,这就是CRPR(Clock Reconvergence Pessimism Removal)。
仔细观察时序报告便可以发现在报告路径的Slack之前有一行显示clock pessimism已经被考虑在内,在进行Setup Check时会加上一定的clock pessimism,而Hold Check时则会减去一定的clock pessimism。
下图显示了CRPR的来源以及在Vivado时序报告中的具体体现。



返回列表