色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

縮短Vivado編譯時(shí)間之審視時(shí)序約束描述

FPGA技術(shù)驛站 ? 來源:FPGA技術(shù)驛站 ? 2023-02-23 09:03 ? 次閱讀

在描述時(shí)序約束時(shí),一個(gè)重要的原則是確保約束簡潔高效。簡潔高效意味著約束只針對指定的對象,即約束對應(yīng)的對象的個(gè)數(shù)(通常這些對象由命令get_pins、get_cells、get_nets、get_ports或get_clocks獲取)盡可能少,少的同時(shí)還要足夠的精確,能夠安全地覆蓋到期望的時(shí)序路徑。

既不會(huì)出現(xiàn)遺漏某些對象也不會(huì)出現(xiàn)包含了不期望的對象,兩者都會(huì)造成工具無法對相關(guān)路徑按照指定要求進(jìn)行時(shí)序分析,從而造成設(shè)計(jì)“偽收斂”。這通常會(huì)出現(xiàn)在使用-from、-to或-through等選項(xiàng)的約束中,例如:

set_clock_groups,set_false_path

set_max_delay,set_multicycle_path

等時(shí)序例外約束。

Vivado提供了一些方法用于分析時(shí)序例外約束的有效性,其中之一就是用命令report_exceptions生成時(shí)序例外報(bào)告。這里我們首先介紹一下這個(gè)命令的使用方法。 report_exceptions -scope_override

選項(xiàng)-scope_override可用于查看是否存在作用于某個(gè)子模塊的約束(約束的作用域僅限于該子模塊)被頂層約束部分或者全部覆蓋。注意這里僅限于子模塊約束與頂層模塊約束之間的覆蓋情況,而不會(huì)報(bào)告不同子模塊之間的約束覆蓋情況。借助此選項(xiàng)查看IP的約束是否被用戶約束所覆蓋將變得非常容易。如下圖所示,我們可以在生成報(bào)告的Status列發(fā)現(xiàn)IP約束被用戶約束覆蓋。

99ebad40-b30d-11ed-bfe3-dac502259ad0.png9a02bd00-b30d-11ed-bfe3-dac502259ad0.png

report_exceptions -coverage

選項(xiàng)-coverage可查看約束的覆蓋率,其描述形式是時(shí)序例外約束所施加的路徑的起點(diǎn)或終點(diǎn)的pin個(gè)數(shù)與-from/-through/-to選項(xiàng)所獲得的pin的個(gè)數(shù)的百分比。我們看一個(gè)例子,如下圖所示報(bào)告。其中的紅色方框可以看到這里使用的是set_max_delay,-from是通過get_cells獲得的,因?yàn)橹挥?個(gè)cell且時(shí)序路徑的起點(diǎn)是觸發(fā)器的時(shí)鐘端口,所以From的覆蓋率就是100%(觸發(fā)器只有1個(gè)時(shí)鐘端口)。

-to也是通過get_cells獲取,獲取到1個(gè)cell,這個(gè)cell也是觸發(fā)器,其數(shù)據(jù)端口是該約束對應(yīng)的時(shí)序路徑的終點(diǎn)。但實(shí)際上,觸發(fā)器除了數(shù)據(jù)端口之外,還有時(shí)鐘使能端口/復(fù)位端口,所以To的覆蓋率就是1/3也就是這里的33.33%。顯然,覆蓋率越高表明我們描述得越精確。

9a2bd988-b30d-11ed-bfe3-dac502259ad0.png

report_exceptions -ignored

選項(xiàng)-ignored可報(bào)告出設(shè)計(jì)中被完全覆蓋的約束(Totallyoverridden),需要注意的是不會(huì)報(bào)告部分被覆蓋的約束(PartiallyOverridden)。下圖中可以看到set_multicycle_path被set_max_delay所覆蓋。 9a5a1a28-b30d-11ed-bfe3-dac502259ad0.png ? 9a795a00-b30d-11ed-bfe3-dac502259ad0.png

report_exceptions -ignored_objects

選項(xiàng)-ignored_objects可報(bào)告出被忽略的起點(diǎn)或終點(diǎn)。之所以被忽略是因?yàn)檫@些路徑不存在,例如下圖中觸發(fā)器的D端口恒接地,這樣在使用set_false_path -to時(shí),-to的值如果是通過get_pins獲取到該觸發(fā)器的D端口, 那么這條路徑的終點(diǎn)就會(huì)被工具忽略,從而這條約束也就無效。

9a8e606c-b30d-11ed-bfe3-dac502259ad0.png

從編譯時(shí)間的角度看,描述約束時(shí)越精確越好。一個(gè)事實(shí)是在網(wǎng)表中pin的個(gè)數(shù)通常是cell個(gè)數(shù)的幾倍甚至幾十倍,因此直接搜索pins會(huì)比較耗時(shí),Xilinx推薦的方法是利用cell和pin的關(guān)系,先找到cell再找到對應(yīng)的pin,例如:需要對下圖所示的兩個(gè)觸發(fā)器對應(yīng)的時(shí)序路徑進(jìn)行FalsePath約束,采用了三種方式。顯然,方案1和方案2會(huì)覆蓋到不期望的路徑,方案3最為精確,耗時(shí)也較少。

9aaa02e0-b30d-11ed-bfe3-dac502259ad0.png9ac93480-b30d-11ed-bfe3-dac502259ad0.png

尤其是當(dāng)get_pins命令使用了通配符時(shí),先get_cells再get_pins更為高效,如下圖所示方式。

9af1e6a0-b30d-11ed-bfe3-dac502259ad0.png

另外,在約束中避免使用all_registers,該命令會(huì)返回設(shè)計(jì)中的所有觸發(fā)器。如果確需用all_registers,那么可通過選項(xiàng)-clock限定作用域,或者用get_clocks取代,如下圖所示。 9b1faae0-b30d-11ed-bfe3-dac502259ad0.png

時(shí)序約束的描述順序?qū)幾g時(shí)間也有很大影響。當(dāng)時(shí)序約束被加載到內(nèi)存時(shí),時(shí)序引擎會(huì)對每條約束進(jìn)行驗(yàn)證。對于可能存在問題的約束,時(shí)序引擎會(huì)打印出相關(guān)的信息。一些約束可能會(huì)導(dǎo)致部分時(shí)序數(shù)據(jù)庫無效,還有一些約束可能需要更新時(shí)序數(shù)據(jù)庫以便正常運(yùn)行。

例如,MMCM自動(dòng)生成的時(shí)鐘若頻率或相位發(fā)生了改變,那么用到這個(gè)時(shí)鐘的相關(guān)約束就需要更新。交織的時(shí)序約束以及影響到時(shí)序數(shù)據(jù)庫的約束會(huì)對編譯時(shí)間產(chǎn)生較大影響。如下表格顯示了會(huì)對時(shí)序數(shù)據(jù)庫產(chǎn)生影響的一些Tcl命令。

9b457914-b30d-11ed-bfe3-dac502259ad0.png

其中最為耗時(shí)的描述方式是同時(shí)使用了set_disable_timing和all_fanin或all_fanout,如下圖所示。

9b6c51ba-b30d-11ed-bfe3-dac502259ad0.png

根據(jù)上述表格,從編譯時(shí)間的角度來看,最優(yōu)的約束描述順序是:

(1)set_disable_timing,

set_case_analysis,

set_external_delay

(2)影響時(shí)序數(shù)據(jù)庫的約束如create_clock

(3)不需要更新時(shí)序數(shù)據(jù)庫的約束,例如

set_max_delay 我們看一個(gè)案例,如下圖所示:代碼第3至第10行為原始約束順序,這里將set_disable_timing和set_case_analysis放在了create_clock之后。

代碼第14行至第20行為推薦的約束順序,可以看到先描述set_disable_timing,之后是set_case_analysis,然后才是create_clock,同時(shí)將set_max_delay放在了最后。

9b853518-b30d-11ed-bfe3-dac502259ad0.png








審核編輯:劉清

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

    關(guān)注

    10

    文章

    1722

    瀏覽量

    88566
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61132
  • PIN
    PIN
    +關(guān)注

    關(guān)注

    1

    文章

    304

    瀏覽量

    24284
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66472

原文標(biāo)題:縮短Vivado編譯時(shí)間(6):審視時(shí)序約束

文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何縮短Vivado的運(yùn)行時(shí)間

    Vivado Implementation階段,有時(shí)是有必要分析一下什么原因?qū)е逻\(yùn)行時(shí)間(runtime)過長,從而找到一些方法來縮短運(yùn)行時(shí)間
    的頭像 發(fā)表于 05-29 14:37 ?1.4w次閱讀
    如何<b class='flag-5'>縮短</b><b class='flag-5'>Vivado</b>的運(yùn)行<b class='flag-5'>時(shí)間</b>

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

    時(shí)序不滿足約束,會(huì)導(dǎo)致以下問題: 編譯時(shí)間長的令人絕望 運(yùn)行結(jié)果靠運(yùn)氣時(shí)對時(shí)錯(cuò) 導(dǎo)致時(shí)序問題的成因及其發(fā)生的概率如下表: 由上表可見,造成
    的頭像 發(fā)表于 11-29 10:34 ?8705次閱讀

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

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

    FPGA主時(shí)鐘約束詳解 Vivado添加時(shí)序約束方法

    在FPGA設(shè)計(jì)中,時(shí)序約束的設(shè)置對于電路性能和可靠性都至關(guān)重要。在上一篇的文章中,已經(jīng)詳細(xì)介紹了FPGA時(shí)序約束的基礎(chǔ)知識(shí)。
    發(fā)表于 06-06 18:27 ?1.1w次閱讀
    FPGA主時(shí)鐘<b class='flag-5'>約束</b>詳解 <b class='flag-5'>Vivado</b>添加<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>方法

    FPGA時(shí)序約束衍生時(shí)鐘約束和時(shí)鐘分組約束

    在FPGA設(shè)計(jì)中,時(shí)序約束對于電路性能和可靠性非常重要。在上一篇的文章中,已經(jīng)詳細(xì)介紹了FPGA時(shí)序約束的主時(shí)鐘約束
    發(fā)表于 06-12 17:29 ?2712次閱讀

    FPGA時(shí)序約束建立時(shí)間和保持時(shí)間

    FPGA中時(shí)序約束是設(shè)計(jì)的關(guān)鍵點(diǎn)之一,準(zhǔn)確的時(shí)鐘約束有利于代碼功能的完整呈現(xiàn)。進(jìn)行時(shí)序約束,讓軟件布局布線后的電路能夠滿足使用的要求。
    發(fā)表于 08-14 17:49 ?1440次閱讀
    FPGA<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b><b class='flag-5'>之</b>建立<b class='flag-5'>時(shí)間</b>和保持<b class='flag-5'>時(shí)間</b>

    時(shí)序約束資料包

    Vivado基本操作流程2、時(shí)序基本概念3、時(shí)序基本約束和流程4、Baselining時(shí)序約束
    發(fā)表于 08-01 16:45

    時(shí)序約束資料包】培訓(xùn)課程Timing VIVADO

    維持嗎? 1、Vivado基本操作流程 2、時(shí)序基本概念 3、時(shí)序基本約束和流程 4、Baselining時(shí)序
    發(fā)表于 08-06 15:08 ?543次閱讀

    講述增量編譯方法,提高Vivado編譯效率

    當(dāng)RTL代碼修改較少時(shí),使用增量編譯功能可以提高工程的編譯速度,Incremental Compile增量編譯Vivado提供的一項(xiàng)高階功能。目的旨在當(dāng)設(shè)計(jì)微小的改變時(shí),重用綜合和布
    的頭像 發(fā)表于 01-22 17:27 ?1w次閱讀
    講述增量<b class='flag-5'>編譯</b>方法,提高<b class='flag-5'>Vivado</b><b class='flag-5'>編譯</b>效率

    FPGA時(shí)序約束的建立和保持時(shí)間方法

    首先來看什么是時(shí)序約束,泛泛來說,就是我們告訴軟件(Vivado、ISE等)從哪個(gè)pin輸入信號(hào),輸入信號(hào)要延遲多長時(shí)間,時(shí)鐘周期是多少,讓軟件PAR(Place and Route)
    的頭像 發(fā)表于 01-28 17:34 ?3738次閱讀
    FPGA<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>的建立和保持<b class='flag-5'>時(shí)間</b>方法

    Vivado進(jìn)行時(shí)序約束的兩種方式

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

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

    前面幾篇文章已經(jīng)詳細(xì)介紹了FPGA時(shí)序約束基礎(chǔ)知識(shí)以及常用的時(shí)序約束命令,相信大家已經(jīng)基本掌握了時(shí)序約束
    的頭像 發(fā)表于 06-23 17:44 ?2370次閱讀
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>

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

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

    Vivado綜合階段什么約束生效?

    Vivado綜合默認(rèn)是timing driven模式,除了IO管腳等物理約束,建議添加必要的時(shí)序約束,有利于綜合邏輯的優(yōu)化,同時(shí)綜合后的design里面可以評估
    的頭像 發(fā)表于 07-03 09:03 ?696次閱讀

    淺談Vivado編譯時(shí)間

    隨著FPGA規(guī)模的增大,設(shè)計(jì)復(fù)雜度的增加,Vivado編譯時(shí)間成為一個(gè)不可回避的話題。尤其是一些基于SSI芯片的設(shè)計(jì),如VU9P/VU13P/VU19P等,布局布線時(shí)間更是顯著增加。當(dāng)
    的頭像 發(fā)表于 09-18 10:43 ?886次閱讀
    淺談<b class='flag-5'>Vivado</b><b class='flag-5'>編譯</b><b class='flag-5'>時(shí)間</b>
    主站蜘蛛池模板: 欧亚一卡二卡日本一卡二卡 | 欧美一区二区VA毛片视频| 日本护士性生活| 亚洲色综合狠狠综合区| 伊人久久影院大香线蕉| seba51久久精品| 久久亚洲人成网站| 内射人妻骚骚骚| 色一情一乱一伦一区二区三区| 侮辱丰满美丽的人妻| 亚洲性夜色噜噜噜网站2258KK| 在线观看视频一区| 国产欧美日韩综合精品一区二区| 国产欧美日韩精品a在线观看高清 国产欧美日韩国产高清 | 国产精品久久久久久人妻香蕉| 国产在线精品国自产拍影院午夜| 美女扒开尿孔| 涩涩网站在线看| 成人免费视频在线看| 国内精品蜜汁乔依琳视频| 日韩免费一区二区三区在线| 在线观看日本污污ww网站| 国产精品熟女人妻| 久久久久伊人| 亚州日韩精品AV片无码中文| 成人性生交大片免费看中文| 久久精品成人免费看| 亚洲精品理论电影在线观看| xiah俊秀| 久久精品热99看| 性欧美sexovideotv| ai换脸在线全集观看| 精品日韩欧美一区二区三区| 日日操天天操夜夜操| 亚洲三级黄色| 国产成人高清视频| 欧美高清69hd| 99视频在线国产| 男人插曲视频大全免费网站| 青青草久久伊人| 99热.com|