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

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

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

如何讀懂Vivado時(shí)序報(bào)告

CHANBAEK ? 來(lái)源:FPGA入門(mén)到精通 ? 作者:未可知摩爾 ? 2023-06-23 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA開(kāi)發(fā)過(guò)程中,vivado和quartus等開(kāi)發(fā)軟件都會(huì)提供時(shí)序報(bào)告,以方便開(kāi)發(fā)者判斷自己的工程時(shí)序是否滿足時(shí)序要求。

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

一、新建工程

使用vivado創(chuàng)建一個(gè)新的工程,添加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文件,并添加時(shí)序約束:

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

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

點(diǎn)擊“generate bitestream”,開(kāi)始綜合、布線和生成bit文件。

圖片

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

圖片

二、時(shí)序報(bào)告分析

1、打開(kāi)時(shí)序報(bào)告界面

(1)方法1

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

圖片

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

圖片

(2)方法2

點(diǎn)擊功能欄“∑”,在“Timing”界面下,點(diǎn)擊“Implementation Timing Report”。

圖片

2、時(shí)序報(bào)告界面介紹

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

image.png

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

WNS (Worst Negative Slack) :最差負(fù)時(shí)序裕量

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

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

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

3、時(shí)序路徑分析

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

圖片

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

slack:時(shí)間裕量

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

fanout:扇出數(shù),表示一個(gè)信號(hào)驅(qū)動(dòng)的所有接收端的數(shù)量

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

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

Total Delay:整個(gè)路徑的總體延時(shí)

Logic Delay:整個(gè)路徑的邏輯延時(shí)

Source Clock:路徑起始寄存器的時(shí)鐘

Destination Clock:路徑終點(diǎn)寄存器的時(shí)鐘

Requirement:時(shí)鐘周期,即路徑延時(shí)最大值

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

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

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

圖片

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

三、總結(jié)

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

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

    關(guān)注

    1645

    文章

    22026

    瀏覽量

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

    關(guān)注

    31

    文章

    5433

    瀏覽量

    124214
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    397

    瀏覽量

    37921
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    834

    瀏覽量

    68636
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    一文詳解Vivado時(shí)序約束

    Vivado時(shí)序約束是保存在xdc文件中,添加或創(chuàng)建設(shè)計(jì)的工程源文件后,需要?jiǎng)?chuàng)建xdc文件設(shè)置時(shí)序約束。時(shí)序約束文件可以直接創(chuàng)建或添加已存在的約束文件,創(chuàng)建約束文件有兩種方式:Con
    的頭像 發(fā)表于 03-24 09:44 ?3478次閱讀
    一文詳解<b class='flag-5'>Vivado</b><b class='flag-5'>時(shí)序</b>約束

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

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

    Vivado下顯示指定路徑時(shí)序報(bào)告的流程

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

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

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

    Vivado報(bào)告命令的了解

    了解report_design_analysis,這是一個(gè)新的Vivado報(bào)告命令,可以獨(dú)特地了解時(shí)序和復(fù)雜性特征,這些特性對(duì)于分析時(shí)序收斂問(wèn)題很有價(jià)值。
    的頭像 發(fā)表于 11-26 07:01 ?3878次閱讀

    如何閱讀時(shí)序報(bào)告?

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

    Vivado時(shí)序案例分析之解脈沖寬度違例

    脈沖寬度違例 - 高脈沖寬度違例 如需了解脈沖寬度違例的詳情,請(qǐng)參閱報(bào)告時(shí)序匯總(Report Timing Summary) 的TPWS部分。 最嚴(yán)重的脈沖寬度違例在報(bào)告中顯示為 WPWS。 如需了解
    的頭像 發(fā)表于 11-19 13:48 ?6249次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>時(shí)序</b>案例分析之解脈沖寬度違例

    VIVADO時(shí)序報(bào)告中WNS、WHS、TNS、THS有什么含義

    VIVADO時(shí)序報(bào)告中WNS,WHS,TNS,THS含義運(yùn)行“report_timing”或“report_timing_summary”命令后,會(huì)注意到 WNS、TNS、WHS 和 THS
    的頭像 發(fā)表于 10-21 14:32 ?2.7w次閱讀
    <b class='flag-5'>VIVADO</b>中<b class='flag-5'>時(shí)序</b><b class='flag-5'>報(bào)告</b>中WNS、WHS、TNS、THS有什么含義

    如何讀懂時(shí)序分析報(bào)告

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

    Vivado使用進(jìn)階:讀懂用好Timing Report

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

    如何在Vivado中添加時(shí)序約束呢?

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

    如何讀懂FPGA開(kāi)發(fā)過(guò)程中的Vivado時(shí)序報(bào)告?

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

    Vivado時(shí)序問(wèn)題分析

    有些時(shí)候在寫(xiě)完代碼之后呢,Vivado時(shí)序報(bào)紅,Timing一欄有很多時(shí)序問(wèn)題。
    的頭像 發(fā)表于 01-05 10:18 ?3172次閱讀

    Vivado使用小技巧

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

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品