国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Vivado使用誤區與進階——XDC約束技巧之I/O篇 (上)

發布時間:2015-3-24 15:31    發布者:eechina
關鍵詞: Vivado , XDC , 約束
作者:周麗娜(Ally Zhou ),Xilinx工具與方法學應用專家

《XDC約束技巧之時鐘篇》中曾對I/O約束做過簡要概括,相比較而言,XDC中的I/O約束雖然形式簡單,但整體思路和約束方法卻與UCF大相徑庭。加之FPGA的應用特性決定了其在接口上有多種構建和實現方式,所以從UCF到XDC的轉換過程中,最具挑戰的可以說便是本文將要討論的I/O約束了。

I/O 約束的語法

XDC 中可以用于 I/O 約束的命令包括 set_input_delay / set_output_delay 和set_max_delay / set_min_delay 。其中,只有那些從 FPGA 管腳進入和/或輸出都不經過任何時序元件的純組合邏輯路徑可以用 set_max_delay / set_min_delay 來約束,其余 I/O 時序路徑都必須由set_input_delay / set_output_delay 來約束。如果對 FPGA 的 I/O 不加任何約束,Vivado 會缺省認為時序要求為無窮大,不僅綜合和實現時不會考慮 I/O 時序,而且在時序分析時也不會報出這些未約束的路徑。

本文以下章節將會著重討論 XDC 接口約束和時序分析的基礎,介紹如何使用set_input_delay / set_output_delay 對 FPGA 的 I/O 時序進行約束。

Input 約束



上圖所示 set_input_delay 的基本語法中, 是想要設定 input 約束的端口名,可以是一個或數個 port;-clock 之后的 指明了對 時序進行分析所用的時鐘,可以是一個 FPGA 中真實存在的時鐘也可以是預先定義好的虛擬時鐘;-max 之后的 描述了用于 setup 分析的包含有板級走線和外部器件的延時;-min 之后的 描述了用于 hold 分析的包含有板級走線和外部器件的延時。

上述這些選項是定義 Input 約束時必須寫明的,還有少數幾個可選項,如 -add_delay和 -clock_fall 用于 DDR 接口的約束。

Output 約束



上圖所示 set_output_delay 的基本語法中, 是想要設定 output 約束的端口名,可以是一個或數個 port;-clock 之后的 指明了對 時序進行分析所用的時鐘,可以是一個 FPGA 中真實存在的時鐘也可以是預先定義好的虛擬時鐘;-max 之后的 描述了用于 setup 分析的包含有板級走線和外部器件的延時;-min之后的 描述了用于 hold 分析的包含有板級走線和外部器件的延時。

上述這些選項是定義 Output 約束時必須寫明的,還有少數幾個可選項如 -add_delay和 -clock_fall 用于 DDR 接口的約束。

Setup/Hold 時序分析

我們知道約束是為了設計服務,而設置好的約束必須在時序報告中加以驗證。所以,怎樣理解時序分析中的檢查規則就成了重中之重,這一點對 I/O 約束來說尤為重要。理解時序分析工具如何選取路徑分析的發送端(Launch)和接收端(Capture)時鐘沿(Clock Edges),在 Setup 和 Hold 分析時又有怎樣的具體區別,以及這些數字在時序報告中如何體現等等是設置正確 I/O 約束的基礎。

更具體的時序分析方法以及如何深入解讀時序報告等內容將會在后續另開主題文章詳述,這里僅就 Setup/Hold 分析時對時鐘邊沿的選擇加以描述,便于以下章節的展開。

Setup 時序分析


同步電路設計中,一般情況下,數據在時鐘上升沿發送,在下一個時鐘上升沿接收,發送的時鐘沿稱作 Launch Edge,接收沿稱作 Capture Edge。時序分析中的 Setup Check 跟Capture Edge 的選擇息息相關。

在 SDR 接口的 setup 分析中,工具如下圖這樣識別發送和接收時鐘沿。



而在 DDR 接口的 setup 分析中,因為數據是雙沿采樣,所以發送和接收時鐘沿變成上升(下降)沿發送,下降(上升)沿接收。



Hold 時序分析



Hold Check 主要是為了保證數據在接收(采樣)端時鐘沿之后還能穩定保持一段時間,對 Hold 分析而言,同一個時鐘沿既是 Launch Edge 也是 Capture Edge,這一點對 SDR和 DDR(不論是中心對齊還是邊沿對齊)都一樣。

Input 接口類型和約束

由于歷史的原因,相當一部分 FPGA 設計仍然在系統中起到膠合邏輯(Glue Logic)的作用,當然,如今的 FPGA 中嵌入了高速串行收發器嵌入式處理器等,早就不僅僅局限于系統設計的配角,反而成為了其中的主角甚至是明星。但數據接口的同步一直是FPGA 設計中的常見問題,也是一個重點和難點,很多設計不穩定都是因為數據接口的同步有問題。

FPGA 的數據接口同步根據系統級設計方式來講可以分為系統同步和源同步兩種。

系統同步接口


系統同步接口(System Synchronous Interface)的構建相對容易,以 FPGA 做接收側來舉例,上游器件僅僅傳遞數據信號到 FPGA 中,時鐘信號則完全依靠系統板級來同步。時鐘信號在系統級上同源,板級走線的延時也要對齊。正因為這樣的設計,決定了數據傳遞的性能受到時鐘在系統級的走線延時和 skew 以及數據路徑延時的雙重限制,無法達到更高速的設計要求,所以大部分情況也僅僅應用 SDR 方式。



對系統同步接口做 Input 約束相對容易,只需要考慮上游器件的 Tcko 和數據在板級的延時即可。下圖是一個 SDR 上升沿采樣系統同步接口的 Input 約束示例。



設置和分析 I/O 約束一定要有個系統級思考的視角,如上右圖所示,Launch Edge 對應的是上游器件的時鐘,而 Capture Edge 則對應 FPGA 的輸入時鐘,正因為是系統同步時鐘,所以可以將其視作完全同步而放在一張圖上分析,這樣一來,就可以用一般時序分析方法來看待問題。

一條完整的時序路徑,從源觸發器的 C 端開始,經過 Tcko 和路徑傳輸延時再到目的觸發器的 D 端結束。放在系統同步的接口時序上,傳輸延時則變成板級傳輸延時(還要考慮 skew),所以上述 -max 后的數值是 Tcko 的最大值加上板級延時的最大值而來,而-min后的數值則是由兩個最小值相加而來。

源同步接口

為了改進系統同步接口中時鐘頻率受限的弊端,一種針對高速 I/O 的同步時序接口應運而生,在發送端將數據和時鐘同步傳輸,在接收端用時鐘沿脈沖來對數據進行鎖存,重新使數據與時鐘同步,這種電路就是源同步接口電路(Source Synchronous Interface)。

源同步接口最大的優點就是大大提升了總線的速度,在理論上信號的傳送可以不受傳輸延遲的影響,所以源同步接口也經常應用 DDR 方式,在相同時鐘頻率下提供雙倍于SDR 接口的數據帶寬。

源同步接口的約束設置相對復雜,一則是因為有 SDR、DDR、中心對齊(Center Aligned)和邊沿對齊(Edge Aligned)等多種方式,二則可以根據客觀已知條件,選用與系統同步接口類似的系統級視角的方式,或是用源同步視角的方式來設置約束。



如上圖所示,對源同步接口進行 Input 約束可以根據不同的已知條件,選用不同的約束方式。一般而言,FPGA 作為輸入接口時,數據有效窗口是已知條件,所以方法 2 更常見,Vivado IDE 的 Language Templates 中關于源同步輸入接口 XDC 模板也是基于這種方法。但不論以何種方式來設置 Input 約束,作用是一樣,時序報告的結果也應該是一致的。



針對上圖所示中心對齊源同步 SDR 接口時序,分別按照兩種方式來約束,需要的已知條件和計算方式雖然不同,但卻可以得到完全一樣的結果。



DDR 接口的約束設置


DDR 源同步接口的約束稍許復雜,需要將上升沿和下降沿分別考慮和約束,以下以源同步接口為例,分別就輸入接口數據為中心對齊或邊沿對齊的方式來舉例。

DDR 源同步中心對齊輸入接口




已知條件如下:
時鐘信號 src_sync_ddr_clk 的頻率: 100 MHz
數據總線: src_sync_ddr_din[3:0]
上升沿之前的數據有效窗口 ( dv_bre ) : 0.4 ns
上升沿之后的數據有效窗口 ( dv_are ) : 0.6 ns
下降沿之前的數據有效窗口 ( dv_bfe ) : 0.7 ns
下降沿之后的數據有效窗口 ( dv_afe ) : 0.2 ns

可以這樣計算輸入接口約束:DDR 方式下數據實際的采樣周期是時鐘周期的一半;上升沿采樣的數據(Rise Data)的 -max 應該是采樣周期減去這個數據的發送沿(下降沿)之前的數據有效窗口值 dv_bfe,而對應的-min 就應該是上升沿之后的數據有效窗口值dv_are ;同理,下降沿采樣的數據(Fall Data)的 -max 應該是采樣周期減去這個數據的發送沿(上升沿)之前的數據有效窗口值 dv_bre,而對應的-min 就應該是下降沿之后的數據有效窗口值 dv_afe 。

所以最終寫入 XDC 的 Input 約束應該如下所示:



DDR 源同步邊沿對齊輸入接口




已知條件如下:
時鐘信號 src_sync_ddr_clk 的頻率: 100 MHz
數據總線: src_sync_ddr_din[3:0]
上升沿之前的數據 skew (skew_bre ) : 0.6 ns
上升沿之后的數據 skew (skew_are ) : 0.4 ns
下降沿之前的數據 skew (skew_bfe ) : 0.3 ns
下降沿之后的數據 skew (skew_afe ) : 0.7 ns

可以這樣計算輸入接口約束:因為已知條件是數據相對于時鐘上升沿和下降沿的skew,所以可以分別獨立計算;上升沿的 -max 是上升沿之后的數據 skew (skew_are ),對應的-min 就應該是負的上升沿之前的數據 skew (skew_bre );下降沿的 -max 是下降沿之后的數據 skew (skew_afe ),對應的-min 就應該是負的下降沿之前的數據 skew (skew_bfe )。

所以最終寫入 XDC 的 Input 約束應該如下所示:



出現負值并不代表延時真的為負,而是跟數據相對于時鐘沿的方向有關。請一定牢記 set_input_delay 中 -max/-min 的定義,即時鐘采樣沿到達之后最大與最小的數據有效窗口(set_output_delay 中 -max/-min 的定義與之正好相反,詳見后續章節舉例說明)。

在這個例子中,數據是邊沿對齊,只要有 jitter 跟 skew 的存在,最差情況下,數據有效窗口在到達時鐘采樣沿之前就已經結束,所以會有負數出現在-min 之后。因此,在實際應用中,FPGA 用作輸入的邊沿對齊 DDR 源同步接口的情況下,真正用來采樣數據的時鐘會經過一個MMCM/PLL 做一定的相移,從而把邊沿對齊變成中心對齊。

另外,在經過 MMCM/PLL 相移后的采樣時鐘跟同步接口輸入的時鐘之間需要做set_false_path 的約束(如下述例子)而把那些偽路徑從時序報告中剔除,這里不再詳述。



虛擬時鐘


在 FPGA 做系統同步輸入接口的情況下,很多時候上游器件送入的數據并不是跟某個 FPGA 中已經存在的真實的時鐘相關,而是來自于一個不同的時鐘,這時就要用到虛擬時鐘(Virtual Clock)。

舉例來說,上游器件用一個 100MHz 的時鐘送出數據到 FPGA,實際上這個數據每兩個時鐘周期才變化一次,所以可以用 50MHz 的時鐘來采樣。FPGA 有個 100MHz 的輸入時鐘,經過 MMCM 產生一個 50MHz 的衍生時鐘,并用其來采樣上游器件送來的同步數據。

當然,系統級的設計上,必須有一定的機制來保證上游器件中的發送時鐘和 FPGA 中的接收時鐘的時鐘沿對齊。

此時,我們可以借助虛擬時鐘的幫助來完成相應的 Input 接口約束。



篇幅所限,對 XDC 中 I/O 約束的設計思路、分析方法以及如何具體設置 Input 接口約束的討論就到這里,下一篇我們接著分析如何設置 Output 接口約束,看看 Vivado 中有什么方式可以幫助用戶準確便捷地定義接口時序約束。
本文地址:http://www.qingdxww.cn/thread-147317-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Chiptorials ——如何將CryptoAuthLib庫用于Microchip安全身份驗證IC
  • FPGA設計流程培訓教程
  • 無線充電基礎知識及應用培訓教程
  • Chiptorials——如何使用ATECC608 TrustFLEX實現公鑰輪換
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲播放 | 天天艹逼 | 日本一区二区三区免费看 | 永久在线观看www免费视频 | h番动漫在线全集 | 日韩系列在线 | 国产成人精品福利网站人 | 成人在线天堂 | 午夜日韩| 久久艹视频 | 欧美精品高清在线观看 | 欧美亚洲国产一区二区三区 | 一级毛片在线 | 国产在线日本 | 国产成人福利在线视频播放尤物 | 久草网视频 | 天天操天天搞 | 亚洲第一成年网站大全亚洲 | 亚洲另类天天更新影院在线观看 | 日韩综合| 国产自在线拍 | 国产精品18久久久久久小说 | 99热这里只有精品第一页 | 91精品国产人成网站 | 黄视频国产 | 亚洲永久视频 | 91免费资源网站入口 | 欧美日一区二区三区 | 国产在线91精品天天更新 | 香蕉久热| 久久婷婷色 | 狠狠久久久久久亚洲综合网 | 欧美在线成人午夜影视 | 亚洲免费视频一区 | 午夜视频免费国产在线 | 99热在线精品免费播放6 | 精品欧美日韩一区二区三区 | 九九精品在线观看 | 精品国产自在在线在线观看 | 91精品观看91久久久久久 | 久久国产精品-久久精品 |