目前,大型設(shè)計一般推薦使用同步時序電路,。同步時序電路基于時鐘觸發(fā)沿設(shè)計,,對時鐘的周期、占空比,、延時和抖動提出了更高的要求,。為了滿足同步時序設(shè)計的要求,一般在FPGA設(shè)計中采用全局時鐘資源驅(qū)動設(shè)計的主時鐘,,以達(dá)到最低的時鐘抖動和延遲,。 FPGA全局時鐘資源一般使用全銅層工藝實現(xiàn),并設(shè)計了專用時鐘緩沖與驅(qū)動結(jié)構(gòu),,從而使全局時鐘到達(dá)芯片內(nèi)部的所有可配置單元(CLB),、I/O單元(IOB)和選擇性塊RAM(Block Select RAM)的時延和抖動都為最小。為了適應(yīng)復(fù)雜設(shè)計的需要,Xilinx的FPGA中集成的專用時鐘資源與數(shù)字延遲鎖相環(huán)(DLL)的數(shù)目不斷增加,,最新的Virtex II器件最多可以提供16個全局時鐘輸入端口和8個數(shù)字時鐘管理模塊(DCM),。
與全局時鐘資源相關(guān)的原語常用的與全局時鐘資源相關(guān)的Xilinx器件原語包括:IBUFG、IBUFGDS,、BUFG,、BUFGP、BUFGCE,、BUFGMUX,、BUFGDLL和DCM等,如圖1所示,。
1. IBUFG即輸入全局緩沖,,是與專用全局時鐘輸入管腳相連接的首級全局緩沖。所有從全局時鐘管腳輸入的信號必須經(jīng)過IBUF元,,否則在布局布線時會報錯,。IBUFG支持AGP,、CTT,、GTL、GTLP,、HSTL,、LVCMOS、LVDCI,、LVDS,、LVPECL、LVTTL,、PCI,、PCIX和SSTL等多種格式的IO標(biāo)準(zhǔn)。
G 單
2. IBUFGDS是IBUFG的差分形式,,當(dāng)信號從一對差分全局時鐘管腳輸入時,,必須使用IBUFGDS作為全局時鐘輸入緩沖。IBUFG支持BLVDS,、LDT,、LVDSEXT、LVDS,、LVPECL和ULVDS等多種格式的IO標(biāo)準(zhǔn),。
3. BUFG是全局緩沖,它的輸入是IBUFG的輸出,,BUFG的輸出到達(dá)FPGA內(nèi)部的IOB,、CLB、選擇性塊RAM的時鐘延遲和抖動最小。
4. BUFGCE是帶有時鐘使能端的全局緩沖,。它有一個輸入I,、一個使能端CE和一個輸出端O。只有當(dāng)BUFGCE的使能端CE有效(高電平)時,,BUFGCE才有輸出,。
5. BUFGMUX是全局時鐘選擇緩沖,它有I0和I1兩個輸入,,一個控制端S,,一個輸出端O。當(dāng)S為低電平時輸出時鐘為I0,,反之為I1,。需要指出的是BUFGMUX的應(yīng)用十分靈活,I0和I1兩個輸入時鐘甚至可以為異步關(guān)系,。
6. BUFGP相當(dāng)于IBUG加上BUFG,。
7. BUFGDLL是全局緩沖延遲鎖相環(huán),相當(dāng)于BUFG與DLL的結(jié)合,。BUFGDLL在早期設(shè)計中經(jīng)常使用,,用以完成全局時鐘的同步和驅(qū)動等功能。隨著數(shù)字時鐘管理單元(DCM)的日益完善,,目前BUFGDLL的應(yīng)用已經(jīng)逐漸被DCM所取代,。
8. DCM即數(shù)字時鐘管理單元,主要完成時鐘的同步,、移相,、分頻、倍頻和去抖動等,。DCM與全局時鐘有著密不可分的聯(lián)系,,為了達(dá)到最小的延遲和抖動,幾乎所有的DCM應(yīng)用都要使用全局緩沖資源,。DCM可以用Xilinx ISE軟件中的Architecture Wizard直接生成,。
全局時鐘資源的使用方法 全局時鐘資源的使用方法(五種)
1:IBUFG + BUFG的使用方法:
IBUFG后面連接BUFG的方法是最基本的全局時鐘資源使用方法,由于IBUFG組合BUFG相當(dāng)于BUFGP,,所以在這種使用方法也稱為BUFGP方法,。
2. IBUFGDS + BUFG的使用方法:
當(dāng)輸入時鐘信號為差分信號時,需要使用IBUFGDS代替IBUFG,。
3. IBUFG + DCM + BUFG的使用方法:
這種使用方法最靈活,,對全局時鐘的控制更加有效。通過DCM模塊不僅僅能對時鐘進(jìn)行同步,、移相,、分頻和倍頻等變換,,而且可以使全局時鐘的輸出達(dá)到無抖動延遲。
4. Logic + BUFG的使用方法:
BUFG不但可以驅(qū)動IBUFG的輸出,,還可以驅(qū)動其它普通信號的輸出,。當(dāng)某個信號(時鐘、使能,、快速路徑)的扇出非常大,,并且要求抖動延遲最小時,可以使用BUFG驅(qū)動該信號,,使該信號利用全局時鐘資源,。但需要注意的是,普通IO的輸入或普通片內(nèi)信號進(jìn)入全局時鐘布線層需要一個固有的延時,,一般在10ns左右,,即普通IO和普通片內(nèi)信號從輸入到BUFG輸出有一個約10ns左右的固有延時,但是BUFG的輸出到片內(nèi)所有單元(IOB,、CLB,、選擇性塊RAM)的延時可以忽略不計為“0”ns。
5. Logic + DCM + BUFG的使用方法:
DCM同樣也可以控制并變換普通時鐘信號,,即DCM的輸入也可以是普通片內(nèi)信號,。使用全局時鐘資源的注意事項 全局時鐘資源必須滿足的重要原則是:使用IBUFG或IBUFGDS的充分必要條件是信號從專用全局時鐘管腳輸入。換言之,,當(dāng)某個信號從全局時鐘管腳輸入,,不論它是否為時鐘信號,都必須使用IBUFG或IBUFGDS,;如果對某個信號使用了IBUFG或IBUFGDS硬件原語,則這個信號必定是從全局時鐘管腳輸入的,。如果違反了這條原則,,那么在布局布線時會報錯。這條規(guī)則的使用是由FPGA的內(nèi)部結(jié)構(gòu)決定的:IBUFG和IBUFGDS的輸入端僅僅與芯片的專用全局時鐘輸入管腳有物理連接,,與普通IO和其它內(nèi)部CLB等沒有物理連接,。 另外,由于BUFGP相當(dāng)于IBUFG和BUFG的組合,,所以BUFGP的使用也必須遵循上述的原則,。
全局時鐘資源的例化方法
全局時鐘資源的例化方法大致可分為兩種:
一是在程序中直接例化全局時鐘資源;
二是通過綜合階段約束或者實現(xiàn)階段約束實現(xiàn)對全局時鐘資源的使用,;
第一種方法比較簡單,,用戶只需按照前面講述的5種全局時鐘資源的基本使用方法編寫代碼或者繪制原理圖即可。
第二方法是通過綜合階段約束或?qū)崿F(xiàn)階段的約束完成對全局時鐘資源的調(diào)用,,這種方法根據(jù)綜合工具和布局布線工具的不同而異,。
zz Xilinx DCM的使用
2008年12月27日 星期六 22:59
目前,,大型設(shè)計一般推薦使用同步時序電路。同步時序電路基于時鐘觸發(fā)沿設(shè)計,,對時鐘的周期,、占空比、延時和抖動提出了更高的要求,。為了滿足同步時序設(shè)計的要求,,一般在FPGA設(shè)計中采用全局時鐘資源驅(qū)動設(shè)計的主時鐘,以達(dá)到最低的時鐘抖動和延遲,。 FPGA全局時鐘資源一般使用全銅層工藝實現(xiàn),,并設(shè)計了專用時鐘緩沖與驅(qū)動結(jié)構(gòu),從而使全局時鐘到達(dá)芯片內(nèi)部的所有可配置單元(CLB),、I/O單元(IOB)和選擇性塊RAM(Block Select RAM)的時延和抖動都為最小,。為了適應(yīng)復(fù)雜設(shè)計的需要,Xilinx的FPGA中集成的專用時鐘資源與數(shù)字延遲鎖相環(huán)(DLL)的數(shù)目不斷增加,,最新的Virtex II器件最多可以提供16個全局時鐘輸入端口和8個數(shù)字時鐘管理模塊(DCM),。
與全局時鐘資源相關(guān)的原語常用的與全局時鐘資源相關(guān)的Xilinx器件原語包括:IBUFG、IBUFGDS,、BUFG,、BUFGP、BUFGCE,、BUFGMUX,、BUFGDLL和DCM等,如圖1所示,。
IBUFG即輸入全局緩沖,,是與專用全局時鐘輸入管腳相連接的首級全局緩沖。所有從全局時鐘管腳輸入的信號必須經(jīng)過IBUF元,,否則在布局布線時會報錯,。IBUFG支持AGP、CTT,、GTL,、GTLP、HSTL,、LVCMOS,、LVDCI、LVDS,、LVPECL,、LVTTL、PCI,、PCIX和SSTL等多種格式的IO標(biāo)準(zhǔn),。
IBUFGDS是IBUFG的差分形式,,當(dāng)信號從一對差分全局時鐘管腳輸入時,必須使用IBUFGDS作為全局時鐘輸入緩沖,。IBUFG支持BLVDS,、LDT、LVDSEXT,、LVDS,、LVPECL和ULVDS等多種格式的IO標(biāo)準(zhǔn)。
BUFG是全局緩沖,,它的輸入是IBUFG的輸出,,BUFG的輸出到達(dá)FPGA內(nèi)部的IOB、CLB,、選擇性塊RAM的時鐘延遲和抖動最小,。
BUFGCE是帶有時鐘使能端的全局緩沖。它有一個輸入I,、一個使能端CE和一個輸出端O,。只有當(dāng)BUFGCE的使能端CE有效(高電平)時,BUFGCE才有輸出,。
BUFGMUX是全局時鐘選擇緩沖,,它有I0和I1兩個輸入,一個控制端S,,一個輸出端O,。當(dāng)S為低電平時輸出時鐘為I0,反之為I1,。需要指出的是BUFGMUX的應(yīng)用十分靈活,,I0和I1兩個輸入時鐘甚至可以為異步關(guān)系。
BUFGP相當(dāng)于IBUG加上BUFG,。
BUFGDLL是全局緩沖延遲鎖相環(huán),,相當(dāng)于BUFG與DLL的結(jié)合。BUFGDLL在早期設(shè)計中經(jīng)常使用,,用以完成全局時鐘的同步和驅(qū)動等功能。隨著數(shù)字時鐘管理單元(DCM)的日益完善,,目前BUFGDLL的應(yīng)用已經(jīng)逐漸被DCM所取代,。
DCM即數(shù)字時鐘管理單元,主要完成時鐘的同步,、移相,、分頻、倍頻和去抖動等,。DCM與全局時鐘有著密不可分的聯(lián)系,,為了達(dá)到最小的延遲和抖動,,幾乎所有的DCM應(yīng)用都要使用全局緩沖資源。DCM可以用Xilinx ISE軟件中的Architecture Wizard直接生成,。
全局時鐘資源的使用方法
全局時鐘資源的使用方法(五種)
IBUFG + BUFG的使用方法:
IBUFG后面連接BUFG的方法是最基本的全局時鐘資源使用方法,,由于IBUFG組合BUFG相當(dāng)于BUFGP,所以在這種使用方法也稱為BUFGP方法,。
IBUFGDS + BUFG的使用方法:
當(dāng)輸入時鐘信號為差分信號時,,需要使用IBUFGDS代替IBUFG。
IBUFG + DCM + BUFG的使用方法:
這種使用方法最靈活,,對全局時鐘的控制更加有效,。通過DCM模塊不僅僅能對時鐘進(jìn)行同步、移相,、分頻和倍頻等變換,,而且可以使全局時鐘的輸出達(dá)到無抖動延遲。
Logic + BUFG的使用方法:
BUFG不但可以驅(qū)動IBUFG的輸出,,還可以驅(qū)動其它普通信號的輸出,。當(dāng)某個信號(時鐘、使能,、快速路徑)的扇出非常大,,并且要求抖動延遲最小時,可以使用BUFG驅(qū)動該信號,,使該信號利用全局時鐘資源,。但需要注意的是,普通IO的輸入或普通片內(nèi)信號進(jìn)入全局時鐘布線層需要一個固有的延時,,一般在10ns左右,,即普通IO和普通片內(nèi)信號從輸入到BUFG輸出有一個約10ns左右的固有延時,但是BUFG的輸出到片內(nèi)所有單元(IOB,、CLB,、選擇性塊RAM)的延時可以忽略不計為“0”ns。
Logic + DCM + BUFG的使用方法:
DCM同樣也可以控制并變換普通時鐘信號,,即DCM的輸入也可以是普通片內(nèi)信號,。使用全局時鐘資源的注意事項 全局時鐘資源必須滿足的重要原則是:使用IBUFG或IBUFGDS的充分必要條件是信號從專用全局時鐘管腳輸入。換言之,,當(dāng)某個信號從全局時鐘管腳輸入,,不論它是否為時鐘信號,都必須使用IBUFG或IBUFGDS,;如果對某個信號使用了IBUFG或IBUFGDS硬件原語,,則這個信號必定是從全局時鐘管腳輸入的。如果違反了這條原則,,那么在布局布線時會報錯,。這條規(guī)則的使用是由FPGA的內(nèi)部結(jié)構(gòu)決定的:IBUFG和IBUFGDS的輸入端僅僅與芯片的專用全局時鐘輸入管腳有物理連接,,與普通IO和其它內(nèi)部CLB等沒有物理連接。 另外,,由于BUFGP相當(dāng)于IBUFG和BUFG的組合,,所以BUFGP的使用也必須遵循上述的原則。
全局時鐘資源的例化方法
全局時鐘資源的例化方法大致可分為兩種:
一是在程序中直接例化全局時鐘資源,;
二是通過綜合階段約束或者實現(xiàn)階段約束實現(xiàn)對全局時鐘資源的使用,;
第一種方法比較簡單,用戶只需按照前面講述的5種全局時鐘資源的基本使用方法編寫代碼或者繪制原理圖即可,。
第二方法是通過綜合階段約束或?qū)崿F(xiàn)階段的約束完成對全局時鐘資源的調(diào)用,,這種方法根據(jù)綜合工具和布局布線工具的不同而異。