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

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

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

Vivado中如何做set_input_delay約束

C29F_xilinx_inc ? 來源:用戶發(fā)布 ? 作者:用戶發(fā)布 ? 2022-02-16 16:21 ? 次閱讀

參考:https://forums.xilinx.com/t5/Timing-Analysis/Hold-violation-in-ISERDES/t...

前言
在STA中,要分析上游器件和FPGA之間的時(shí)序關(guān)系就得指定input delay。

流程
什么是input delay:約定上游芯片輸出及時(shí)鐘之間的關(guān)系。約束的目的就是看適配后的時(shí)序關(guān)系是什么樣的。
以下以源同步接口舉例,上游芯片發(fā)送data和隨路時(shí)鐘到下游FPGA芯片端口進(jìn)行接收,使用解串原語(yǔ)對(duì)數(shù)據(jù)進(jìn)行解串。

pYYBAGIMpPiAJRgVAAEEa2Qfeos921.png

這里使用的DCLK為:4.464ns。時(shí)鐘與數(shù)據(jù)關(guān)系是DDR中心對(duì)齊。

pYYBAGIMpPmAHxLTAABePn773wM725.png

40M下的建立保持時(shí)間如下:Tsu=0.72ns,Tho = 0.82ns。

poYBAGIMpPuANOqlAADKddXWqGQ863.png

上vivado中語(yǔ)言模板中找模板。把Tsu、Tho抄進(jìn)去對(duì)應(yīng)dv_bre、dv_are、dv_bfe、dv_afe。dv_bre指的是時(shí)鐘沿前穩(wěn)定的時(shí)間,這個(gè)時(shí)間可以用示波器測(cè)出來,或者看datasheet上的建立保持時(shí)間(這之間的數(shù)據(jù)肯定是穩(wěn)定的)。

pYYBAGIMpPyACxP0AAJIQqM4iAo660.jpg

得到:min=Tho=0.82ns,max=T/2-Tsu=4.464/2-0.72=1.512ns;這里假定時(shí)鐘和數(shù)據(jù)到FPGA的路徑長(zhǎng)度是一致的(由PCB布線保證)。

set_input_delay -clock [get_clocks adc_dco_clk] -clock_fall -min -add_delay 0.820 [get_ports i_data_ch0_p]
set_input_delay -clock [get_clocks adc_dco_clk] -clock_fall -max -add_delay 1.512 [get_ports i_data_ch0_p]
set_input_delay -clock [get_clocks adc_dco_clk] -min -add_delay 0.820 [get_ports i_data_ch0_p]
set_input_delay -clock [get_clocks adc_dco_clk] -max -add_delay 1.512 [get_ports i_data_ch0_p]

編譯分析STA結(jié)果:
本次時(shí)鐘路徑:IBUFDS→BUFIO→ISERDESE 差分時(shí)鐘經(jīng)過IBUFDS變?yōu)閱味?,?jīng)過IOB中的BUFIO送入ISERDESE。

poYBAGIMpP6ABcoBAAFp0SjRROA029.jpg

本次數(shù)據(jù)路徑:IBUFDS→ISERDESE 差分?jǐn)?shù)據(jù)經(jīng)過IBUFDS變成單端送入ISERDESE。

pYYBAGIMpQCAJcKCAAHJ0fu3uNo015.jpg

則要求數(shù)據(jù)在2.904ns時(shí)候到來,但數(shù)據(jù)抵達(dá)時(shí)刻是1.559ns,出現(xiàn)了保持違例:1.559-2.904 = -1.345ns。

也就是說數(shù)據(jù)來早了,提前撤銷導(dǎo)致了保持違例。另一個(gè)角度說是時(shí)鐘來晚了。

所以要解決這個(gè)問題,可以讓數(shù)據(jù)晚點(diǎn)來,或者讓時(shí)鐘早點(diǎn)來。

對(duì)于片內(nèi)邏輯間的保持不滿足可以插LUT1,但接口IOB部分就沒法插了,于是上網(wǎng)上找方法。

參考前面參考鏈接可知:可使用IODELAY原語(yǔ)對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的延時(shí),達(dá)到保持時(shí)間的滿足。
這里1.345ns/78ps=18拍,即IODELAY至少需要延遲18拍;
時(shí)序約束文件中參考下述圖片寫,但我還沒有驗(yàn)證過,待驗(yàn)證,理論可行,估計(jì)就可以STA通過了。

poYBAGIMpQKADDdcAAMmZLC-biE283.jpg

這個(gè)延時(shí)可以通過時(shí)序訓(xùn)練或者手動(dòng)調(diào)節(jié),找尋合適點(diǎn)。具體可參考:xapp524-serial-lvds-adc-interface.pdf

如果是動(dòng)態(tài)調(diào)節(jié)TAP值,那么STA就沒卵用了,STA的前提是假定TAP值為定值。

以上。

審核編輯:符乾江

聲明:本文內(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)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    804

    瀏覽量

    66224
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    常用時(shí)序約束使用說明-v1

    為了防止約束失敗,我們?cè)赥cl輸入框驗(yàn)證,沒有告警或者錯(cuò)誤說明約束的寫法是正確的set_max_delay 5.00 -from [get_cells key2_detect_ins
    的頭像 發(fā)表于 11-01 11:06 ?110次閱讀

    Vivado使用小技巧

    后的約束在之前版本已存在,那么Vivado會(huì)給出警告信息,顯示這些約束會(huì)覆蓋之前已有的約束;如果是新增
    的頭像 發(fā)表于 10-24 15:08 ?170次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    硬件工程師如何做元器件變更的決策

    硬件工程師如何做元器件變更的決策某產(chǎn)品在從研發(fā)轉(zhuǎn)規(guī)模生產(chǎn)階段,采購(gòu)部門給硬件工程師推薦了新的MOSFET(稱為A),該物料比該產(chǎn)品研發(fā)階段使用的MOSFET(稱為B)價(jià)格更低,且供貨渠道更友好。作為
    的頭像 發(fā)表于 07-06 08:17 ?417次閱讀
    硬件工程師<b class='flag-5'>如何做</b>元器件變更的決策

    詳細(xì)講解SDC語(yǔ)法set_input_delayset_output_delay

    在數(shù)字集成電路設(shè)計(jì),Synopsys Design Constraints(SDC)是一種重要的約束語(yǔ)言,用于指導(dǎo)綜合、布局布線等后續(xù)流程。
    的頭像 發(fā)表于 05-06 14:15 ?2331次閱讀

    STM32擴(kuò)展IO口如何做?

    STM32擴(kuò)展IO口,如何做
    發(fā)表于 04-16 08:27

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

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

    求助,請(qǐng)問程序自升級(jí)時(shí)Bin文件的校驗(yàn)是如何做的?

    程序自升級(jí)時(shí)Bin文件的校驗(yàn)是如何做的?
    發(fā)表于 04-03 06:06

    怎樣查看input/output delay是否生效

    [*]~FF|Q}] -hold Tmds_data1_o是一個(gè)LVDS的輸出接口,hold使用的是min 值,setup使用的是max值 。如果有多條路徑可以使用-npaths. 可以看到在約束已經(jīng)把Output Delay
    的頭像 發(fā)表于 02-27 08:38 ?604次閱讀
    怎樣查看<b class='flag-5'>input</b>/output <b class='flag-5'>delay</b>是否生效

    veriloginput和output作用

    在Verilog,input和output用于定義模塊的輸入和輸出端口。它們是用于通信的關(guān)鍵元素,定義了模塊與其它模塊之間的數(shù)據(jù)傳輸接口。通過input和output端口,模塊之間可以互相傳遞數(shù)據(jù)
    的頭像 發(fā)表于 02-23 10:29 ?2787次閱讀

    變壓器沒有抽頭如何做正負(fù)壓?

    變壓器沒有抽頭如何做正負(fù)壓?
    的頭像 發(fā)表于 01-20 10:28 ?1587次閱讀
    變壓器沒有抽頭<b class='flag-5'>如何做</b>正負(fù)壓?

    限位開關(guān)如何做液壓控制 限位開關(guān)如何接線

    限位開關(guān)如何做液壓控制 限位開關(guān)如何接線? 限位開關(guān)是一種常用于液壓系統(tǒng)的控制元件,它可以用于監(jiān)測(cè)和控制機(jī)械或設(shè)備的運(yùn)動(dòng)范圍。本文將詳細(xì)介紹限位開關(guān)的工作原理、液壓控制的應(yīng)用以及限位開關(guān)的接線
    的頭像 發(fā)表于 12-20 11:01 ?1535次閱讀

    安信可AiPi-Eyes-R2如何做86智能盒?

    安信可AiPi-Eyes-R2如何做86智能盒?
    的頭像 發(fā)表于 11-29 16:05 ?537次閱讀
    安信可AiPi-Eyes-R2<b class='flag-5'>如何做</b>86智能盒?

    adau1452如何做防嘯叫功能呢?

    我用的是adau1452,請(qǐng)問如何做防嘯叫功能呢?謝謝
    發(fā)表于 11-29 06:17

    pythoninput怎么輸入3個(gè)值

    在 Python ,可以使用 input() 函數(shù)來獲取用戶的輸入。如果你想要輸入多個(gè)值,可以根據(jù)具體的需求使用以下方法。 方法一:使用多個(gè) input 函數(shù) 最簡(jiǎn)單的方法是使用多個(gè) inp
    的頭像 發(fā)表于 11-23 15:31 ?9402次閱讀

    pythonset類型

    Pythonset類型是一種無序、可變的集合數(shù)據(jù)類型,它的主要特點(diǎn)是不允許重復(fù)元素的存在。本文將詳盡、詳實(shí)、細(xì)致地介紹set類型的使用場(chǎng)景、常用操作以及與其他類型的比較等方面,以幫助讀者全面了解
    的頭像 發(fā)表于 11-21 16:25 ?783次閱讀