0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何讀懂Vivado時序報告

CHANBAEK ? 來源:FPGA入門到精通 ? 作者:未可知摩爾 ? 2023-06-23 17:44 ? 次閱讀

FPGA開發(fā)過程中,vivado和quartus等開發(fā)軟件都會提供時序報告,以方便開發(fā)者判斷自己的工程時序是否滿足時序要求。

本文將詳細介紹如何讀懂Vivado時序報告,包括報告的基本結(jié)構(gòu)和如何分析報告。

一、新建工程

使用vivado創(chuàng)建一個新的工程,添加verilog代碼文件,內(nèi)容如下:

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

創(chuàng)建xdc文件,并添加時序約束:

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

如果需要了解時序約束如何添加,可以看下上一篇文章《FPGA時序約束--實戰(zhàn)篇(Vivado添加時序約束)》

點擊“generate bitestream”,開始綜合、布線和生成bit文件。

圖片

綜合完成后,可以在“Design run”界面,看到整個工程時序滿足情況,主要資源消耗、編譯時間等等信息,如下圖。

圖片

二、時序報告分析

1、打開時序報告界面

(1)方法1

點擊“實現(xiàn)implementation”下的“report timing summary”選項。

圖片

彈出時序顯示設(shè)置界面,如下圖所示,點擊OK。

圖片

(2)方法2

點擊功能欄“∑”,在“Timing”界面下,點擊“Implementation Timing Report”。

圖片

2、時序報告界面介紹

Timing界面左側(cè)是時序信息總覽、時鐘和時序路徑分類,右側(cè)是時序信息總覽詳細信息,包括Setup、Hold以及Pulse Width檢查最差的各10條路徑。

image.png

這里有幾個重要的參數(shù)信息名稱:

WNS (Worst Negative Slack) :最差負時序裕量

TNS(Total Negative Slack) :總的負時序裕量 ,也就是負時序裕量路徑之和。WHS (Worst Hold Slack) :最差保持時序裕量

THS (Total Hold Slack) :總的保持時序裕量,也就是負保持時序裕量路徑之和。

這些參數(shù)如果為負或者顏色變?yōu)榧t色,則表示出現(xiàn)了時序違例,否則表示時序正常。

3、時序路徑分析

點擊時序報告界面中WNS的數(shù)值,如上面報告中的“5.875ns”,則會直接跳轉(zhuǎn)到時序最差路徑的界面。

圖片

主要參數(shù)信息含義如下:

slack:時間裕量

level:邏輯級數(shù),表示兩個寄存器之間存在的組合邏輯層數(shù)

fanout:扇出數(shù),表示一個信號驅(qū)動的所有接收端的數(shù)量

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

to:路徑結(jié)束位置,包含HDL代碼中的起始寄存器的下一級寄存器

Total Delay:整個路徑的總體延時

Logic Delay:整個路徑的邏輯延時

Source Clock:路徑起始寄存器的時鐘

Destination Clock:路徑終點寄存器的時鐘

Requirement:時鐘周期,即路徑延時最大值

如果slack出現(xiàn)紅色值,且為負值,則表示出現(xiàn)了時序違例。

另外通過看level和fanout,可以看到路徑時序違例的原因,level值過大,則表示邏輯層數(shù)太多,需要考慮將這條路徑對應(yīng)HDL代碼分成幾拍完成;如果fanout值過大,則表示該寄存器的扇出過大。

雙擊任意一條時序路徑,以“path1”為例,即可進入該路徑的時序具體信息,主要包括summary(總覽)、Source Clock Path(源時鐘路徑)、Data Path(數(shù)據(jù)路徑)、Destination Clock Path(目的時鐘路徑)。

圖片

這里可以查看到具體的時序布線情況,以及時序違例的原因。

三、總結(jié)

時序報告是Vivado中必不可少的工具,它可以幫助我們了解電路的時序性能,并找出潛在的時序問題。通過分析時序報告,我們可以確定關(guān)鍵路徑延遲、slack和每個信號路徑的延遲等信息,并找到需要優(yōu)化和調(diào)整的地方。如果存在時序問題,我們可以通過修改代碼、時序約束或重新布局/重分配電路來進行優(yōu)化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21624

    瀏覽量

    601245
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119821
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    384

    瀏覽量

    37247
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    805

    瀏覽量

    66226
收藏 人收藏

    評論

    相關(guān)推薦

    VIVADO時序約束及STA基礎(chǔ)

    時序約束的目的就是告訴工具當前的時序狀態(tài),以讓工具盡量優(yōu)化時序并給出詳細的分析報告。一般在行為仿真后、綜合前即創(chuàng)建基本的時序約束。
    的頭像 發(fā)表于 03-11 14:39 ?9641次閱讀

    vivado時序分析與約束優(yōu)化

    轉(zhuǎn)自:VIVADO時序分析練習時序分析在FPGA設(shè)計中是分析工程很重要的手段,時序分析的原理和相關(guān)的公式小編在這里不再介紹,這篇文章是小編在練習VI
    發(fā)表于 08-22 11:45

    Vivado下顯示指定路徑時序報告的流程

      Vivado運行Report Timing Summary時,只顯示各個子項目最差的十條路徑,很可能并不包含你最關(guān)心的路近,這個時候顯示指定路徑的時序報告就顯得很重要了,下面就簡單介紹一下
    發(fā)表于 01-15 16:57

    關(guān)于Vivado時序分析介紹以及應(yīng)用

    時序分析在FPGA設(shè)計中是分析工程很重要的手段,時序分析的原理和相關(guān)的公式小編在這里不再介紹,這篇文章是小編在練習Vivado軟件時序分析的筆記,小編這里使用的是18.1版本的
    發(fā)表于 09-15 16:38 ?6799次閱讀
    關(guān)于<b class='flag-5'>Vivado</b><b class='flag-5'>時序</b>分析介紹以及應(yīng)用

    Vivado報告命令的了解

    了解report_design_analysis,這是一個新的Vivado報告命令,可以獨特地了解時序和復(fù)雜性特征,這些特性對于分析時序收斂問題很有價值。
    的頭像 發(fā)表于 11-26 07:01 ?3589次閱讀

    Vivado進行時序約束的兩種方式

    上面我們講的都是xdc文件的方式進行時序約束,Vivado中還提供了兩種圖形界面的方式,幫我們進行時序約束:時序約束編輯器(Edit Timing Constraints )和
    的頭像 發(fā)表于 03-08 17:17 ?2w次閱讀
    <b class='flag-5'>Vivado</b>進行<b class='flag-5'>時序</b>約束的兩種方式

    如何閱讀時序報告

    生成時序報告后,如何閱讀時序報告并從時序報告中發(fā)現(xiàn)導(dǎo)致時序
    的頭像 發(fā)表于 08-31 13:49 ?6039次閱讀
    如何閱讀<b class='flag-5'>時序</b><b class='flag-5'>報告</b>?

    Vivado時序案例分析之解脈沖寬度違例

    脈沖寬度違例 - 高脈沖寬度違例 如需了解脈沖寬度違例的詳情,請參閱報告時序匯總(Report Timing Summary) 的TPWS部分。 最嚴重的脈沖寬度違例在報告中顯示為 WPWS。 如需了解
    的頭像 發(fā)表于 11-19 13:48 ?5485次閱讀
    <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
    的頭像 發(fā)表于 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有什么含義

    如何讀懂時序分析報告

    前言 在上篇文章里《時序分析基本概念(一)——建立時間》,我們向大家介紹了建立時間的基本概念和計算方法。
    的頭像 發(fā)表于 10-09 11:59 ?3751次閱讀

    Vivado使用進階:讀懂用好Timing Report

    對 FPGA 設(shè)計的實現(xiàn)過程必須以滿足 XDC 中的約束為目標進行。那我們?nèi)绾悟炞C實現(xiàn)后的設(shè)計有沒有滿足時序要求?又如何在開始布局布線前判斷某些約束有沒有成功設(shè)置?或是驗證約束的優(yōu)先級?這些都要用到 Vivado 中的靜態(tài)時序
    的頭像 發(fā)表于 05-04 11:20 ?4034次閱讀
    <b class='flag-5'>Vivado</b>使用進階:<b class='flag-5'>讀懂</b>用好Timing Report

    如何在Vivado中添加時序約束呢?

    今天介紹一下,如何在Vivado中添加時序約束,Vivado添加約束的方法有3種:xdc文件、時序約束向?qū)В–onstraints Wizard)、
    的頭像 發(fā)表于 06-26 15:21 ?3821次閱讀
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>時序</b>約束呢?

    如何讀懂FPGA開發(fā)過程中的Vivado時序報告?

    FPGA開發(fā)過程中,vivado和quartus等開發(fā)軟件都會提供時序報告,以方便開發(fā)者判斷自己的工程時序是否滿足時序要求。
    發(fā)表于 06-26 15:29 ?950次閱讀
    如何<b class='flag-5'>讀懂</b>FPGA開發(fā)過程中的<b class='flag-5'>Vivado</b><b class='flag-5'>時序</b><b class='flag-5'>報告</b>?

    Vivado時序問題分析

    有些時候在寫完代碼之后呢,Vivado時序報紅,Timing一欄有很多時序問題。
    的頭像 發(fā)表于 01-05 10:18 ?1780次閱讀

    Vivado使用小技巧

    有時我們對時序約束進行了一些調(diào)整,希望能夠快速看到對應(yīng)的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的
    的頭像 發(fā)表于 10-24 15:08 ?170次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧