0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何读懂Vivado时序报告

CHANBAEK 来源:FPGA入门到精通 作者:未可知摩尔 2023-06-23 17:44 次阅读

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]

如果需要了解时序约束如何添加,可以看下上一篇文章《FPGA时序约束--实战篇(Vivado添加时序约束)》

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

图片

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

图片

二、时序报告分析

1、打开时序报告界面

(1)方法1

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

图片

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

图片

(2)方法2

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

图片

2、时序报告界面介绍

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

image.png

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

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

TNS(Total Negative Slack) :总的负时序裕量 ,也就是负时序裕量路径之和。WHS (Worst Hold Slack) :最差保持时序裕量

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

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

3、时序路径分析

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

图片

主要参数信息含义如下:

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(目的时钟路径)。

图片

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

三、总结

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601673
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119980
  • 时序
    +关注

    关注

    5

    文章

    385

    浏览量

    37269
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66312
收藏 人收藏

    评论

    相关推荐

    VIVADO时序约束及STA基础

    时序约束的目的就是告诉工具当前的时序状态,以让工具尽量优化时序并给出详细的分析报告。一般在行为仿真后、综合前即创建基本的时序约束。
    的头像 发表于 03-11 14:39 9675次阅读

    vivado时序分析与约束优化

    转自:VIVADO时序分析练习时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习VI
    发表于 08-22 11:45

    Vivado下显示指定路径时序报告的流程

      Vivado运行Report Timing Summary时,只显示各个子项目最差的十条路径,很可能并不包含你最关心的路近,这个时候显示指定路径的时序报告就显得很重要了,下面就简单介绍一下
    发表于 01-15 16:57

    关于Vivado时序分析介绍以及应用

    时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习Vivado软件时序分析的笔记,小编这里使用的是18.1版本的
    发表于 09-15 16:38 6830次阅读
    关于<b class='flag-5'>Vivado</b><b class='flag-5'>时序</b>分析介绍以及应用

    Vivado报告命令的了解

    了解report_design_analysis,这是一个新的Vivado报告命令,可以独特地了解时序和复杂性特征,这些特性对于分析时序收敛问题很有价值。
    的头像 发表于 11-26 07:01 3601次阅读

    Vivado进行时序约束的两种方式

    上面我们讲的都是xdc文件的方式进行时序约束,Vivado中还提供了两种图形界面的方式,帮我们进行时序约束:时序约束编辑器(Edit Timing Constraints )和
    的头像 发表于 03-08 17:17 2w次阅读
    <b class='flag-5'>Vivado</b>进行<b class='flag-5'>时序</b>约束的两种方式

    如何阅读时序报告

    生成时序报告后,如何阅读时序报告并从时序报告中发现导致时序
    的头像 发表于 08-31 13:49 6066次阅读
    如何阅读<b class='flag-5'>时序</b><b class='flag-5'>报告</b>?

    Vivado时序案例分析之解脉冲宽度违例

    脉冲宽度违例 - 高脉冲宽度违例 如需了解脉冲宽度违例的详情,请参阅报告时序汇总(Report Timing Summary) 的TPWS部分。 最严重的脉冲宽度违例在报告中显示为 WPWS。 如需了解
    的头像 发表于 11-19 13:48 5503次阅读
    <b class='flag-5'>Vivado</b><b class='flag-5'>时序</b>案例分析之解脉冲宽度违例

    VIVADO时序报告中WNS、WHS、TNS、THS有什么含义

    VIVADO时序报告中WNS,WHS,TNS,THS含义运行“report_timing”或“report_timing_summary”命令后,会注意到 WNS、TNS、WHS 和 THS
    的头像 发表于 10-21 14:32 2.3w次阅读
    <b class='flag-5'>VIVADO</b>中<b class='flag-5'>时序</b><b class='flag-5'>报告</b>中WNS、WHS、TNS、THS有什么含义

    如何读懂时序分析报告

    前言 在上篇文章里《时序分析基本概念(一)——建立时间》,我们向大家介绍了建立时间的基本概念和计算方法。
    的头像 发表于 10-09 11:59 3769次阅读

    Vivado使用进阶:读懂用好Timing Report

    对 FPGA 设计的实现过程必须以满足 XDC 中的约束为目标进行。那我们如何验证实现后的设计有没有满足时序要求?又如何在开始布局布线前判断某些约束有没有成功设置?或是验证约束的优先级?这些都要用到 Vivado 中的静态时序
    的头像 发表于 05-04 11:20 4078次阅读
    <b class='flag-5'>Vivado</b>使用进阶:<b class='flag-5'>读懂</b>用好Timing Report

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束,Vivado添加约束的方法有3种:xdc文件、时序约束向导(Constraints Wizard)、
    的头像 发表于 06-26 15:21 3896次阅读
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>时序</b>约束呢?

    如何读懂FPGA开发过程中的Vivado时序报告

    FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。
    发表于 06-26 15:29 983次阅读
    如何<b class='flag-5'>读懂</b>FPGA开发过程中的<b class='flag-5'>Vivado</b><b class='flag-5'>时序</b><b class='flag-5'>报告</b>?

    Vivado时序问题分析

    有些时候在写完代码之后呢,Vivado时序报红,Timing一栏有很多时序问题。
    的头像 发表于 01-05 10:18 1890次阅读

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的
    的头像 发表于 10-24 15:08 201次阅读
    <b class='flag-5'>Vivado</b>使用小技巧