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

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

3天內不再提示

XDC時鐘約束的三種基本語法

汽車玩家 ? 來源:FPGA開源工作室 ? 作者:默宸 ? 2020-01-30 17:29 ? 次閱讀

XDC介紹

XDC 是 Xilinx Design Constraints 的簡寫,但其基礎語法來源于業(yè)界統(tǒng)一的約束規(guī)范SDC。XDC 在本質上就是 Tcl 語言,但其僅支持基本的 Tcl 語法如變量、列表和運算符等等,對其它復雜的循環(huán)以及文件 I/O 等語法可以通過在 Vivado 中 source 一個 Tcl 文件的方式來補充。

SDC、XDC跟 Vivado Tcl 的關系如下圖所示。

XDC時鐘約束的三種基本語法

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

時鐘約束

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

MMCM/PLL/BUFR的輸出時鐘都可以由Vivado自動推導,無需用戶創(chuàng)建。若用戶僅希望改變衍生鐘的名字,其余頻率等都由工具自動推導,則只需寫明三個option,其余不寫即可:create_generated_clock [-name arg] [-source args] [-master_clock arg] 工具不能自動推導出衍生鐘的情況,包括使用寄存器和組合邏輯搭建的分頻器等,必須由用戶使用create_generated_cl ock來創(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_de lay / 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)先級如下所示:

XDC時鐘約束的三種基本語法

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

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

XDC時鐘約束的三種基本語法

高效的時鐘約束

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

時序的零起點

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

XDC時鐘約束的三種基本語法

XDC時鐘約束的三種基本語法

時鐘定義的先后順序

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

XDC時鐘約束的三種基本語法

XDC時鐘約束的三種基本語法

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

XDC時鐘約束的三種基本語法

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

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

XDC時鐘約束的三種基本語法

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

重疊(單點多個)時鐘

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

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

XDC時鐘約束的三種基本語法

XDC時鐘約束的三種基本語法

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

XDC時鐘約束的三種基本語法

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

XDC時鐘約束的三種基本語法

其它高級約束

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

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

    關注

    19

    文章

    797

    瀏覽量

    65853
  • 時鐘約束
    +關注

    關注

    0

    文章

    15

    瀏覽量

    6005
收藏 人收藏

    評論

    相關推薦

    單片機的三種總線結構

    單片機的三種總線結構包括地址總線(Address Bus, AB)、數(shù)據(jù)總線(Data Bus, DB)和控制總線(Control Bus, CB)。這三種總線在單片機內部及與外部設備之間的數(shù)據(jù)傳輸
    的頭像 發(fā)表于 09-10 11:32 ?360次閱讀

    放大電路的三種組態(tài)可以放大什么

    放大電路是電子學中非常重要的組成部分,它們可以將輸入信號的幅度放大,以滿足各種應用的需求。放大電路的三種基本組態(tài)包括共射放大電路、共集放大電路和共基放大電路。每種組態(tài)都有其特定的應用和特點。以下
    的頭像 發(fā)表于 07-09 14:31 ?375次閱讀

    晶體管的三種工作狀態(tài)

    晶體管作為現(xiàn)代電子技術的基石,其工作狀態(tài)直接影響電子設備的性能和功能。晶體管通常具備三種基本的工作狀態(tài):截止狀態(tài)、放大狀態(tài)和飽和狀態(tài)。這三種狀態(tài)不僅決定了晶體管在電路中的行為,也反映了晶體管作為半導體器件的基本特性。本文將詳細闡述晶體管的這
    的頭像 發(fā)表于 05-28 14:53 ?930次閱讀

    運放的三種應用

    運放在電路中主要存在三種應用,放大器,濾波器,振蕩器。再這三種應用電路中,運放的兩大特點虛短虛斷仍然成立嗎? 在阻尼振蕩器中,工作過程是否按照我描述的這樣,在反相輸入端加一個近似鋸齒波的電流源,正半
    發(fā)表于 01-26 16:18

    運動控制的三種控制方式

    非標項目中有非常多的運動控制,根據(jù)系統(tǒng)配置、電機類型以及精度需求的不同主要有三種控制方式:開環(huán)控制、半閉環(huán)控制、全閉環(huán)控制。
    的頭像 發(fā)表于 01-23 09:48 ?972次閱讀
    運動控制的<b class='flag-5'>三種</b>控制方式

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機開發(fā)、SDK開發(fā)和驅動開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?786次閱讀

    示波器的三種觸發(fā)模式

    示波器的觸發(fā)模式有自動模式(Auto)、正常模式(Norm)和單次模式(Single)三種。在測不同信號時,采用不同的觸發(fā)模式,才能準確測量到所需要的波形。下面以我司靜電發(fā)生器TEH-10030
    的頭像 發(fā)表于 01-18 08:12 ?1986次閱讀
    示波器的<b class='flag-5'>三種</b>觸發(fā)模式

    變頻器的三種控制方式 | 變頻器三種控制方式的優(yōu)缺點

    ? ? ? 變頻器是一電力調節(jié)設備,它通過改變電機的工作頻率來調節(jié)電機的轉速。在實際應用中,變頻器通常采用三種控制方式:開環(huán)控制、閉環(huán)控制和矢量控制。這三種控制方式各有優(yōu)缺點,下面將詳細介紹它們
    的頭像 發(fā)表于 12-18 09:56 ?2744次閱讀
    變頻器的<b class='flag-5'>三種</b>控制方式 | 變頻器<b class='flag-5'>三種</b>控制方式的優(yōu)缺點

    常見的socket三種類型

    常見的socket三種類型? Socket是計算機網絡中常用的通信機制,在網絡編程中起到了非常重要的作用。Socket可以分為三種類型:流套接字(Stream Socket)、數(shù)據(jù)報套接字
    的頭像 發(fā)表于 12-08 11:18 ?2146次閱讀

    電路短路的三種情況

    電路短路的三種情況? 電路短路是指電路中某個部分的導線或元器件出現(xiàn)故障,導致電流繞過原本的路徑,直接通過短路部分。短路會導致電路不正常工作,并可能引起火災、電擊等危險。本文將詳細介紹電路短路的三種
    的頭像 發(fā)表于 11-23 10:33 ?4437次閱讀

    修復鋰電池的三種方法

    電子發(fā)燒友網站提供《修復鋰電池的三種方法.doc》資料免費下載
    發(fā)表于 11-15 10:40 ?5次下載
    修復鋰電池的<b class='flag-5'>三種</b>方法

    什么是電池化成?電池化成的三種方式 三種電池化成對比

    什么是電池化成?電池化成的三種方式 三種電池化成對比? 電池化成是指將物體或設備改造為可以使用電池供電的過程。在電池化成過程中,常見的電源例如燃油、電線甚至是替換掉,以便更高效、便捷地提供
    的頭像 發(fā)表于 11-10 14:49 ?2005次閱讀

    繼電保護的三種狀態(tài)解析

    繼電保護的三種狀態(tài)解析? 繼電保護系統(tǒng)是電力系統(tǒng)中非常重要的一個組成部分,其具有三種狀態(tài),包括:正常狀態(tài)、故障狀態(tài)和巡檢狀態(tài)。這些狀態(tài)的作用不同,下面我們將對它們進行詳盡、詳實、細致的解析。 一
    的頭像 發(fā)表于 09-27 16:00 ?2415次閱讀

    非隔離型開關電源的三種工作方式

    非隔離型開關電源一般有三種基本工作方式,降壓型、升壓型、極性反轉型三種,而其他的都是這三種形式轉換而來,例如反激式、正激式、推挽式、半橋式、全橋式。
    發(fā)表于 09-24 11:28 ?1.3w次閱讀
    非隔離型開關電源的<b class='flag-5'>三種</b>工作方式

    介紹三種恒流電路的原理圖

    作為硬件研發(fā)工程師,對恒流電路的了解應該是必要的。在本文中,我們將介紹三種恒流電路的原理圖。
    的頭像 發(fā)表于 09-22 15:40 ?3271次閱讀
    介紹<b class='flag-5'>三種</b>恒流電路的原理圖