江蘇金陵機械制造總廠 徐立升 張建春
基于FPGA的DCM設計研究
江蘇金陵機械制造總廠 徐立升 張建春
Xilinx公司的FPGA中的數(shù)字時鐘管理單元(DCM),具有強大的時鐘管理作用。本文介紹了FPGA中的DCM的原理與應用,對其工作原理、組成、使用方法及應用進行了系統(tǒng)描述,通過對DCM IP核的參數(shù)設置和程序設計實現(xiàn)了時鐘的倍頻、分頻和相位移動等功能。
FPGA;DCM;IP核
隨著集成電路的發(fā)展,芯片的集成度越來越高,實現(xiàn)的功能越來越多??删幊踢壿嬈骷﨔PGA是一種可在線編程的邏輯芯片,具有強大的實時處理與運算能力,在通信與圖像處理中的應用越來越多。為了適應各種需要,F(xiàn)PGA內(nèi)部集成了數(shù)字時鐘管理單元DCM,DCM提供了強大的時鐘管理功能:時鐘去偏斜,頻率綜合,時鐘相移,動態(tài)重配置等功能。DCM內(nèi)部結(jié)構(gòu)圖如圖1所示。
圖1 DCM內(nèi)部結(jié)構(gòu)圖
DCM是Xilinx公司專有的時鐘管理模塊,DCM由四個獨立的功能單元組成:(1)延遲鎖定環(huán)路(Delay-Locked Loop,DLL);(2)數(shù)字頻率綜合器(Digital Frequency Synthesizer,DFS);(3)數(shù)字相移器(Phase Shift,PS);(4)狀態(tài)邏輯(Status Logic,SL)[1]。此外,DCM還有一個重要的動態(tài)可重配置功能。
2.1 DLL模塊
DLL模塊由一條可變的延遲線和控制邏輯組成。延遲線由延遲單元組成,輸入的時鐘經(jīng)過延遲線,每個延遲單元的輸出代表著輸入時鐘的不同延遲版本。DCM輸出的時鐘信號經(jīng)過全局緩沖器到達FPGA內(nèi)部各個模塊的延遲是相同的,但是與DCM輸入時鐘有一個固定的走線延遲,為了消除這段延遲,DCM中引入了反饋時鐘CLKFB,通過CLKFB與輸入時鐘相比較,調(diào)節(jié)控制延遲單元的個數(shù),使得CLKFB與輸入時鐘同相,消除走線延遲[2],使得到達各個模塊的時鐘與FPGA輸入管腳的時鐘同相。DLL原理框圖如圖2所示。
圖2 DLL原理框圖
2.2 數(shù)字頻率綜合器
數(shù)字頻率綜合器提供了強大的頻率綜合功能,除了直接實現(xiàn)時鐘的倍頻外,還提供一個倍頻系數(shù)M與分頻系數(shù)D,M和D可以為任意的正整數(shù),輸出頻率可以是M/D表示的輸入時鐘頻率的任意函數(shù),可以輸出多種時鐘頻率。
2.3 數(shù)字相移器
DCM的數(shù)字相移器提供粗粒度和細粒度兩種時鐘相移。對于粗粒度相移控制,DCM直接輸出四種時鐘CLK0,CLK90,CLK180,CLK270,這四種輸出依次相對移相1/4個輸入時鐘周期。此外,CLK2X180和CLKFX180分別提供CLK2X和CLKFX的180°粗調(diào)相移。粗粒度相移直接從DLL的延遲線產(chǎn)生。數(shù)字相移器提供的細粒度相移可以精確的調(diào)整輸出時鐘與輸入時鐘之間的相位關系,細粒度相移使用CLKOUT_PHASE_SHIFT和PHASE_ SHIFT屬性來調(diào)節(jié)輸出時鐘的相位[3]。DCM中時鐘的移相是相對CLKIN而言的。DCM中的細粒度時鐘相位調(diào)整為:
相移(ns)=(PHASE_SHIFT/256)*FCLKIN
其中FCLKIN為輸入時鐘CLKIN的頻率。
DCM中數(shù)字相移器可以提供正負相位的調(diào)整,在VARIABLE_ CENTER和FIXED模式下,PHASE_SHIFT屬性的全范圍始終是-128到+128。在VARIABLE_POSITIVE模式下,PHASE_SHIFT屬性的范圍是0到+255,可以實現(xiàn)輸入時鐘的1/256相位的精確調(diào)整。
2.4 狀態(tài)邏輯
狀態(tài)邏輯表示出DCM的工作狀態(tài)。STATUS[7:0]只有低3位有定義;STATUS[0]置高時,表示DCM相移溢出;當STATUS[1]置高時,表明CLKIN端沒有輸入時鐘;當STATUS[2]置高時,表明CLKFX端沒有輸出信號。
2.5 動態(tài)重配置
動態(tài)重配置端口可以實時加載來更新DCM的初始設置,不需要重新啟動電路。動態(tài)重配置端口可以完成以下功能:
(1)可動態(tài)調(diào)整倍頻系數(shù)M與分頻系數(shù)D,產(chǎn)生新的時鐘頻率。
(2)可動態(tài)調(diào)整相移因子PHASE_SHIFT值,產(chǎn)生新相移。
圖3 FPGA中DCM硬件電路示意圖
DCM是FPGA重要的資源,本文以Xilinx Virtex-5系列的FPGA為例來研究DCM IP核的設計與使用。在Virtex-5系列的FPGA中集成了DCM的IP核,用戶使用時,直接配置IP核即可。配置代碼如下所示。
DCMM DCMModule (
.CLKIN_IN(clkin), //輸入時鐘信號
.RST_IN(reset), //輸入復位信號
.CLKDV_OUT(clkdv), //輸出可配置分頻信號
.CLKFX_OUT(clkfx), //輸出反饋信號
.CLKFX180_OUT(clkfx180), //輸出反饋信號的反相信號
.CLK0_OUT(clk0), //輸出與輸入時鐘同相信號
.CLK2X_OUT(clk2x), //輸出倍頻信號
.CLK2X180_OUT(clk2x180), //輸出倍頻信號的反相信號
.CLK90_OUT(clk90), //輸出移相90度的時鐘信號
.CLK180_OUT(clk180), //輸出移相180度的時鐘信號
.CLK270_OUT(clk270), //輸出移相270度的時鐘信號
.LOCKED_OUT(locked) //輸出鎖定信號
);DCM具有強大的時鐘管理功能,F(xiàn)PGA內(nèi)部通過DCM可以產(chǎn)生各種需求的時鐘信號,滿足不同系統(tǒng)對時鐘頻率的要求。并且通過代碼可以直接修改時鐘頻率,大大簡化系統(tǒng)的工作量,能夠滿足各種應用需求,此外DCM中的LOCKED信號表明DCM已正常工作,可以用作電路中其它模塊的復位信號。FPGA中DCM硬件電路示意圖如圖3所示。
圖4 DCM產(chǎn)生的時鐘信號
通過圖3可看出所有的輸出時鐘都接入到全局時鐘緩沖器。全局時鐘緩沖器輸出的時鐘信號到達各個觸發(fā)器的延遲相等,可以消除走線延遲對觸發(fā)器同步產(chǎn)生的影響。輸出時鐘的同相位CLK0經(jīng)過走線后接入CLKFB輸入端,消除走線延遲,始終保持輸入時鐘與輸出時鐘同相。DCM產(chǎn)生的各種頻率的時鐘信號如圖4所示。
時鐘是FPGA電路正常工作不可或缺的部分。FPGA中DCM具有頻率合成,相移調(diào)整、動態(tài)可重配置等功能。本文介紹了Xilinx系列的FPGA中DCM的設計和使用,通過仿真產(chǎn)生不同頻率的時鐘信號,可以滿足各種應用需求。
[1]李丙玉,王曉東,呂寶林,劉文光.FPGA設計中DCM的原理分析及應用研究[J].微計算機信息,2009,12-2:164-166.
[2]賈亮,馬興,孫偉等.基于Xilinx FPGA DCM的研究與設計[J].電子測量技術,2014,10:85-88.
[3]Xilinx.Virtex-5用戶指南.Xilinx INC,2007.