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

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

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

詳細(xì)解析vivado約束時(shí)序路徑分析問題

電子設(shè)計(jì) ? 來(lái)源:FPGA開源工作室 ? 作者:FPGA開源工作室 ? 2020-11-29 10:34 ? 次閱讀

時(shí)序不滿足約束,會(huì)導(dǎo)致以下問題:

? 編譯時(shí)間長(zhǎng)的令人絕望
? 運(yùn)行結(jié)果靠運(yùn)氣——時(shí)對(duì)時(shí)錯(cuò)

導(dǎo)致時(shí)序問題的成因及其發(fā)生的概率如下表:


由上表可見,造成時(shí)序問題的主要原因除了約束不完整,就是路徑問題,本文就時(shí)序路徑分析問題作一介紹:

1、時(shí)鐘網(wǎng)絡(luò)分析

時(shí)鐘網(wǎng)絡(luò)反映了時(shí)鐘從時(shí)鐘引腳進(jìn)入FPGA后在FPGA內(nèi)部的傳播路徑。

報(bào)告時(shí)鐘網(wǎng)絡(luò)命令可以從以下位置運(yùn)行:
① Vivado?IDE中的Flow Navigator
② Tcl命令:report_clock_networks -name {network_1}

報(bào)告時(shí)鐘網(wǎng)絡(luò)提供設(shè)計(jì)中時(shí)鐘樹的樹視圖。 如下圖。每個(gè)時(shí)鐘樹顯示從源到端點(diǎn)的時(shí)鐘網(wǎng)絡(luò),端點(diǎn)按類型排序。


時(shí)鐘樹:
? 顯示由用戶定義或由工具自動(dòng)生成的時(shí)鐘。
? 報(bào)告從I / O端口加載的時(shí)鐘。
? 可用于查找驅(qū)動(dòng)其他BUFGs的BUFGs。
? 顯示驅(qū)動(dòng)非時(shí)鐘負(fù)載的時(shí)鐘。

溫馨提醒:完整的時(shí)鐘樹僅在報(bào)告的GUI形式中詳細(xì)說(shuō)明。此報(bào)告的文本版本僅顯示時(shí)鐘根的名稱。

以vivado自帶的例子wavegen為例。點(diǎn)擊Synthesis的Report CLock Networks如下圖所示:


時(shí)鐘clk_pin_p從輸入引腳輸入之后,經(jīng)過(guò)IBUFDS,再通過(guò)MMCM生成時(shí)鐘,同時(shí)顯示了各個(gè)時(shí)鐘的頻率。如果我們未添加時(shí)鐘約束,報(bào)告將顯示Unconstrained(未約束的時(shí)鐘,root clock).可以選中未約束的時(shí)鐘右擊選擇Create Clock創(chuàng)建時(shí)鐘。

如下圖所示:


2、 跨時(shí)鐘域路徑分析

若要查看跨時(shí)鐘域路徑分析報(bào)告,可選擇以下內(nèi)容之一來(lái)查看:

? Reports > Timing > Report Clock Interaction

? Flow Navigator > Synthesis > Report Clock Interaction

? Flow Navigator > Implementation > Report Clock Interaction

? Tcl command: report_clock_interaction -name clocks_1

如下圖所示,點(diǎn)擊Synthesis–>Report Clock Interaction.


跨時(shí)鐘域路徑分析報(bào)告分析從一個(gè)時(shí)鐘域(源時(shí)鐘)跨越到另一個(gè)時(shí)鐘域(目標(biāo)時(shí)鐘)的時(shí)序路徑??鐣r(shí)鐘域路徑分析報(bào)告有助于識(shí)別可能存在數(shù)據(jù)丟失或亞穩(wěn)態(tài)問題的情況.

運(yùn)行“Report Clock Interaction”命令后,結(jié)果將在“時(shí)鐘交互”窗口中打開。如下圖所示,時(shí)鐘交互報(bào)告顯示為時(shí)鐘域矩陣,源時(shí)鐘位于垂直軸,目標(biāo)時(shí)鐘位于水平軸。


No Path --用黑色框來(lái)表示:沒有從源時(shí)鐘到目標(biāo)時(shí)鐘的定時(shí)路徑。在這種情況下,沒有時(shí)鐘交互,也沒有任何報(bào)告。

Timed – 用綠色框來(lái)表示:源時(shí)鐘和目標(biāo)時(shí)鐘具有同步關(guān)系,并安全地被約束在一起。當(dāng)兩個(gè)時(shí)鐘具有共同的主時(shí)鐘和簡(jiǎn)單的周期比時(shí),該狀態(tài)由定時(shí)引擎確定。

User Ignored Paths–用深藍(lán)色框來(lái)表示:用戶定義的假路徑或時(shí)鐘組約束涵蓋從源時(shí)鐘到目標(biāo)時(shí)鐘的所有路徑。

Partial False Path–用淡藍(lán)色框來(lái)表示:用戶定義的偽路徑約束覆蓋了從源時(shí)鐘到目標(biāo)時(shí)鐘的一些時(shí)序路徑,其中源時(shí)鐘和目標(biāo)時(shí)鐘具有同步關(guān)系。

Timed (Unsafe)–用紅色框來(lái)表示:源時(shí)鐘和目標(biāo)時(shí)鐘具有異步關(guān)系。在這種情況下,沒有共同的主時(shí)鐘或沒有可擴(kuò)展的時(shí)段。

Partial False Path (Unsafe)–用橘橙色框來(lái)表示:此類別與Timed(Unsafe)相同,只是由于偽路徑異常,從源時(shí)鐘到目標(biāo)時(shí)鐘的至少一條路徑被忽略。

Max Delay Datapath Only --用紫色框來(lái)表示:set_max_delay -datapath_only約束涵蓋從源時(shí)鐘到目標(biāo)時(shí)鐘的所有路徑。

Report_clock_interaction呈現(xiàn)的報(bào)告并不是根據(jù)時(shí)序約束生成的,但是和時(shí)序約束有關(guān),它反映出用戶定義的偽路徑。

以wavegen工程為示例,點(diǎn)擊Report Clock Interaction,如下圖所示:


ID: 正在顯示的源/目標(biāo)時(shí)鐘對(duì)的數(shù)字ID。

Source Clock: 路徑源時(shí)鐘域。

Destination Clock: 路徑終端的時(shí)鐘域。

Edges (WNS):用于計(jì)算最大延遲分析(設(shè)置/恢復(fù))的最差裕度的時(shí)鐘邊緣。

WNS (Worst Negative Slack):為跨越指定時(shí)鐘域的各種路徑計(jì)算的最差裕度時(shí)間。負(fù)裕量時(shí)間表示路徑違反了所需的建立(或恢復(fù))時(shí)間的問題。

TNS (Total Negative Slack):屬于跨越指定時(shí)鐘域的路徑的所有端點(diǎn)的最差松弛違規(guī)的總和。

Failing Endpoints (TNS): 交叉路徑中的端點(diǎn)數(shù)量無(wú)法滿足時(shí)序要求。違規(guī)的總和對(duì)應(yīng)于TNS。

Total Endpoints (TNS):交叉路徑中端點(diǎn)的總數(shù)。

Path Req (WNS):定時(shí)路徑要求對(duì)應(yīng)于WNS列中報(bào)告的路徑。如果兩個(gè)時(shí)鐘中的至少一個(gè)時(shí)鐘的上升沿和下降沿都有效,則在任何時(shí)鐘對(duì)之間可能存在若干路徑要求,或者在兩個(gè)時(shí)鐘之間的路徑上應(yīng)用了一些時(shí)序異常。本專欄中報(bào)告的值并不總是最具挑戰(zhàn)性的要求。

Clock Pair Classification: 提供有關(guān)公共節(jié)點(diǎn)和時(shí)鐘對(duì)之間的公共周期的信息。從最高優(yōu)先級(jí)到最低優(yōu)先級(jí):忽略,虛擬時(shí)鐘,無(wú)公共時(shí)鐘,無(wú)公共周期,部分公共節(jié)點(diǎn),無(wú)公共節(jié)點(diǎn)和清除。

Inter-Clock Constraints: 顯示源時(shí)鐘和目標(biāo)時(shí)鐘之間所有路徑的約束摘要。

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

    關(guān)注

    19

    文章

    797

    瀏覽量

    65853
  • 時(shí)序路徑
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    1391
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鎖存器的基本輸出時(shí)序

    在深入探討鎖存器的輸出時(shí)序時(shí),我們需要詳細(xì)分析鎖存器在不同控制信號(hào)下的行為表現(xiàn),特別是控制信號(hào)(如使能信號(hào)E)的電平變化如何影響數(shù)據(jù)輸入(D)到輸出(Q)的傳輸過(guò)程。以下是對(duì)鎖存器輸出時(shí)序
    的頭像 發(fā)表于 08-30 10:43 ?207次閱讀

    深度解析FPGA中的時(shí)序約束

    建立時(shí)間和保持時(shí)間是FPGA時(shí)序約束中兩個(gè)最基本的概念,同樣在芯片電路時(shí)序分析中也存在。
    的頭像 發(fā)表于 08-06 11:40 ?324次閱讀
    深度<b class='flag-5'>解析</b>FPGA中的<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>

    FPGA 高級(jí)設(shè)計(jì):時(shí)序分析和收斂

    Static Timing Analysis,簡(jiǎn)稱 STA。它可以簡(jiǎn)單的定義為:設(shè)計(jì)者提出一些特定的時(shí)序要求(或者說(shuō)是添加特定的時(shí)序約束),套用特定的時(shí)序模型,針對(duì)特定的電路進(jìn)行
    發(fā)表于 06-17 17:07

    esp idf是否有支持中文路徑解析的接口?

    錯(cuò):implicit declaration of function \'_wfopen\'; did you mean \'fopen\'? 我的代碼已經(jīng)引用了#include 的頭文件,這個(gè)有辦法解決嗎?esp idf是否有支持中文路徑解析的接口?謝謝!
    發(fā)表于 06-05 08:03

    Xilinx FPGA編程技巧之常用時(shí)序約束詳解

    Register-to-Register Constraint 寄存器到寄存器約束往往指的是周期約束,周期約束的覆蓋范圍包括: 覆蓋了時(shí)鐘域的時(shí)序要求 覆蓋了同步數(shù)據(jù)在內(nèi)部寄存器
    發(fā)表于 05-06 15:51

    FPGA工程的時(shí)序約束實(shí)踐案例

    詳細(xì)的原時(shí)鐘時(shí)序、數(shù)據(jù)路徑時(shí)序、目標(biāo)時(shí)鐘時(shí)序的各延遲數(shù)據(jù)如下圖所示。值得注意的是數(shù)據(jù)路徑信息,其
    發(fā)表于 04-29 10:39 ?475次閱讀
    FPGA工程的<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>實(shí)踐案例

    時(shí)序約束實(shí)操

    添加約束的目的是為了告訴FPGA你的設(shè)計(jì)指標(biāo)及運(yùn)行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請(qǐng)注意該文件不能直接添加到工程中,需要熱復(fù)制到別的指定目錄或者新建自己的SDC文件添加到工程)。
    的頭像 發(fā)表于 04-28 18:36 ?1851次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>實(shí)操

    Xilinx FPGA編程技巧之常用時(shí)序約束詳解

    寄存器到寄存器約束往往指的是周期約束,周期約束的覆蓋范圍包括: 覆蓋了時(shí)鐘域的時(shí)序要求 覆蓋了同步數(shù)據(jù)在內(nèi)部寄存器之間的傳輸 分析一個(gè)單獨(dú)
    發(fā)表于 04-12 17:39

    詳解Vivado非工程模式的精細(xì)設(shè)計(jì)過(guò)程

    將設(shè)置設(shè)計(jì)的輸出路徑,設(shè)置設(shè)計(jì)輸出路徑的步驟如下所示。 第一步:如圖4.3所示,在“Vivado%”提示符后輸入命令“set outputDir ./gate_Created_Data/top_output”。
    發(fā)表于 04-03 09:34 ?967次閱讀
    詳解<b class='flag-5'>Vivado</b>非工程模式的精細(xì)設(shè)計(jì)過(guò)程

    “AI+工業(yè)互聯(lián)網(wǎng)”賦能新型工業(yè)化的路徑分析

    橫看成嶺側(cè)成峰,探索“AI+工業(yè)互聯(lián)網(wǎng)”技術(shù)賦能新型工業(yè)化的路徑,還要從技術(shù)視角、產(chǎn)業(yè)視角、應(yīng)用視角綜合分析
    的頭像 發(fā)表于 03-14 10:57 ?893次閱讀

    FPGA設(shè)計(jì)的常用基本時(shí)序路徑分析

    該條路徑包括了觸發(fā)器內(nèi)部clock-to-Q的延遲,觸發(fā)器之間的由組合邏輯造成的路徑延遲以及目標(biāo)觸發(fā)器的建立時(shí)間,其延時(shí)是數(shù)據(jù)從源觸發(fā)器開始,在下一個(gè)時(shí)鐘沿來(lái)到之前通過(guò)組合邏輯和布線的最大時(shí)間
    的頭像 發(fā)表于 01-18 16:31 ?612次閱讀
    FPGA設(shè)計(jì)的常用基本<b class='flag-5'>時(shí)序</b><b class='flag-5'>路徑分析</b>

    Vivado時(shí)序問題分析

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

    VIVADO安裝問題解決

    vivado出現(xiàn)安裝問題剛開始還以為是安裝路徑包含中文空格了,重裝的注意了一下,發(fā)現(xiàn)還是這個(gè)問題。。。。后來(lái)又一頓操作猛如虎,終于發(fā)現(xiàn)了問題。出這個(gè)問題的原因是vivado壓縮包解壓的路徑
    發(fā)表于 12-22 10:56 ?0次下載

    FPGA時(shí)序約束--基礎(chǔ)理論篇

    和修復(fù)時(shí)序路徑時(shí)序路徑對(duì)于設(shè)計(jì)的正確性和時(shí)序性能來(lái)說(shuō)都是非常重要的。為了最大程度地提高性能并避免瓶頸,我們必須對(duì)
    發(fā)表于 11-15 17:41

    如何在FPGA設(shè)計(jì)環(huán)境中加入時(shí)序約束?

    在給FPGA做邏輯綜合和布局布線時(shí),需要在工具中設(shè)定時(shí)序約束。通常,在FPGA設(shè)計(jì)工具中都FPGA中包含有4種路徑:從輸入端口到寄存器,從寄存器到寄存器,從寄存器到輸出,從輸入到輸出的純組合邏輯
    的頭像 發(fā)表于 10-12 12:00 ?1192次閱讀
    如何在FPGA設(shè)計(jì)環(huán)境中加入<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>?