XDC IO --- Output Delay Constraints(Vivado)
文章目錄
- 一、XDC約束格式
- 二、系統同步接口(System Synchronous)
- 1、Single Data Rate(SDR),Rising Edge
- 2、Double Data Rate(DDR)
- 三、源同步接口(Source Synchronous)
- 1、Setup/Hold Based
- 2、Skew Based
- 1>、Single Data Rate(SDR),Rising Edge
- 2>、Double Data Rate(DDR)
本文參考
1、【Vivado使用誤區與進階】XDC約束技巧
2、《綜合與時序分析的設計約束—Synopsys設計約束(SDC)實用指南》
3、 Vivado 中的Language Template
一、XDC約束格式
set_output_delay -clock <clock_name>-max <maxdelay>-min <mindelay>[get_ports <input_ports>] -add_delay //用于DDR-clock_fall; //用于DDR二、系統同步接口(System Synchronous)
1、Single Data Rate(SDR),Rising Edge
芯片間只傳遞數據,時鐘信號的同步完全依靠板級設計對齊。僅需要考慮下游芯片的建立時間和保持時間以及板級延遲。XDC約束技巧中的例子特別好,不過這里還是以Language Template中的例子說明,注意下邊時序圖中的箭頭,這里的參考方向變成了采樣沿之前的時間。
2、Double Data Rate(DDR)
DDR需要上升沿和下降沿都要約束,分析角度同上。
三、源同步接口(Source Synchronous)
在源同步接口中,定義接口約束之前,需要用set_generated_clock先定義送出的隨路時鐘
1、Setup/Hold Based
采用建立保持時間的角度,那么約束與系統同步約束相同。
2、Skew Based
1>、Single Data Rate(SDR),Rising Edge
把同步數據相對與時鐘的skew限定在一定范圍內,可以基于Skew的大小來設置同步輸出的約束。此時可以不考慮下游采樣器件的建立時間和保持時間。先來看看Language Template中的例子:
每次看到這的時候都一臉××,但是還是要試著去理解,再畫一張圖。
這里可能不對,請自行取舍。在分析的時候一定要記得之前說的-max是setup分析;-min是hold分析。所以在set_output_delay的時候,數據有效窗口的大小是指的采樣沿之前。
2>、Double Data Rate(DDR)
手疼,不寫了。language template如下:
# Output Delay Constraints set_output_delay -clock $fwclk -max [expr $fwclk_period/2 - $afe_skew] [get_ports $output_ports]; set_output_delay -clock $fwclk -min $bre_skew [get_ports $output_ports]; set_output_delay -clock $fwclk -max [expr $fwclk_period/2 - $are_skew] [get_ports $output_ports] -clock_fall -add_delay; set_output_delay -clock $fwclk -min $bfe_skew [get_ports $output_ports] -clock_fall -add_delay;再畫出時序圖:
注意:
1、set_input_delay把啟動時鐘(源時鐘)作為參考時鐘。
2、set_output_delay把采樣時鐘(目的時鐘)作為參考時鐘。
總結
以上是生活随笔為你收集整理的XDC IO --- Output Delay Constraints(Vivado)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下载 axios.js 文件到本地
- 下一篇: LINUX Beyond-Compare