欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

3天內(nèi)不再提示

Xilinx FPGA時序約束設計和分析

FPGA之家 ? 來源:FPGA之家 ? 2023-04-27 10:08 ? 次閱讀

在進行FPGA的設計時,經(jīng)常會需要在綜合、實現(xiàn)的階段添加約束,以便能夠控制綜合、實現(xiàn)過程,使設計滿足我們需要的運行速度、引腳位置等要求。通常的做法是設計編寫約束文件并導入到綜合實現(xiàn)工具,在進行FPGA/CPLD的綜合、實現(xiàn)過程中指導邏輯的映射和布局布線。下面主要總結(jié)一下Xilinx FPGA時序約束設計和分析。

一、周期約束

周期約束是Xilinx FPGA 時序約束中最常見的約束方式。它附加在時鐘網(wǎng)線上,時序分析工具會根據(jù)周期約束來檢查時鐘域內(nèi)所有同步元件的時序是否滿足需求。周期約束會自動的寄存器時鐘端的反相。如果相鄰的兩個元件的時鐘相位是相反的,那么它們之間的延遲將被默認的限制成周期約束的一半。

在進行周期約束之前,必須對電路的時鐘周期明了,這樣才不會出現(xiàn)約束過松或者過緊的現(xiàn)象。一般情況下,設計電路所能達到的最高運行頻率取決于同步元件本身的Setup Time 和 Hold Time,以及同步元件之間的邏輯和布線延遲。周期約束一般是使用下面的約束方法:

1、period_item PERIOD=period {HIGH|LOW} [high_or low_item]

其中,period_item可以是NET或TIMEGRP,分別代表時鐘線名稱net name或元件分組名稱group-name。用NET表示PERIOD約束作用到名為“net name”的時鐘網(wǎng)線所驅(qū)動的同步元件上,用TIMEGRP表示PERIOD約束作用到TIMEGRP所定義的分組(包括FFS、LATCH和 RAM等同步元件)上。period是目標時鐘周期,單位可以是ps、ns、μS和ms等。HIGH|LOW指出時鐘周期中的第1個脈沖是高電平還是低電平,high or low time為HIGH LOW指定的脈沖的持續(xù)時間,默認單位是ns。如果沒有該參數(shù),時鐘占空比 是50%。例如, NET SYS_CLK PERIOD=10 ns HIGH 4ns

2、NET“clock net name”TNM_NET=“timing group name”;

TIMESPEC“TSidentifier”=PERIOD “TNM reference”period {HIGH | LOW} [high or low item]INPUT_JITTER value;

很多時候為了能夠定義比較復雜的派生關系的時鐘周期,就要使用該方法。其中TIMESPEC在時序約束中作為一個標識符表示本約束為時序規(guī)范;TSidentifier包括字母TS和一個標識符identifier共同作為一個TS屬性;TNM reference指定了時序約束是附加在哪一個組上,一般情況下加在TNM_NET定義的分組上。HIGH | LOW 指的是時鐘的初始相位表明第一個時鐘是上升沿還是下降沿;high or low item 表示的是時鐘占空比,即就是high或者low的時間,默認為1:1, INPUT_JITTER 表示的是時鐘的抖動時間,時鐘會在這個時間范圍內(nèi)抖動,默認單元為ps。比如周期約束:

NET "ex_clk200m_p" TNM_NET = TNM_clk200_p;

TIMESPEC "TS_clk200_p" = PERIOD "TNM_clk200_p" 5.000 ns HIGH 50 %;

建立一個TNM_clk200_p的時序分組,包括時鐘網(wǎng)絡ex_clk200m_p驅(qū)動的所有同步元件,這些同步元件都將受到時序規(guī)范TS_clk200_p的約束。同步元件到同步元件有5ns的時間要求。占空比為1:1.

二、偏移約束

偏移約束包括OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和OFFSET_OUT_AFTER等4種約束。屬于基本的時序約束,它規(guī)定了外部時鐘和數(shù)據(jù)輸入輸出引腳之間的時序關系,只能用于與引腳相連接。其基本的語法為:

OFFSET = {IN | OUT} “offset_time” [units] {BEFORE | AFTER} “clk_name” [TIMEGRP “group_name”];

其中,[IN | OUT] 說明約束是輸入還是輸出,”offset_time”為FPGA引腳數(shù)據(jù)變化與有效時鐘之間的時間差,[BEFORE | AFTER]說明該時間差在有效時鐘沿的前面還是后面,”clk_name”時鐘名,[TIMEGRP “group_name”]定義約束的觸發(fā)器組,缺省時約束clk_name驅(qū)動的所有觸發(fā)器。

1、OFFSET_IN_BEFORE、OFFSET_IN_AFTER約束

OFFSET_IN_BEFORE和OFFSET_IN_AFTER都是輸入偏移約束。OFFSET_IN_BEFORE說明了輸入數(shù)據(jù)比有效時鐘沿提前多長時間準備好。于是芯片內(nèi)部與輸入引腳相連的,組合邏輯的延遲不能大于這個時間,否則會發(fā)生數(shù)據(jù)采樣錯誤。OFFSET_IN_AFTER是輸入數(shù)據(jù)在有效時間沿之后多久到達芯片的輸入引腳。

OFFSET_IN_BEFORE對芯片內(nèi)部的輸入邏輯的約束,約束如下:

NET data_in OFFSET = IN Time BEFORE CLK;

2、OFFSET_OUT_AFTER、OFFSET_OUT_BEFORE約束

這兩個都是輸出約束,OFFSET_OUT _AFTER規(guī)定了輸出數(shù)據(jù)在有效沿之后多久穩(wěn)定下來,芯片內(nèi)部的輸出延遲必須小于這個數(shù)值。OFFSET_OUT_BEFORE是指下一級芯片的輸入數(shù)據(jù)應該在有效時鐘沿之前多久準備好。從下一級的輸入端的延遲可以計算出當前設計輸出的數(shù)據(jù)必須在何時穩(wěn)定下來。其基本的語法規(guī)則為:“NET data_out” OFFSET=OUT

Time AFTER CLK“;

三、專門約束

附加約束的一般策略是首先附加整天約束,比如PERIOD、OFFSET等約束,然后對局部的電路進行約束。專門約束包括以下幾個:

1、FROM_TO約束

FROM_TO在兩個組之間定義的約束,對二者之間的邏輯和布線延遲進行控制,這兩個組可以是用戶自定義的,也可以預定義的,可以使用TNM_NET、TNM和TIMEGRP定義組。其語法如下:

TIMESPEC “TSname“ = FROM ”group1“ TO ”group2“ value ;

其中group1和group2分別是路徑的起點和終點,value為延遲時間,可以是具體的數(shù)值或者表達式。比如:TIMESPEC TS_CLK = PERIOD CLK 30ns; TIMESPEC T1_T3 = FROM T1 TO T3 60ns;

2、MAXDELAY約束

MAXDELAY約束定義了特定的網(wǎng)絡線的最大延遲,其語法如:

NET “net_name“ MAXDELAY = value units ;value 為延遲時間。

3、MAXSKEW約束

MAXSKEW是高級時序約束,通過MAXSKEW約束附加在某一網(wǎng)線上,可以約束該網(wǎng)線上的最大SKEW。MAXSKEW語法如下:

NET “net_name“ MAXSKEW = allowable_skew units;

比如,NET “Singal“ MAXSKEW = 3ns;

四、分組約束

在FPGA設計當中,往往包含大量的觸發(fā)器、寄存器和RAM等元件,為了方便附加約束需要把他們分成不同的組,然后根據(jù)需要對某些組分別約束。

1、TNM約束。

使用TNM約束可以選出一個構(gòu)成分組的元件,并且賦予一個名字,以便添加約束。如:{NET | INST | PIN} “object_name“ TNM= “identifier“;

其中object_name為NET、INST或PIN的名稱,identifier為分組名稱。

2、TNM_NEY約束

TNM_NET約束只加在網(wǎng)線上,其作用與TNM約束加在網(wǎng)線時基本相同,即把該網(wǎng)線所在路徑上的所有有效同步元件作為一組命名。不同之處在于TNM是加在引腳上的,而不是該網(wǎng)線所在路徑上的同步元件,也就是說TNM約束不能穿過IBUF,用TNM_NET約束就不出現(xiàn)這種情況。

NET “net_name“ TNM_NET = [predefined_group:] identifier;

TNM_NET只能用在網(wǎng)線上,否則會出現(xiàn)警告,或者同時該約束被忽略。

2、TIMEGRP約束

可以通過TIMEGRP約束使已有的分組約束構(gòu)成新的分組,已經(jīng)有的預定義和用TNM/TIMEGRP定義。使用TIMEGRP約束可以使多個分組合并組成一個新分組。

TIMEGRP “big_group1“ = ”small_group“ ”medium_group“

將”small_group“ ”medium_group“合并一個新分組big_group1。

五、簡單的避免時序違規(guī)和補救的方法

PERIOD 約束定義的是觸發(fā)器等同步元件的時鐘周期??墒褂脮r序分析器來驗證同步元件之間的所有路徑是否滿足設計的建立和保持時序要求。PERIOD 約束違例將以負的時序裕量顯示在在時序報告,并說明到底是建立時間還是保持時間要求出現(xiàn)違例。應找出兩個所分析的同步元件間一條較快路徑,如果是多周期路徑,應該采樣多周期約束,或至少是某種方法來確保數(shù)據(jù)在合適時間內(nèi)到達并保持足夠長的時間,以便時鐘脈沖邊沿能夠正確采樣。若布局布線軟件無法找到更快的路徑,則可從 FPGA Editor 工具中手動進行布線。不過一般不推薦使用手工布局布線。首先應該試試重構(gòu)電路來滿足時序要求。比如用寄存器打一拍,有點邏輯復制的意思,這樣可以增加了信號的延遲,但是卻可以使電路正確的采樣數(shù)據(jù)。

若外部信號值在時鐘脈沖邊沿之前發(fā)生變化,則需使用 DCM 或 PLL 延遲時鐘脈沖邊沿,這樣數(shù)據(jù)才能由新的延遲時鐘正確采樣。有一種替代方法,就是在輸入/ 輸出模塊中使用 IDELAY 元件,將數(shù)據(jù)移到時鐘有效的位置上。

一般情況下,提高電路的運行速度可以盡量減少時序違規(guī)的問題。具體總結(jié)如下:

1、通過設置Xilinx ISE軟件在“Implement Design“點擊右鍵,選擇”屬性“選擇”“Optimization Strategy”欄中選擇”speed“以及點擊右鍵選擇”Design Goals and Strategies“選擇”Timing performance“。

2、盡量使用Xilinx公司提高的專用資源,F(xiàn)PGA廠商都提高了一些專用的,比如進位鏈MUX、SRL等。

3、重新分配關鍵路徑

(1) 關鍵路徑在同一Module,這樣綜合時可以獲得最佳的時序效果。

(2) 對關鍵路徑近LOC約束,如果發(fā)現(xiàn)關鍵路徑相關的LUT距離太遠,可以使用floorplanner手工布線。

(3) 復制電路,減少關鍵路徑的扇出。當一個信號網(wǎng)絡所帶的負載越多的時候,他的路徑也會相應的增加,所以通過復制電路,可以有效的減少甚至消除時序違規(guī)的問題。

(4) 在關鍵路徑網(wǎng)絡上插入buffer減少扇出,提高速度,消除時序違規(guī)。

4、 進行特殊約束,通過設置Multi_Cycle_Path意義不大,因為它不會直接對關鍵路徑產(chǎn)生影響,這樣想法顯然不對,因為它可以對非關鍵路徑散開的作用,給關鍵路徑節(jié)約了空間,間接的達到壓縮關鍵路徑延遲的問題,有點“曲線救國“的味道。

5、 通過修改代碼減少邏輯級數(shù)和分割組合邏輯。

注:一般情況下,使用比較多的都是周期約束,專門約束只是針對部分器件可能需要,一般高端FPGA是不需要這個的。

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

    關注

    1630

    文章

    21799

    瀏覽量

    606196
  • 電路
    +關注

    關注

    173

    文章

    5973

    瀏覽量

    173010
  • Xilinx
    +關注

    關注

    71

    文章

    2171

    瀏覽量

    122191
  • 布線
    +關注

    關注

    9

    文章

    778

    瀏覽量

    84450
  • 時序約束
    +關注

    關注

    1

    文章

    115

    瀏覽量

    13462

原文標題:Xilinx FPGA的約束設計和時序分析總結(jié)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA的IO口時序約束分析

      在高速系統(tǒng)中FPGA時序約束不止包括內(nèi)部時鐘約束,還應包括完整的IO時序約束
    發(fā)表于 09-27 09:56 ?1800次閱讀

    FPGA時序約束之衍生時鐘約束和時鐘分組約束

    FPGA設計中,時序約束對于電路性能和可靠性非常重要。在上一篇的文章中,已經(jīng)詳細介紹了FPGA時序約束
    發(fā)表于 06-12 17:29 ?2890次閱讀

    FPGA I/O口時序約束講解

    前面講解了時序約束的理論知識FPGA時序約束理論篇,本章講解時序
    發(fā)表于 08-14 18:22 ?1765次閱讀
    <b class='flag-5'>FPGA</b> I/O口<b class='flag-5'>時序</b><b class='flag-5'>約束</b>講解

    Xilinx_fpga_設計:全局時序約束及試驗總結(jié)

    Xilinx_fpga_設計:全局時序約束及試驗總結(jié)
    發(fā)表于 08-05 21:17

    FPGA時序分析如何添加其他約束

    你好: 現(xiàn)在我使用xilinx FPGA進行設計。遇到問題。我不知道FPGA設計是否符合時序要求。我在設計中添加了“時鐘”時序
    發(fā)表于 03-18 13:37

    FPGA約束設計和時序分析

    FPGA/CPLD的綜合、實現(xiàn)過程中指導邏輯的映射和布局布線。下面主要總結(jié)一下Xilinx FPGA時序約束設計和
    發(fā)表于 09-21 07:45

    時序約束時序分析 ppt教程

    時序約束時序分析 ppt教程 本章概要:時序約束時序
    發(fā)表于 05-17 16:08 ?0次下載

    FPGA時序約束方法

    FPGA時序約束方法很好地資料,兩大主流的時序約束都講了!
    發(fā)表于 12-14 14:21 ?19次下載

    Xilinx時序約束設計

    Xilinx時序約束設計,有需要的下來看看
    發(fā)表于 05-10 11:24 ?18次下載

    Xilinx時序約束培訓教材

    FPGA學習資料教程之Xilinx時序約束培訓教材
    發(fā)表于 09-01 15:27 ?0次下載

    Xilinx FPGA編程技巧常用時序約束介紹

    Xilinx FPGA編程技巧常用時序約束介紹,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 07-14 07:18 ?4650次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>編程技巧常用<b class='flag-5'>時序</b><b class='flag-5'>約束</b>介紹

    FPGA中的時序約束設計

    一個好的FPGA設計一定是包含兩個層面:良好的代碼風格和合理的約束。時序約束作為FPGA設計中不可或缺的一部分,已發(fā)揮著越來越重要的作用。毋
    發(fā)表于 11-17 07:54 ?2602次閱讀
    <b class='flag-5'>FPGA</b>中的<b class='flag-5'>時序</b><b class='flag-5'>約束</b>設計

    xilinx時序分析約束

    詳細講解了xilinx時序約束實現(xiàn)方法和意義。包括:初級時鐘,衍生時鐘,異步時終域,多時終周期的講解
    發(fā)表于 01-25 09:53 ?6次下載

    正點原子FPGA靜態(tài)時序分析時序約束教程

    時序分析結(jié)果,并根據(jù)設計者的修復使設計完全滿足時序約束的要求。本章包括以下幾個部分: 1.1 靜態(tài)時序
    發(fā)表于 11-11 08:00 ?65次下載
    正點原子<b class='flag-5'>FPGA</b>靜態(tài)<b class='flag-5'>時序</b><b class='flag-5'>分析</b>與<b class='flag-5'>時序</b><b class='flag-5'>約束</b>教程

    FPGA設計之時序約束

    上一篇《FPGA時序約束分享01_約束四大步驟》一文中,介紹了時序約束的四大步驟。
    發(fā)表于 03-18 10:29 ?1706次閱讀
    <b class='flag-5'>FPGA</b>設計之<b class='flag-5'>時序</b><b class='flag-5'>約束</b>