FPGA时序约束--实战篇(读懂Vivado时序报告)

这篇具有很好参考价值的文章主要介绍了FPGA时序约束--实战篇(读懂Vivado时序报告)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、新建工程

二、时序报告分析

1、打开时序报告界面

2、时序报告界面介绍

3、时序路径分析

三、总结


FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。

本文将详细介绍如何读懂Vivado时序报告,包括报告的基本结构和如何分析报告。

一、新建工程

使用vivado创建一个新的工程,添加verilog代码文件,内容如下:

module xdc_test
(
    input wire clk,
    input wire reset,
    output reg [3:0] data_cnt
);
 
always @(posedge clk or posedge reset)begin
    if(reset)
        data_cnt <= 'b0;
    else
        data_cnt <= data_cnt + 1'b1;
end
endmodule

创建xdc文件,并添加时序约束:

create_clock -period 6.6667 -name clk -waveform {0.000 5.000} [get_ports clk]

如果需要了解时序约束如何添加,可以看下上一篇文章。

点击“generate bitestream”,开始综合、布线和生成bit文件。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

综合完成后,可以在“Design run”界面,看到整个工程时序满足情况,主要资源消耗、编译时间等等信息,如下图。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

二、时序报告分析

1、打开时序报告界面

(1)方法1

点击“实现implementation”下的“report timing summary”选项。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

出时序显示设置界面,如下图所示,点击OK。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

​(2)方法2

点击功能栏“∑”,在“Timing”界面下,点击“Implementation Timing Report”。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

2、时序报告界面介绍

Timing界面左侧是时序信息总览、时钟和时序路径分类,右侧是时序信息总览详细信息,包括Setup、Hold以及Pulse Width检查最差的各10条路径。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

​这里有几个重要的参数信息名称:

WNS (Worst Negative Slack) :最差负时序裕量

TNS(Total Negative Slack) :总的负时序裕量 ,也就是负时序裕量路径之和。

WHS (Worst Hold Slack) :最差保持时序裕量

THS (Total Hold Slack) :总的保持时序裕量,也就是负保持时序裕量路径之和。

这些参数如果为负或者颜色变为红色,则表示出现了时序违例,否则表示时序正常。

3、时序路径分析

点击时序报告界面中WNS的数值,如上面报告中的“5.875ns”,则会直接跳转到时序最差路径的界面。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

​主要参数信息含义如下:

slack:时间裕量

level:逻辑级数,表示两个寄存器之间存在的组合逻辑层数

fanout:扇出数,表示一个信号驱动的所有接收端的数量

from:路径起始位置,包含HDL代码中的起始寄存器

to:路径结束位置,包含HDL代码中的起始寄存器的下一级寄存器

Total Delay:整个路径的总体延时

Logic Delay:整个路径的逻辑延时

Source Clock:路径起始寄存器的时钟

Destination Clock:路径终点寄存器的时钟

Requirement:时钟周期,即路径延时最大值

如果slack出现红色值,且为负值,则表示出现了时序违例。

另外通过看level和fanout,可以看到路径时序违例的原因,level值过大,则表示逻辑层数太多,需要考虑将这条路径对应HDL代码分成几拍完成;如果fanout值过大,则表示该寄存器的扇出过大。

双击任意一条时序路径,以“path1”为例,即可进入该路径的时序具体信息,主要包括summary(总览)、Source Clock Path(源时钟路径)、Data Path(数据路径)、Destination Clock Path(目的时钟路径)。

FPGA时序约束--实战篇(读懂Vivado时序报告),FPGA时序约束,fpga开发,fpga时序约束,时序约束,fpga,xilinx

​这里可以查看到具体的时序布线情况,以及时序违例的原因。

三、总结

时序报告是Vivado中必不可少的工具,它可以帮助我们了解电路的时序性能,并找出潜在的时序问题。通过分析时序报告,我们可以确定关键路径延迟、slack和每个信号路径的延迟等信息,并找到需要优化和调整的地方。如果存在时序问题,我们可以通过修改代码、时序约束或重新布局/重分配电路来进行优化。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。文章来源地址https://www.toymoban.com/news/detail-517005.html

到了这里,关于FPGA时序约束--实战篇(读懂Vivado时序报告)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 时序分析、时序约束和时序收敛(6)--如何读懂一个时序报告?

    目录 写在前面 1、建立工程与添加时序约束 2、时序报表         在之前的文章中写了一些时序分析的基础概念,同时还说了文章中提到的公式根本就不需要记忆,因为综合工具vivado会帮你把所有时序路径都做详尽的分析,你所需要做的就是理解概念。         光说不

    2024年02月08日
    浏览(51)
  • Xilinx FPGA SPIx4 配置速度50M约束语句(Vivado开发环境)

    qspi_50m.xdc文件: 等同于图形化配置方式:

    2024年02月22日
    浏览(66)
  • FPGA时序分析与时序约束(四)——时序例外约束

    目录 一、时序例外约束 1.1 为什么需要时序例外约束 1.2 时序例外约束分类 二、多周期约束 2.1 多周期约束语法 2.2 同频同相时钟的多周期约束 2.3 同频异相时钟的多周期约束 2.4 慢时钟域到快时钟域的多周期约束 2.5 快时钟域到慢时钟域的多周期约束 三、虚假路径约束 四、最

    2024年01月20日
    浏览(44)
  • FPGA时序分析与时序约束(二)——时钟约束

    目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径  三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束         上一章了解了时序分析和约束的很多基本概念(FP

    2024年02月03日
    浏览(71)
  • FPGA时序约束与分析(1) --- 时序约束概述

    本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法 5、查看相关时序信息 FPGA的设计约束分为物理约束

    2024年02月16日
    浏览(34)
  • Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。

    Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。 get_pins命令用于获取指定对象(Object)的引脚(Pin)列表。我们可以使用get_pins来获取具有特定命名约定的引脚(如CLOCK、RESET等),并通过对这些引

    2024年02月05日
    浏览(61)
  • FPGA时序分析与约束(2)——时序电路时序

            在之前的内容中,我们介绍了组合电路的时序问题和可能导致的毛刺,强烈推荐在阅读前文的基础上再继续阅读本文, 前文链接:FPGA时序分析与约束(1)——组合电路时序         这篇文章中,我们将继续介绍FPGA时序分析相关内容,本文介绍的是时序电路的时序

    2024年02月10日
    浏览(42)
  • FPGA时序约束--进阶篇(主时钟约束)

    在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。 本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。 主时钟是FPGA电路中最基础的时钟,其稳定性和

    2024年02月09日
    浏览(44)
  • FPGA时序分析与约束(8)——时序引擎

            要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。         发起沿(launch edge,源时钟产生数据的有效时钟沿),捕获沿(capture

    2024年02月07日
    浏览(43)
  • FPGA时序分析与约束(5)——时序路径

            在之前的文章中我们分别介绍了组合电路的时序,时序电路的时序和时钟的时序问题,我们也对于时序分析,时序约束和时序收敛几个基本概念进行了区分,在这篇文章中,我们将介绍时序约束相关的最后一部分基本概念,带领大家了解什么是时序路径。       

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包