加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 一、? 輸入約束Input Constraint
    • 二、寄存器到寄存器約束Register-to-Register Constraint
    • 三、輸出約束Output Constraint
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Xilinx FPGA編程技巧之常用時(shí)序約束詳解

04/01 09:30
4292
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。

今天給大俠帶來Xilinx FPGA編程技巧之常用時(shí)序約束詳解,話不多說,上貨。

基本的約束方法

為了保證成功的設(shè)計(jì),所有路徑的時(shí)序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及異常路徑為:

    輸入路徑(Input Path),使用輸入約束寄存器到寄存器路徑(Register-to-Register Path),使用周期約束輸出路徑(Output Path),使用輸出約束具體的異常路徑(Path specific exceptions),使用虛假路徑、多周期路徑約束

一、? 輸入約束Input Constraint

OFFSET IN約束限定了輸入數(shù)據(jù)和輸入時(shí)鐘邊沿的關(guān)系。

1.?系統(tǒng)同步輸入約束System Synchronous Input

在系統(tǒng)同步接口中,同一個(gè)系統(tǒng)時(shí)鐘既傳輸數(shù)據(jù)也獲取數(shù)據(jù)。考慮到板子路徑延時(shí)和時(shí)鐘抖動(dòng),接口的操作頻率不能太高。

圖1?1 簡(jiǎn)化的系統(tǒng)同步輸入SDR接口電路

圖1?2? SDR系統(tǒng)同步輸入時(shí)序

上述時(shí)序的約束可寫為:

NET "SysClk" TNM_NET = "SysClk";

TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;

OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";

2.?源同步輸入約束Source Synchronous Input

在源同步接口中,時(shí)鐘是在源設(shè)備中和數(shù)據(jù)一起產(chǎn)生并傳輸。

圖1?3 簡(jiǎn)化的源同步輸入DDR接口電路

圖1?4 DDR源同步輸入時(shí)序

上圖的時(shí)序約束可寫為:

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;

二、寄存器到寄存器約束Register-to-Register Constraint

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

    覆蓋了時(shí)鐘域的時(shí)序要求覆蓋了同步數(shù)據(jù)在內(nèi)部寄存器之間的傳輸分析一個(gè)單獨(dú)的時(shí)鐘域內(nèi)的路徑分析相關(guān)時(shí)鐘域間的所有路徑考慮不同時(shí)鐘域間的所有頻率、相位、不確定性差異

1. 使用DLL, DCM, PLL, and MMCM等時(shí)鐘器件自動(dòng)確定同步關(guān)系

使用這一類時(shí)鐘IP Core,只需指定它們的輸入時(shí)鐘約束,器件將自動(dòng)的根據(jù)用戶生成IP Core時(shí)指定的參數(shù)約束相關(guān)輸出,不需用戶手動(dòng)干預(yù)。

圖1?5 輸入到DCM的時(shí)鐘約束

上圖的時(shí)序約束可寫為:

NET “ClkIn” TNM_NET = “ClkIn”;

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

2. 手動(dòng)約束相關(guān)聯(lián)的時(shí)鐘域

在某些情況下,工具并不能自動(dòng)確定同步的時(shí)鐘域之間的時(shí)鐘時(shí)序關(guān)系,這個(gè)時(shí)候需要手動(dòng)約束。例如:有兩個(gè)有相位關(guān)系的時(shí)鐘從不同的引腳進(jìn)入FPGA器件,這個(gè)時(shí)候需要手動(dòng)約束這兩個(gè)時(shí)鐘。

圖1?6 通過兩個(gè)不同的外部引腳進(jìn)入FPGA的相關(guān)時(shí)鐘

上圖的時(shí)序約束可寫為:

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;

3.?異步時(shí)鐘域

異步時(shí)鐘域的發(fā)送和接收時(shí)鐘不依賴于頻率或相位關(guān)系。因?yàn)闀r(shí)鐘是不相關(guān)的,所以不可能確定出建立時(shí)間、保持時(shí)間和時(shí)鐘的最終關(guān)系。因?yàn)檫@個(gè)原因,Xilinx推薦使用適當(dāng)?shù)漠惒皆O(shè)計(jì)技術(shù)來保證對(duì)數(shù)據(jù)的成功獲取。Xilinx約束系統(tǒng)允許設(shè)計(jì)者在不需考慮源和目的時(shí)鐘頻率、相位的情況下約束數(shù)據(jù)路徑的最大延時(shí)。

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

    為源寄存器定義時(shí)序組為目的寄存器定義時(shí)序組使用From-to和DATAPATHDELAY關(guān)鍵字定義寄存器組之間的最大延時(shí)

三、輸出約束Output Constraint

輸出時(shí)序約束約束的是從內(nèi)部同步元件或寄存器到器件管腳的數(shù)據(jù)。

1.?系統(tǒng)同步輸出約束System Synchronous Output Constraint

系統(tǒng)同步輸出的簡(jiǎn)化模型如圖所示,在系統(tǒng)同步輸出接口中,傳輸和獲取數(shù)據(jù)是基于同一個(gè)時(shí)鐘的。

圖1?7 系統(tǒng)同步輸出

其時(shí)序約束可寫為:

NET "ClkIn" TNM_NET = "ClkIn";

OFFSET = OUT 5 ns AFTER "ClkIn";

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

在源同步輸出接口中,時(shí)鐘是重新產(chǎn)生的并且在某一FPGA時(shí)鐘的驅(qū)動(dòng)下和數(shù)據(jù)一起傳輸至下游器件。

圖1?8源 同步輸出簡(jiǎn)化電路時(shí)序圖

圖1?9 源同步例子時(shí)序圖

上述舉例的時(shí)序約束可寫為:

NET “ClkIn” TNM_NET = “ClkIn”;

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

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

3.?虛假路徑約束False Path Constraint

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

圖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;

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

在多周期路徑里,令驅(qū)動(dòng)時(shí)鐘的周期為PERIOD,數(shù)據(jù)可以最大n*PERIOD的時(shí)間的從源同步元件傳輸?shù)侥康耐皆?,這一約束降低工具的布線難度而又不會(huì)影響時(shí)序性能。這種約束通常用在有時(shí)鐘使能控制的同步元件路徑中。

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

必須說明的是上圖Enable信號(hào)的產(chǎn)生周期必須大于等于n*PERIOD,且每個(gè)Enable傳輸一個(gè)數(shù)據(jù)。假設(shè)上圖的n=2,MC_GRP為時(shí)鐘使能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;

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
EPM2210F256C5N 1 Altera Corporation Flash PLD, 11.2ns, 1700-Cell, CMOS, PBGA256, 17 X 17 MM, 1 MM PITCH, LEAD FREE, FBGA-256
$423.74 查看
M1A3P250-FG144I 1 Microsemi FPGA & SoC Field Programmable Gate Array, 6144 CLBs, 250000 Gates, 350MHz, 6144-Cell, CMOS, PBGA144, 13X 13 MM, 1.45 MM HEIGHT, 1 MM PITCH, FBGA-144
暫無數(shù)據(jù) 查看
A3P250-FG144 1 Microsemi FPGA & SoC Field Programmable Gate Array, 250000 Gates, CMOS, PBGA144, 1 MM PITCH, FBGA-144
$21.67 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習(xí)就好比一個(gè)江湖,對(duì)于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。