在 Xilinx 系列 FPGA 產(chǎn)品中,全局時鐘網(wǎng)絡(luò)是一種全局布線資源,它可以保證時鐘信號到達各個目標(biāo)邏輯單元的時延基本相同。其時鐘分配樹結(jié)構(gòu)如圖1所示。
針對不同類型的器件,Xilinx公司提供的全局時鐘網(wǎng)絡(luò)在數(shù)量、性能等方面略有區(qū)別,下面以Virtex-4系列芯片為例,簡單介紹FPGA全局時鐘網(wǎng)絡(luò)結(jié)構(gòu)。
Virtex- 4系列FPGA利用1.2V、90nm三柵極氧化層技術(shù)制造而成,與前一代器件相比,具備靈活的時鐘解決方案,多達80個獨立時鐘與20個數(shù)字時鐘管理器,差分全局時鐘控制技術(shù)將歪斜與抖動降至最低。以全銅工藝實現(xiàn)的全局時鐘網(wǎng)絡(luò),加上專用時鐘緩沖與驅(qū)動結(jié)構(gòu),從而可使全局時鐘到達芯片內(nèi)部所有的邏輯可配置單元,且I/O單元以及塊RAM的時延和抖動最小,可滿足高速同步電路對時鐘觸發(fā)沿的苛刻需求。
在FPGA設(shè)計中,F(xiàn)PGA全局時鐘路徑需要專用的時鐘緩沖和驅(qū)動,具有最小偏移和最大扇出能力,因此最好的時鐘方案是由專用的全局時鐘輸入引腳驅(qū)動的單個主時鐘,去鐘控設(shè)計項目中的每一個觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計項目中采用全局時鐘,因為對于一個設(shè)計項目來說,全局時鐘是最簡單和最可預(yù)測的時鐘。
在軟件代碼中,可通過調(diào)用原語IBUFGP來使用全局時鐘。IBUFGP的基本用法是:
IBUFGP U1(.I(clk_in), .O(clk_out));
全局時鐘網(wǎng)絡(luò)對FPGA設(shè)計性能的影響很大,所以本書在第11章還會更深入、更全面地介紹全局時鐘網(wǎng)絡(luò)以及相關(guān)使用方法。
DCM模塊的使用
1.DCM模塊的組成和功能介紹
數(shù)字時鐘管理模塊(Digital Clock Manager,DCM)是基于Xilinx的其他系列器件所采用的數(shù)字延遲鎖相環(huán)(DLL,Delay Locked Loop)模塊。在時鐘的管理與控制方面,DCM與DLL相比,功能更強大,使用更靈活。DCM的功能包括消除時鐘的延時、頻率的合成、時鐘相位的調(diào)整等系統(tǒng)方面的需求。DCM的主要優(yōu)點在于:
(1)實現(xiàn)零時鐘偏移(Skew),消除時鐘分配延遲,并實現(xiàn)時鐘閉環(huán)控制;
(2)時鐘可以映射到PCB上用于同步外部芯片,這樣就減少了對外部芯片的要求,將芯片內(nèi)外的時鐘控制一體化,以利于系統(tǒng)設(shè)計。對于DCM模塊來說,其關(guān)鍵參數(shù)為輸入時鐘頻率范圍、輸出時鐘頻率范圍、輸入/輸出時鐘允許抖動范圍等。
DCM 共由四部分組成,如圖2所示。其中最底層仍采用成熟的DLL模塊;其次分別為數(shù)字頻率合成器(DFS,Digital Frequency Synthesizer)、數(shù)字移相器(DPS,Digital Phase Shifter)和數(shù)字頻譜擴展器(DSS,Digital Spread Spectrum)。不同的芯片模塊的DCM輸入頻率范圍是不同的,例如:
1)DLL模塊
DLL 主要由一個延時線和控制邏輯組成。延時線對時鐘輸入端CLKIN產(chǎn)生一個延時,時鐘分布網(wǎng)線將該時鐘分配到器件內(nèi)的各個寄存器和時鐘反饋端CLKFB;控制邏輯在反饋時鐘到達時采樣輸入時鐘以調(diào)整二者之間的偏差,實現(xiàn)輸入和輸出的零延時,如圖3所示。具體工作原理是:控制邏輯在比較輸入時鐘和反饋時鐘的偏差后,調(diào)整延時線參數(shù),在輸入時鐘后不停地插入延時,直到輸入時鐘和反饋時鐘的上升沿同步,鎖定環(huán)路進入“鎖定”狀態(tài),只要輸入時鐘不發(fā)生變化,輸入時鐘和反饋時鐘就保持同步。DLL可以被用來實現(xiàn)一些電路以完善和簡化系統(tǒng)級設(shè)計,如提供零傳播延遲,低時鐘相位差和高級時鐘區(qū)域控制等。
在Xilinx芯片中,典型的DLL標(biāo)準(zhǔn)原型如圖4所示,其管腳分別說明如下:
CLKIN(源時鐘輸入):DLL輸入時鐘信號,通常來自IBUFG或BUFG。
CLKFB(反饋時鐘輸入):DLL時鐘反饋信號,該反饋信號必須源自CLK0或CLK2X,并通過IBUFG或BUFG相連。
RST(復(fù)位):控制DLL的初始化,通常接地。
CLK0(同頻信號輸出):與CLKIN無相位偏移;CLK90與CLKIN 有90度相位偏移;CLK180與CLKIN 有180度相位偏移;CLK270與CL KIN有270度相位偏移。
CLKDV(分頻輸出):DLL輸出時鐘信號,是CLKIN的分頻時鐘信號。DLL支持的分頻系數(shù)為1.5,2,2.5,3,4,5,8 和16。
CLK2X(兩倍信號輸出):CLKIN的2倍頻時鐘信號。
LOCKED(輸出鎖存):為了完成鎖存,DLL可能要檢測上千個時鐘周期。當(dāng)DLL完成鎖存之后,LOCKED有效。