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

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

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

Vivado中如何做set_input_delay約束

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-19 19:32 ? 次閱讀

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

流程
什么是input delay:約定上游芯片輸出及時鐘之間的關(guān)系。約束的目的就是看適配后的時序關(guān)系是什么樣的。

以下以源同步接口舉例,上游芯片發(fā)送data和隨路時鐘到下游FPGA芯片端口進行接收,使用解串原語對數(shù)據(jù)進行解串。

Vivado中如何做set_input_delay約束

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

Vivado中如何做set_input_delay約束

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

Vivado中如何做set_input_delay約束

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

Vivado中如何做set_input_delay約束

得到:min=Tho=0.82ns,max=T/2-Tsu=4.464/2-0.72=1.512ns;這里假定時鐘和數(shù)據(jù)到FPGA的路徑長度是一致的(由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é)果:

本次時鐘路徑:IBUFDS→BUFIO→ISERDESE 差分時鐘經(jīng)過IBUFDS變?yōu)閱味?,?jīng)過IOB中的BUFIO送入ISERDESE。

Vivado中如何做set_input_delay約束

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

Vivado中如何做set_input_delay約束

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

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

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

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

參考前面參考鏈接可知:可使用IODELAY原語對數(shù)據(jù)進行相應(yīng)的延時,達到保持時間的滿足。

這里1.345ns/78ps=18拍,即IODELAY至少需要延遲18拍;

時序約束文件中參考下述圖片寫,但我還沒有驗證過,待驗證,理論可行,估計就可以STA通過了。

Vivado中如何做set_input_delay約束

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

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

審核編輯:湯梓紅

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598901
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417144
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    797

    瀏覽量

    65854
收藏 人收藏

    評論

    相關(guān)推薦

    詳細講解SDC語法set_input_delayset_output_delay

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

    STM32擴展IO口如何做?

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

    求助,請問程序自升級時Bin文件的校驗是如何做的?

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

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

    [*]~FF|Q}] -hold Tmds_data1_o是一個LVDS的輸出接口,hold使用的是min 值,setup使用的是max值 。如果有多條路徑可以使用-npaths. 可以看到在約束已經(jīng)把Output Delay
    的頭像 發(fā)表于 02-27 08:38 ?451次閱讀
    怎樣查看<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 ?2210次閱讀

    變壓器沒有抽頭如何做正負壓?

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

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

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

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

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

    adau1452如何做防嘯叫功能呢?

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

    pythoninput怎么輸入3個值

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

    pythonset類型

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

    Analog On Top的SOC如何做Top設(shè)計?

    Analog On Top的SOC如何做Top設(shè)計? 簡介: 在片上系統(tǒng)(SOC)的世界里,模擬運算(AOT)方法為設(shè)計過程帶來了獨特的風味。與數(shù)字邏輯處于頂端的傳統(tǒng)方法不同,AOT顛覆了層次結(jié)構(gòu)
    的頭像 發(fā)表于 11-07 10:35 ?475次閱讀

    FreeRTOSosDelay和HAL_Delay的區(qū)別

    問題場景在FreeRTOS創(chuàng)建了線程A、線程B,其中線程A優(yōu)先級大于線程B。線程A、B任務(wù)代碼如下:voidA(void*argument){while(1){printf("A\r
    的頭像 發(fā)表于 10-29 08:00 ?2120次閱讀
    FreeRTOS<b class='flag-5'>中</b>osDelay和HAL_<b class='flag-5'>Delay</b>的區(qū)別

    Tbox如何做防護來保證數(shù)據(jù)安全?

    Tbox如何做防護來保證數(shù)據(jù)安全呢?
    發(fā)表于 10-16 06:48

    HTTPS是如何做安全認證的

    想必大家對 HTTPS 都有一定的了解吧。今天將給大家聊聊 HTTPS 是如何做安全認證的。HTTPS 是 HTTP 的一個擴展,允許計算機網(wǎng)絡(luò)的兩個實體之間進行安全通信。HTTPS 使用TLS
    的頭像 發(fā)表于 10-09 15:54 ?889次閱讀