电子发烧友网>可编程逻辑>FPGA/ASIC技术> > 正文

Vivado中的静态时序分析工具Timing Report的使用与规范

2017年11月17日 18:03 次阅读

《XDC约束技巧》系列中讨论了XDC约束的设置方法、约束思路和一些容易混淆的地方。我们提到过 约束是为了设计服务,写入Vivado中的XDC实际上就是用户设定的目标 ,Vivado对FPGA设计的实现过程必须以满足XDC中的约束为目标来进行。那么:

如何验证实现后的设计有没有满足时序要求?

如何在开始布局布线前判断某些约束有没有成功设置?

如何验证约束的优先级?

这些都需要用到Vivado中的静态时序分析工具。所以让我们来从如何读懂和用好TIming Report开始吧。

静态时序分析

静态时序分析( 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对芯片性能的影响如下图所示,

Vivado使用误区与进阶——如何读懂用好 Timing Report?

 

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

Vivado使用误区与进阶——如何读懂用好 Timing Report?

 

Multi-Corner

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

Vivado使用误区与进阶——如何读懂用好 Timing Report?

 

如果一个设计在Best Case和Worst Case下都能满足时序要求,则可以推算这个设计在其允许的任何操作条件下都能保持正常工作。

这里要提醒大家,不要被corner的名字误导,实际上,同样一条路径可能在Slow Corner中满足时序却在Fast Corner中有时序违例。但是你在Vivado中看到的时序报告只会显示其对两种corner并行分析后选出的最差情况。

Vivado使用误区与进阶——如何读懂用好 Timing Report?

 

有特殊需要的情况下,可以在Vivado中通过config_timing_corners -corner -delay_type 来选择将某种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时序报告中的具体体现。

Vivado使用误区与进阶——如何读懂用好 Timing Report?
 

12下一页全文

本文导航

  • 第 1 页:Vivado中的静态时序分析工具Timing Report的使用与规范
  • 第 2 页:时序命令与报告

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

Vivado调用Questa Sim或Model...

Vivado调用Questa Sim或ModelSim仿真中存在的一些自动化问题的解决方案。 Viv....
发表于 2021-09-02 10:12 101次阅读
Vivado调用Questa Sim或Model...

如何追溯同一时钟域内partial false ...

随着设计复杂度和调用IP丰富度的增加,在调试时序约束的过程中,用户常常会对除了自己设定的约束外所涉及....
发表于 2021-08-23 11:31 1522次阅读
如何追溯同一时钟域内partial false ...

小鸟科技借助Xilinx Kintex® FPG...

赛灵思FPGA平台出色的性能和简洁易用的 Vivado™开发工具,助力小鸟科技将业界领先的专业音视频....
发表于 2021-08-20 14:22 678次阅读
小鸟科技借助Xilinx Kintex® FPG...

在Vitis中把Settings信息传递到底层的...

本篇文章来自赛灵思高级工具产品应用工程师 Hong Han. 本篇博文将继续介绍在Vitis中把Se....
发表于 2021-08-13 14:35 1534次阅读
在Vitis中把Settings信息传递到底层的...

基本的时序约束和STA操作流程

一、前言 无论是FPGA应用开发还是数字IC设计,时序约束和静态时序分析(STA)都是十分重要的设计....
发表于 2021-08-10 09:33 375次阅读
基本的时序约束和STA操作流程

vivado点击xsetup.exe没有反应如何...

1、vivado点击xsetup.exe没有反应 原因1:vivado安装文件存放路径过长 解决方法....
发表于 2021-08-09 18:11 477次阅读
vivado点击xsetup.exe没有反应如何...

在Vivado中Block Design如何改名称?

在一个Demo中找到一个工程叫petalinux_sd,我将它另存为My_Work,可是其中的Block Design仍然叫petalinux_sd,其...
发表于 2021-08-06 16:04 101次阅读
在Vivado中Block Design如何改名称?

Vivado中综合,实现,编程和调试工程可能会出现的问题及解决方案

Xilinx公司的IDE(集成开发环境) Vivado用处广泛,学会使用Vivado对FPGA的学习至关重要,这里以PRX100-D...
发表于 2021-07-31 09:09 909次阅读
Vivado中综合,实现,编程和调试工程可能会出现的问题及解决方案

vivado有哪几种常用IP核?如何去调用它们

vivado三种常用IP核的调用当前使用版本为vivado 2018.3vivado的IP核,IP核(IP Core):Vivado中有很多IP...
发表于 2021-07-29 06:07 0次阅读
vivado有哪几种常用IP核?如何去调用它们

教大家在Vivado中FFT IP调配置及应用

01 FFT简介 快速傅里叶变换 (Fast Fourier Transform,FFT), 即利用....
发表于 2021-07-23 14:29 276次阅读
教大家在Vivado中FFT IP调配置及应用

Vivado HLS实现OpenCV图像处理的设计流程与分析

本文通过对OpenCV中图像类型和函数处理方法的介绍,通过设计实例描述在vivadoHLS中调用OpenCV库函数实现图像...
发表于 2021-07-08 08:30 2121次阅读
Vivado HLS实现OpenCV图像处理的设计流程与分析

vivado高层次综合HLS定义及挑战

HLS高阶综合(highlevelsynthesis)在被广泛使用之前,作为商业技术其实已经存在了20多年。设计团队对于这项技术可以...
发表于 2021-07-06 08:00 2121次阅读
vivado高层次综合HLS定义及挑战

STM32是什么?按内核架构可分为哪几种产品?

Vivado是什么? Verilog HDL是什么? STM32是什么?按内核架构可分为哪几种产品? ...
发表于 2021-07-05 06:13 0次阅读
STM32是什么?按内核架构可分为哪几种产品?

为什么不用2017.4或者2018.3呢?最稳定的vivado版本是哪一种?

很多开发人员都经历过使用不稳定开发环境导致奇怪问题的经历,为了避免大家重走冤枉路,集众多开发工程师智慧,寻找最...
发表于 2021-06-24 09:31 202次阅读
为什么不用2017.4或者2018.3呢?最稳定的vivado版本是哪一种?

怎么安装vivado2019.2?

怎么安装vivado2019.2?
发表于 2021-06-21 08:03 101次阅读
怎么安装vivado2019.2?

怎么使用Vivadao相关的IP组件?

如何使用vivado自带IP? 怎么创建IP?
发表于 2021-06-21 06:20 0次阅读
怎么使用Vivadao相关的IP组件?

vivado2016.2怎么下载?如何破解?

vivado2016.2怎么下载?如何破解?
发表于 2021-06-21 06:08 0次阅读
vivado2016.2怎么下载?如何破解?

浅析Vivado在非工程模式下的FPGA设计流程

参考:UG892 UG835 Vivado集成开发工具为设计者提供了非工程模式下的FPGA设计流程。....
发表于 2021-06-19 10:52 465次阅读
浅析Vivado在非工程模式下的FPGA设计流程

如何在Vivado下设置BITSTREAM配置信...

首先我们看一下如何在Vivado下设置BITSTREAM配置信息。这可以在综合之后进行。借助如下操作....
发表于 2021-06-15 14:26 483次阅读
如何在Vivado下设置BITSTREAM配置信...

Vivado的XDC设置输出延时问题

Vivado 的XDC设置输出延时 Vivado 的XDC设置输出延时,用于输出伴随时钟和数据的,数....
发表于 2021-06-09 17:28 435次阅读
Vivado的XDC设置输出延时问题

深度解读Vivado之Synthesis

在FPGA设计里,设计仿真完成RTL代码设计后便是交给设计套件进行综合及布局布线。在综合过程里,Vi....
发表于 2021-06-01 11:20 751次阅读
深度解读Vivado之Synthesis

如何用Python实现Vivado和ModelS...

芯片设计从RTL代码一直到最后流片的GDSII文件,都是文本文件,因此,掌握文本分析处理语言是集成电....
发表于 2021-05-03 10:06 373次阅读
如何用Python实现Vivado和ModelS...

详细分析Verilog编写程序测试无符号数和有符...

有符号数的计算在 Verilog 中是一个很重要的问题(也很容易会被忽视),在使用 Verilog ....
发表于 2021-05-02 10:48 626次阅读
详细分析Verilog编写程序测试无符号数和有符...

使用matlab产生待滤波信号并编写testbe...

本讲使用matlab产生待滤波信号,并编写testbench进行仿真分析,在Vivado中调用FIR....
发表于 2021-04-27 18:18 643次阅读
使用matlab产生待滤波信号并编写testbe...

解析Vivado如何调用DDS的IP进行仿真

本次使用Vivado调用DDS的IP进行仿真,并尝试多种配置方式的区别,设计单通道信号发生器(固定频....
发表于 2021-04-27 16:33 984次阅读
解析Vivado如何调用DDS的IP进行仿真

浅析Vivado的IP核DDS使用方式及注意事项

vivado提供了DDS IP核可以输出正余弦波形,配置方法如下
发表于 2021-04-27 15:52 992次阅读
浅析Vivado的IP核DDS使用方式及注意事项

关于Vivado三种常用IP核的调用详细解析

vivado的IP核,IP核(IP Core):Vivado中有很多IP核可以直接使用,例如数学运算....
发表于 2021-04-27 15:45 1520次阅读
关于Vivado三种常用IP核的调用详细解析

关于Vitis使用教程详解

首先是安装,本教程分两个主要的平台(WIN10和Ubuntu)给出安装教程和源文件。
发表于 2021-04-26 10:02 1808次阅读
关于Vitis使用教程详解

Vivado设计流程分析 Vivado HLS实...

作者:Harvest Guo来源:Xilinx DSP Specilist 本文通过对OpenCV中....
发表于 2021-04-23 11:32 3846次阅读
Vivado设计流程分析 Vivado HLS实...

关于Vivado版本升级导致的IP锁定的俩种解决...

打开旧版本的vivado工程后,会弹出如下图窗口要求用户选择(图1)。如果用户需要重新修改工程的话,....
发表于 2021-04-21 16:20 789次阅读
关于Vivado版本升级导致的IP锁定的俩种解决...

如何用Xilinx官方例程和手册学习IP核的使用...

在FPGA开发过程中不可避免的要使用到一些IP,有些IP是很复杂的,且指导手册一般是很长的英文,仅靠....
发表于 2021-04-21 16:09 2037次阅读
如何用Xilinx官方例程和手册学习IP核的使用...

如果FPGA配置失败的应对措施解析

都知道FPGA的启动方式有很多种,比如JTAG、SPI,BPI,SeletMAP,Serial等等吧....
发表于 2021-04-21 15:49 354次阅读
如果FPGA配置失败的应对措施解析

详解Vivado与Modelsim关联方法及器件...

在vivado中设置modelsim(即第三方仿真工具)的安装路径。在vivado菜单中选择“Too....
发表于 2021-04-15 10:10 802次阅读
详解Vivado与Modelsim关联方法及器件...

浅析Vivado中增量编译与设计锁定方法与验证

所谓增量实现,更严格地讲是增量布局和增量布线。它是在设计改动较小的情形下参考原始设计的布局、布线结果....
发表于 2021-04-14 12:01 474次阅读
浅析Vivado中增量编译与设计锁定方法与验证

浅谈如何在Vivado中更改自定义的Interf...

因为 BD 中连线太多,所以想自定义下 interface 简化连线,定义好了一个 interfac....
发表于 2021-03-30 15:49 894次阅读
浅谈如何在Vivado中更改自定义的Interf...

FPGA之选择多个jobs能加快实现速度么?

在用Vivado对工程编译时,会弹出下面的对话框: 备注:虽然FPGA不能叫编译,但很多工程师为了方....
发表于 2021-02-11 11:33 504次阅读
FPGA之选择多个jobs能加快实现速度么?

【ZYNQ Ultrascale+ MPSOC ...

按键是FPGA设计当中最常用也是最简单的外设,本章通过按键检测实验,检测开发板的按键功能是否正常,并....
发表于 2021-01-22 09:46 1047次阅读
【ZYNQ Ultrascale+ MPSOC ...

【ZYNQ Ultrascale+ MPSOC ...

PLL(phase-locked loop),即锁相环。是FPGA中的重要资源。由于一个复杂的FPG....
发表于 2021-01-22 09:41 2040次阅读
【ZYNQ Ultrascale+ MPSOC ...