<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

Hx ? 作者:工程師陳翠 ? 2018-07-14 07:18 ? 次閱讀

1. 基本的約束方法

為了保證成功的設計,所有路徑的時序要求必須能夠讓執行工具獲取。最普遍的三種路徑為:

輸入路徑(Input Path),使用輸入約束

寄存器到寄存器路徑(Register-to-Register Path),使用周期約束

輸出路徑(Output Path),使用輸出約束

具體的異常路徑(Path specific exceptions),使用虛假路徑.多周期路徑約束

1.1. 輸入約束Input Constraint

OFFSET IN約束限定了輸入數據和輸入時鐘邊沿的關系。

1.1.1. 系統同步輸入約束System Synchronous Input

在系統同步接口中,同一個系統時鐘既傳輸數據也獲取數據??紤]到板子路徑延時和時鐘抖動,接口的操作頻率不能太高。

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

1.1簡化的系統同步輸入SDR接口電路圖

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

1.2SDR系統同步輸入時序

上述時序的約束可寫為:

NET “SysClk” TNM_NET = “SysClk”;

TIMESPEC “TS_SysClk” = PERIOD “SysClk” 5 ns HIGH 50%;

OFFSET = IN 5 ns VALID 5 ns BEFORE “SysClk”;

1.1.2. 源同步輸入約束Source Synchronous Input

在源同步接口中,時鐘是在源設備中和數據一起產生并傳輸。

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

1.3簡化的源同步輸入DDR接口電路

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

1.4DDR源同步輸入時序

上圖的時序約束可寫為:

NET “SysClk” TNM_NET = “SysClk”;

TIMESPEC “TS_SysClk” = PERIOD “SysClk” 5 ns HIGH 50%;

OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE “SysClk” RISING;

OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE “SysClk” FALLING;

1.2. 寄存器到寄存器約束Register-to-Register Constraint

寄存器到寄存器約束往往指的是周期約束,周期約束的覆蓋范圍包括:

覆蓋了時鐘域的時序要求

覆蓋了同步數據在內部寄存器之間的傳輸

分析一個單獨的時鐘域內的路徑

分析相關時鐘域間的所有路徑

考慮不同時鐘域間的所有頻率.相位.不確定性差異

1.2.1. 使用DLL, DCM, PLL, and MMCM等時鐘器件自動確定同步關系

使用這一類時鐘IP Core,只需指定它們的輸入時鐘約束,器件將自動的根據用戶生成IP Core時指定的參數約束相關輸出,不需用戶手動干預。

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

1.5輸入到DCM的時鐘約束

上圖的時序約束可寫為:

NET “ClkIn” TNM_NET = “ClkIn”;

TIMESPEC “TS_ClkIn” = PERIOD “ClkIn” 5 ns HIGH 50%;

1.2.2. 手動約束相關聯的時鐘域

在某些情況下,工具并不能自動確定同步的時鐘域之間的時鐘時序關系,這個時候需要手動約束。例如:有兩個有相位關系的時鐘從不同的引腳進入FPGA器件,這個時候需要手動約束這兩個時鐘。

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

1.6通過兩個不同的外部引腳進入FPGA的相關時鐘

上圖的時序約束可寫為:

NET“Clk1X“TNM_NET=“Clk1X”;

NET“Clk2X180“TNM_NET=“Clk2X180”;

TIMESPEC“TS_Clk1X”=PERIOD“Clk1X 7 5ns;

TIMESPEC”TS_Clk2X180“=PERIOD”Clk2X180“TS_Clk1X/2PHAS2 +1.25ns;

1.2.3. 異步時鐘域

異步時鐘域的發送和接收時鐘不依賴于頻率或相位關系。因為時鐘是不相關的,所以不可能確定出建立時間.保持時間和時鐘的最終關系。因為這個原因,Xilinx推薦使用適當的異步設計技術來保證對數據的成功獲取。Xilinx約束系統允許設計者在不需考慮源和目的時鐘頻率.相位的情況下約束數據路徑的最大延時。

異步時鐘域使用的約束方法的流程為:

為源寄存器定義時序組

為目的寄存器定義時序組

使用From-to和DATAPATHDELAY關鍵字定義寄存器組之間的最大延時

1.3. 輸出約束Output Constraint

輸出時序約束約束的是從內部同步元件或寄存器到器件管腳的數據。

1.3.1. 系統同步輸出約束System Synchronous Output Constraint

系統同步輸出的簡化模型如圖所示,在系統同步輸出接口中,傳輸和獲取數據是基于同一個時鐘的。

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

1.7系統同步輸出

其時序約束可寫為:

NET “ClkIn” TNM_NET = “ClkIn”;

OFFSET = OUT 5 ns AFTER “ClkIn”;

1.3.2. 源同步輸出約束Source Synchronous Output Constraint

在源同步輸出接口中,時鐘是重新產生的并且在某一FPGA時鐘的驅動下和數據一起傳輸至下游器件。

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

1.8源同步輸出簡化電路時序圖

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

1.9源同步小例子時序圖

小例子的時序約束可寫為:

NET “ClkIn” TNM_NET = “ClkIn”;

OFFSET = OUT AFTER “ClkIn” REFERENCE_PIN “ClkOut” RISING;

OFFSET = OUT AFTER “ClkIn” REFERENCE_PIN “ClkOut” FALLING;

1.3.3. 虛假路徑約束False Path Constraint

令SRC_GRP為一組源寄存器,DST_GRP為一組目的寄存器,如果你確定SRC_GRP到DST_GRP之間的路徑不會影響時序性能,那么可以將這一組路徑約束為虛假路徑,工具在進行時序分析的時候將會跳過對這組路徑的時序分析。這種路徑最常見于不同時鐘域的寄存器數據傳輸,如下圖:

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

1.10虛假路徑

其約束可寫為:

NET “CLK1” TNM_NET = FFS “GRP_1”;

NET “CLK2” TNM_NET = FFS “GRP_2”;

TIMESPEC TS_Example = FROM “GRP_1” TO “GRP_2” TIG;

1.3.4. 多周期路徑約束Multi-Cycle Path Constraint

在多周期路徑里,令驅動時鐘的周期為PERIOD,數據可以最大n*PERIOD的時間的從源同步元件傳輸到目的同步元件,這一約束降低工具的布線難度而又不會影響時序性能。這種約束通常用在有時鐘使能控制的同步元件路徑中。

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

圖 1-11時鐘使能控制的寄存器路徑

必須說明的是上圖Enable信號的產生周期必須大于等于n*PERIOD,且每個Enable傳輸一個數據。假設上圖的n=2,MC_GRP為時鐘使能Enable控制的多周期同步元件組,則約束可寫為:

NET “CLK1” TNM_NET = “CLK1”;

TIMESPEC “TS_CLK1” = PERIOD “CLK1” 5 ns HIGH 50%;

NET “Enable” TNM_NET = FFS “MC_GRP”;

TIMESPEC TS_Example = FROM “MC_GRP” TO “MC_GRP” TS_CLK1*2;

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

    關注

    70

    文章

    2129

    瀏覽量

    119692
  • fpga編程
    +關注

    關注

    0

    文章

    3

    瀏覽量

    4610
收藏 人收藏

    評論

    相關推薦

    Xilinx FPGA管腳物理約束介紹

    引言:本文我們簡單介紹Xilinx FPGA管腳物理約束,包括位置(管腳)約束和電氣約束。
    發表于 07-25 10:13 ?4423次閱讀

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

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

    FPGA時序約束之偽路徑和多周期路徑

    前面幾篇FPGA時序約束進階篇,介紹常用主時鐘約束、衍生時鐘
    發表于 06-12 17:33 ?1184次閱讀

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束
    發表于 04-12 17:39

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束
    發表于 05-06 15:51

    Xilinx_fpga_設計:全局時序約束及試驗總結

    Xilinx_fpga_設計:全局時序約束及試驗總結
    發表于 08-05 21:17

    FPGA約束設計和時序分析

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

    時序約束時序分析 ppt教程

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

    Xilinx時序約束設計

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

    Xilinx時序約束培訓教材

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

    深入了解時序約束以及如何利用時序約束實現FPGA 設計的最優結果

    作為賽靈思用戶論壇的定期訪客(見 ),我注意到新用戶往往對時序收斂以及如何使用時序約束來達到時序收斂感到困惑。為幫助 FPGA設計新手實現
    發表于 11-24 19:37 ?5025次閱讀
    深入了解<b class='flag-5'>時序</b><b class='flag-5'>約束</b>以及如何利<b class='flag-5'>用時序</b><b class='flag-5'>約束</b>實現<b class='flag-5'>FPGA</b> 設計的最優結果

    FPGA約束的詳細介紹

    介紹FPGA約束原理,理解約束的目的為設計服務,是為了保證設計滿足時序要求,指導FPGA工具進行
    發表于 06-25 09:14 ?6487次閱讀

    FPGA設計之時序約束

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

    常用時序約束介紹之基于ISE的UCF文件語法

    時序約束是我們對FPGA設計的要求和期望,例如,我們希望FPGA設計可以工作在多快的時鐘頻率下等等。因此,在時序分析工具開始對我們的
    的頭像 發表于 12-28 15:18 ?2222次閱讀

    Xilinx FPGA時序約束設計和分析

    FPGA/CPLD的綜合、實現過程中指導邏輯的映射和布局布線。下面主要總結一下Xilinx FPGA時序約束設計和分析。
    的頭像 發表于 04-27 10:08 ?942次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>