在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

Vivado使用教學設計技巧

Xilinx賽靈思官微 ? 來源:djl ? 作者:周麗娜 ? 2019-07-24 17:10 ? 次閱讀

Xilinx 的新一代設計套件Vivado中引入了全新的約束文件XDC,在很多規(guī)則和技巧上都跟上一代產品ISE中支持的UCF大不相同,給使用者帶來許多額外挑戰(zhàn)。Xilinx工具專家告訴你,其實用好XDC很容易,只需掌握幾點核心技巧,并且時刻牢記:XDC的語法其實就是Tcl語言。

XDC的優(yōu)勢

XDC是Xilinx Design Constraints的簡寫,但其基礎語法來源于業(yè)界統(tǒng)一的約束規(guī)范SDC(最早由Synopsys公司提出,故名Synopsys Design Constraints)。所以SDC、XDC跟Vivado Tcl的關系如下圖所示。

Vivado使用教學設計技巧

XDC的主要優(yōu)勢包括:
統(tǒng)一了前后端約束格式,便于管理;
可以像命令一樣實時錄入并執(zhí)行;
允許增量設置約束,加速調試效率;
覆蓋率高,可擴展性好,效率高;
業(yè)界統(tǒng)一,兼容性好,可移植性強;

XDC在本質上就是Tcl語言,但其僅支持基本的Tcl語法如變量、列表和運算符等等,對其它復雜的循環(huán)以及文件I/O等語法可以通過在Vivado中source一個Tcl文件的方式來補充。(對Tcl話題感興趣的讀者可以參考作者的另一篇文章《Tcl在Vivado中的應用》)

XDC與UCF的最主要區(qū)別有兩點:

XDC可以像UCF一樣作為一個整體文件被工具讀入,也可以在實現(xiàn)過程中被當作一個個單獨的命令直接執(zhí)行。這就決定了XDC也具有Tcl命令的特點,即后面輸入的約束在有沖突的情況下會覆蓋之前輸入的約束(時序例外的優(yōu)先級會在下節(jié)詳述)。另外,不同于UCF是全部讀入再處理的方式,在XDC中,約束是讀一條執(zhí)行一條,所以先后順序很重要,例如要設置IO約束之前,相對應的clock一定要先創(chuàng)建好。

UCF是完全以FPGA的視角看問題,所以缺省認為所有的時鐘之間除非預先聲明是同步的,否則就視作異步而不做跨時鐘域時序分析;XDC則恰恰相反,ASIC世界的血緣背景決定了在其中,所有的時鐘缺省視作全同步,在沒有時序例外的情況下,工具會主動分析每一條跨時鐘域的路徑。

XDC的基本語法

XDC的基本語法可以分為時鐘約束、I/O約束以及時序例外約束三大類。根據(jù)Xilinx的UltraFast設計方法學中Baseline部分的建議(UG949中有詳細介紹),對一個設計進行約束的先后順序也可以依照這三類約束依次進行。本文對可以在幫助文檔中查到的基本XDC語法不做詳細解釋,會將重點放在使用方法和技巧上。

時鐘約束

時鐘約束必須最早創(chuàng)建,對7系列FPGA來說,端口進來的主時鐘以及GT的輸出RXCLK/TXCLK都必須由用戶使用create_clock自主創(chuàng)建。而衍生時鐘則分為以下兩類:

MMCM/PLL/BUFR的輸出時鐘都可以由Vivado自動推導,無需用戶創(chuàng)建。若用戶僅希望改變衍生鐘的名字,其余頻率等都由工具自動推導,則只需寫明三個option,其余不寫即可:create_generated_clock [-name arg] [-source args] [-master_clock arg]

工具不能自動推導出衍生鐘的情況,包括使用寄存器和組合邏輯搭建的分頻器等,必須由用戶使用create_generated_clock來創(chuàng)建。

I/O約束

在設計的初級階段,可以不加I/O約束,讓工具專注于滿足FPGA內部的時序要求。當時序要求基本滿足后,再加上I/O約束跑實現(xiàn)。XDC中的I/O約束有以下幾點需要注意:

不加任何I/O約束的端口時序要求被視作無窮大。

XDC中的set_input_delay / set_output_delay對應于UCF中OFFSET IN / OFFSET OUT,但視角相反。OFFSET IN / OFFSET OUT是從FPGA內部延時的角度來約束端口時序,set_input_delay / set_output_delay則是從系統(tǒng)角度來約束。

典型的I/O時序,包括系統(tǒng)同步、源同步、SDR和DDR等等,在Vivado圖形界面的XDC templates中都有示例。2014.1版后還有一個Timing Constraints Wizard可供使用。

時序例外約束

時序例外約束包括set_max_delay/set_min_delay,set_multicycle_path,set_false_path等,這類約束除了要滿足XDC的先后順序優(yōu)先級外,還受到自身優(yōu)先級的限制。一個總的原則就是針對同一條路徑,對約束目標描述越具體的優(yōu)先級越高。不同的時序例外約束以及同一約束中不同條件的優(yōu)先級如下所示:

Vivado使用教學設計技巧

舉例來說,依次執(zhí)行如下兩條XDC,盡管第二條最后執(zhí)行,但工具仍然認定第一條約束設定的15為clk1到clk2之間路徑的max delay值。

再比如,對圖示路徑依次進行如下四條時序例外約束,優(yōu)勝者將是第二條。但如果再加入最后一條約束,false path的優(yōu)先級最高,會取代之前所有的時序例外約束。

Vivado使用教學設計技巧

高效的時鐘約束

約束最終是為了設計服務,所以要用好XDC就需要深入理解電路結構和設計需求。接下來我們就以常見FPGA設計中的時鐘結構來舉例,詳細闡述XDC的約束技巧。

時序的零起點

用create_clock定義的主時鐘的起點即時序的“零起點”,在這之前的上游路徑延時都被工具自動忽略。所以主時鐘創(chuàng)建在哪個“點”很重要,以下圖所示結構來舉例,分別于FPGA輸入端口和BUFG輸出端口創(chuàng)建一個主時鐘,在時序報告中體現(xiàn)出的路徑延時完全不同,很明顯sysclk_bad的報告中缺少了之前一段的延時,時序報告不可信。

Vivado使用教學設計技巧

Vivado使用教學設計技巧

時鐘定義的先后順序

時鐘的定義也遵從XDC/Tcl的一般優(yōu)先級,即:在同一個點上,由用戶定義的時鐘會覆蓋工具自動推導的時鐘,且后定義的時鐘會覆蓋先定義的時鐘。若要二者并存,必須使用 -add 選項。

Vivado使用教學設計技巧

Vivado使用教學設計技巧

上述例子中BUFG的輸出端由用戶自定義了一個衍生鐘clkbufg,這個衍生鐘便會覆蓋此處原有的sysclk。此外,圖示BUFR工作在bypass模式,其輸出不會自動創(chuàng)建衍生鐘,但在BUFR的輸出端定義一個衍生鐘clkbufr,并使用-add 和 -master_clock 選項后,這一點上會存在sysclk和clkbufg兩個重疊的時鐘。如下的Tcl命令驗證了我們的推論。

同步時鐘和異步時鐘

Vivado使用教學設計技巧

不同于UCF約束,在XDC中,所有的時鐘都會被缺省認為是相關的,也就是說,網(wǎng)表中所有存在的時序路徑都會被Vivado分析。這也意味著FPGA設計人員必須通過約束告訴工具,哪些路徑是無需分析的,哪些時鐘域之間是異步的。

如上圖所示,兩個主時鐘ssclkin和sysclk由不同的端口進入FPGA,再經由不同的時鐘網(wǎng)絡傳遞,要將它們設成異步時鐘,可以使用如下約束:

Vivado使用教學設計技巧

其中,-include_generated_clocks 表示所有衍生鐘自動跟其主時鐘一組,從而與其它組的時鐘之間為異步關系。不加這個選項則僅僅將時鐘關系的約束應用在主時鐘層面。

重疊(單點多個)時鐘

重疊時鐘是指多個時鐘共享完全相同的時鐘傳輸網(wǎng)絡,例如兩個時鐘經過一個MUX選擇后輸出的時鐘,在有多種運行模式的設計中很常見。

如下圖所示,clk125和clk250是clkcore_buf的兩個輸入時鐘,不約束時鐘關系的情況下,Vivado會對圖示路徑做跨時鐘域(重疊時鐘之間)分析。這樣的時序報告即便沒有違例,也是不可信的,因為clk125和clk250不可能同時驅動這條路徑上的時序元件。這么做也會增加運行時間,并影響最終的實現(xiàn)效果。

Vivado使用教學設計技巧

Vivado使用教學設計技巧

如果clk125和clk250除了通過clkcore_buf后一模一樣的扇出外沒有驅動其它時序元件,我們要做的僅僅是補齊時鐘關系的約束。

Vivado使用教學設計技巧

在很多情況下,除了共同的扇出,其中一個時鐘或兩個都還驅動其它的時序元件,此時建議的做法是在clkcore_buf的輸出端上創(chuàng)建兩個重疊的衍生鐘,并將其時鐘關系約束為-physically_exclusive 表示不可能同時通過。這樣做可以最大化約束覆蓋率,也是ISE和UCF中無法做到的。

Vivado使用教學設計技巧

其它高級約束

時鐘的約束是XDC的基礎,熟練掌握時鐘約束,也是XDC約束技巧的基礎。其它高級約束技巧,包括復雜的CDC(Clock Domain Crossing)約束和接口時序(SDR、DDR、系統(tǒng)同步接口和源同步接口)約束等方面還有很多值得注意的地方。

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

    關注

    19

    文章

    815

    瀏覽量

    66930
  • 時鐘約束
    +關注

    關注

    0

    文章

    15

    瀏覽量

    6040
收藏 人收藏

    評論

    相關推薦

    Vivado 實現(xiàn)

    先給大家簡單快速地介紹一下 Vivado 集成設計環(huán)境,即 IDE。當打開 Vivado 工程后,會有一個工程概要,向您介紹工程的設置、警告和錯誤信息以及工程的一般狀態(tài)。
    發(fā)表于 04-25 09:00 ?6793次閱讀

    誰有vivado教學視頻?

    vivado的基礎教程視頻誰有啊
    發(fā)表于 04-14 21:58

    Vivado 2017.1和Vivado 2016.4性能對比分析

    此篇文章里,我們將通過使用InTime來檢驗Vivado 2017.1和Vivado2016.4之間的性能對比。 概要:分別進行了3個Vivado 2017.1對Vivado2016.
    的頭像 發(fā)表于 07-04 11:23 ?1w次閱讀
    <b class='flag-5'>Vivado</b> 2017.1和<b class='flag-5'>Vivado</b> 2016.4性能對比分析

    Vivado獲取License的步驟教程

    無論此刻你是一個需要安裝Xilinx Vivado工具鏈的入門菜鳥,還是已有l(wèi)icense過期的Vivado老鐵,今兒咱就借著這篇文章,把學習「Vivado如何獲取License」這檔子事兒給說通透咯~ 手把手教程,分三部分講述
    的頭像 發(fā)表于 07-03 09:54 ?6.1w次閱讀
    <b class='flag-5'>Vivado</b>獲取License的步驟教程

    vivado設計套件資料

    vivado設計套件資料
    發(fā)表于 10-31 09:49 ?44次下載
    <b class='flag-5'>vivado</b>設計套件資料

    Tcl在Vivado中的基礎應用

    Xilinx的新一代設計套件Vivado相比上一代產品ISE,在運行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進。但是對初學者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握
    發(fā)表于 11-18 03:52 ?4992次閱讀
    Tcl在<b class='flag-5'>Vivado</b>中的基礎應用

    xilinx Vivado工具使用技巧

    Vivado Design Suite中,Vivado綜合能夠合成多種類型的屬性。在大多數(shù)情況下,這些屬性具有相同的語法和相同的行為。
    發(fā)表于 05-02 10:13 ?4140次閱讀

    關于Vivado 2019.1的Dashboard功能詳解

    關于Vivado Dashboard的功能可閱讀這篇文章(Vivado 2018.3這個Gadget你用了嗎)Vivado 2019.1的Dashboard功能進一步增強。
    的頭像 發(fā)表于 06-12 14:49 ?8502次閱讀
    關于<b class='flag-5'>Vivado</b> 2019.1的Dashboard功能詳解

    使用Vivado License Manager時Vivado的錯誤信息

    Vivado License Manager在使用Vivado License Manager時,如果通過如下圖所示方式指定license的路徑時,要保證路徑僅包含ASCII字符而沒有中文字
    的頭像 發(fā)表于 09-12 15:15 ?6070次閱讀

    【FPGA Vivado】基于 FPGA Vivado 的流水燈樣例設計

    【流水燈樣例】基于 FPGA Vivado 的數(shù)字鐘設計前言模擬前言Vivado 設計流程指導手冊——2013.4密碼:5txi模擬
    發(fā)表于 12-04 13:21 ?26次下載
    【FPGA <b class='flag-5'>Vivado</b>】基于 FPGA <b class='flag-5'>Vivado</b> 的流水燈樣例設計

    如何升級Vivado工程腳本

    Vivado可以導出腳本,保存創(chuàng)建工程的相關命令和配置,并可以在需要的時候使用腳本重建Vivado工程。腳本通常只有KB級別大小,遠遠小于工程打包文件的大小,因此便于備份和版本管理。下面把前述腳本升級到Vivado 2020.2
    發(fā)表于 08-02 10:10 ?1886次閱讀

    用TCL定制Vivado設計實現(xiàn)流程

    今天推出Xilinx已發(fā)布的《Vivado使用誤區(qū)與進階》系列:用TCL定制Vivado設計實現(xiàn)流程。
    的頭像 發(fā)表于 05-05 09:44 ?1149次閱讀
    用TCL定制<b class='flag-5'>Vivado</b>設計實現(xiàn)流程

    vivado仿真流程

    vivado開發(fā)軟件自帶了仿真工具,下面將介紹vivado的仿真流程,方便初學者進行仿真實驗。
    的頭像 發(fā)表于 07-18 09:06 ?4717次閱讀
    <b class='flag-5'>vivado</b>仿真流程

    Vivado設計套件用戶:使用Vivado IDE的指南

    電子發(fā)燒友網(wǎng)站提供《Vivado設計套件用戶:使用Vivado IDE的指南.pdf》資料免費下載
    發(fā)表于 09-13 15:25 ?14次下載
    <b class='flag-5'>Vivado</b>設計套件用戶:使用<b class='flag-5'>Vivado</b> IDE的指南

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調整
    的頭像 發(fā)表于 10-24 15:08 ?447次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧
    主站蜘蛛池模板: 成人黄网大全在线观看 | 理论片免费午夜 | 日本高清色视频在线观看免费 | fxxx性xxx性 | 国产高清免费 | 婷婷四房综合激情五月性色 | 色多多www视频在线观看免费 | 女人张腿让男子桶免费动态图 | 色播图片 | 国产美女视频黄a视频全免费网站 | 久久久久国产精品免费免费不卡 | 欧美国产精品主播一区 | 国产hs免费高清在线观看 | 国产伦精品一区二区三区免 | 国产特黄1级毛片 | 澳门色视频 | 欧美三级黄 | 亚洲激情a | 看黄视频免费 | 欧美黄区 | 狠狠躁夜夜躁人人爽天天天天 | 免费看黄色片网站 | 欧美一级在线免费观看 | 天天干天天色综合 | 韩国精品视频 | www在线观看 | 日本免费一区二区在线观看 | 国产三级国产精品国产普男人 | 免费a级午夜绝情美女视频 免费jlzzjlzz在线播放视频 | 天天狠狠| 成人国产三级精品 | 亚洲不卡视频在线 | 国产第一页在线观看 | 男人午夜 | 丁香五月缴情在线 | 久久性久久性久久久爽 | 国产一线在线观看 | 国产综合第一页在线视频 | 九九福利| 四虎永久免费网站入口2020 | 五月天婷婷在线免费观看 |