吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Vivado中如何做set_input_delay約束

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

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

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

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

Vivado中如何做set_input_delay約束

這里使用的DCLK為:4.464ns。時鐘與數據關系是DDR中心對齊。

Vivado中如何做set_input_delay約束

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

Vivado中如何做set_input_delay約束

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

Vivado中如何做set_input_delay約束

得到:min=Tho=0.82ns,max=T/2-Tsu=4.464/2-0.72=1.512ns;這里假定時鐘和數據到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結果:

本次時鐘路徑:IBUFDS→BUFIO→ISERDESE 差分時鐘經過IBUFDS變為單端,經過IOB中的BUFIO送入ISERDESE。

Vivado中如何做set_input_delay約束

本次數據路徑:IBUFDS→ISERDESE 差分數據經過IBUFDS變成單端送入ISERDESE。

Vivado中如何做set_input_delay約束

則要求數據在2.904ns時候到來,但數據抵達時刻是1.559ns,出現了保持違例:1.559-2.904 = -1.345ns。

也就是說數據來早了,提前撤銷導致了保持違例。另一個角度說是時鐘來晚了。

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

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

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

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

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

Vivado中如何做set_input_delay約束

這個延時可以通過時序訓練或者手動調節,找尋合適點。具體可參考:xapp524-serial-lvds-adc-interface.pdf

如果是動態調節TAP值,那么STA就沒卵用了,STA的前提是假定TAP值為定值。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605997
  • 芯片
    +關注

    關注

    456

    文章

    51170

    瀏覽量

    427244
  • Vivado
    +關注

    關注

    19

    文章

    815

    瀏覽量

    66887
收藏 人收藏

    評論

    相關推薦

    ADC08D500要一起工作Interleaving的話,需要在ADC CLK Input端各接一個Delay Line IC對嗎?

    目前我們有一個問題想請教,如果我們有兩顆ADC08D500要一起工作Interleaving的話,需要在ADC CLK Input端各接一個Delay Line IC對嗎?
    發表于 12-12 08:39

    ADS1281 FIR濾波器Input sample rate,Decimation factor, Decimation offset, Estimated delay是如何確定的?

    請問:ADS1281FIR濾波器 SESSION 1-4 每個階段的Input sample rate,Decimation factor, Decimation offset, Estimated delay是如何確定的,在手冊上沒有發現相關的內容 感謝回答~
    發表于 11-25 06:32

    常用時序約束使用說明-v1

    為了防止約束失敗,我們在Tcl輸入框驗證,沒有告警或者錯誤說明約束的寫法是正確的set_max_delay 5.00 -from [get_cells key2_detect_ins
    的頭像 發表于 11-01 11:06 ?249次閱讀

    Vivado使用小技巧

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

    工程行業如何做到低碳甚至零碳

    低碳的生活方式越來越多地融入我們的日常習慣當中。但是在工程行業如何做到低碳甚至零碳呢?
    的頭像 發表于 10-14 10:31 ?482次閱讀

    深度解析FPGA的時序約束

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

    請問IR900路由器如何做端口映射?

    IR900 路由器如何做端口映射?
    發表于 07-25 06:24

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

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

    詳細講解SDC語法set_input_delayset_output_delay

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

    STM32擴展IO口如何做

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

    詳解Vivado非工程模式的精細設計過程

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

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

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

    局部變量超出堆棧范圍,想把占用內存多的變量申請在全局如何做

    目前局部變量超出堆棧范圍,現在想把占用內存多的變量申請在全局,如何做
    發表于 03-20 08:03

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

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

    veriloginput和output作用

    在Veriloginput和output用于定義模塊的輸入和輸出端口。它們是用于通信的關鍵元素,定義了模塊與其它模塊之間的數據傳輸接口。通過input和output端口,模塊之間可以互相傳遞數據
    的頭像 發表于 02-23 10:29 ?3403次閱讀
    大发888开户,| 网上百家乐骗钱| 路单百家乐的玩法技巧和规则| 998棋牌游戏中心| 澳门百家乐官网走势图怎么看 | 大发888官网www.dafa888.com| 大发扑克| 百家乐平台出租家乐平台出租 | 玩百家乐官网秘诀| 广发百家乐的玩法技巧和规则 | 榆次百家乐官网的玩法技巧和规则| 威尼斯人娱乐城代理合作| 百家乐官网高额投注| 游戏百家乐的玩法技巧和规则| 赌百家乐官网怎样能赢| 神娱乐百家乐的玩法技巧和规则| 百家乐官网必胜绝技| 百家乐棋牌游戏源码| 百家乐官网必赢法软件| 大发888赢速通充值| 赌博百家乐的路单| 西藏| 真人百家乐代理分成| 百家乐官网如何写路| 宝马会百家乐的玩法技巧和规则 | 百家乐实战玩法| 利来博彩通| 网上百家乐有哪些玩法| 君怡百家乐官网的玩法技巧和规则 | 怎样玩百家乐官网才能| 百家乐官网玩法教材| 澳门威尼斯人| 明升88备用| 在线老虎机| 大富豪百家乐| 阿克| 百家乐官网澳门百家乐官网澳门赌场| 百家乐官网赌博机销售| 百家乐官网龙虎玩| 百家乐官网怎么玩| 百家乐讯特|