基于Xilinx FPGA的DCM動(dòng)態(tài)重配置方法研究及實(shí)現(xiàn)
在復(fù)雜的電子系統(tǒng)應(yīng)用中,系統(tǒng)的主時(shí)鐘經(jīng)常需要根據(jù)不同的應(yīng)用環(huán)境,采用不同頻率、不同相位的高速時(shí)鐘,以滿(mǎn)足系統(tǒng)的不同性能要求。在星載系統(tǒng)中,其不同接口的數(shù)據(jù)輸入速率不同,為了實(shí)現(xiàn)FPGA對(duì)不同接口輸入數(shù)據(jù)的實(shí)時(shí)復(fù)用處理,需要電子系統(tǒng)產(chǎn)生對(duì)應(yīng)的時(shí)鐘頻率。DCM(Digital Clock Manager)被廣泛應(yīng)用于電子系統(tǒng)中以產(chǎn)生所需的各種時(shí)鐘頻率,所以在系統(tǒng)動(dòng)態(tài)可變時(shí)鐘的過(guò)程中,DCM的重配置設(shè)計(jì)很重要。
DCM的配置分為簡(jiǎn)單的靜態(tài)配置和復(fù)雜的動(dòng)態(tài)重配置兩種:靜態(tài)配置是指DCM的輸出頻率是事先確定好的,在系統(tǒng)的整個(gè)運(yùn)行過(guò)程中不會(huì)改變,若要改變,必須停止系統(tǒng)對(duì)其進(jìn)行重新手動(dòng)設(shè)置,這對(duì)于星載系統(tǒng)而言,難度非常大;而動(dòng)態(tài)重配置是指在系統(tǒng)運(yùn)行過(guò)程中,通過(guò)發(fā)送指令便可以實(shí)時(shí)地通過(guò)改變DCM屬性來(lái)產(chǎn)生特定需要的時(shí)鐘頻率,這對(duì)于星載系統(tǒng)而言,具有十分重要的實(shí)際意義。文中結(jié)合作者的項(xiàng)目研發(fā)體會(huì),對(duì)Xilinx公司的Virtex-4系列FPGA(Field Programmable Gate Array)的數(shù)字時(shí)鐘管理器DCM的性能特點(diǎn)作了介紹,并給出進(jìn)行DCM動(dòng)態(tài)重配置的方法,從而使系統(tǒng)時(shí)鐘具有較高的靈活性和適應(yīng)性。
1 DCM概述
Virtex-4系列FPGA是Xilinx公司推出的新一代大容量、高性能FPGA。在Virtex-4系列FPGA內(nèi)部最多集成了20個(gè)時(shí)鐘管理器DCM模塊,DCM提供了一個(gè)完整的可以供片內(nèi)和片外使用的時(shí)鐘發(fā)生器。DCM使用完全數(shù)字延遲線技術(shù),允許高精度地控制時(shí)鐘的相位和頻率;使用完全的數(shù)字反饋系統(tǒng),可以動(dòng)態(tài)補(bǔ)償由于溫度和電壓偏移引起的時(shí)鐘相位和頻率的偏差。DCM主要具有數(shù)字時(shí)鐘同步、數(shù)字頻率合成、數(shù)字相位移動(dòng)和動(dòng)態(tài)重配置4個(gè)基本功能。
Virtex-4的DCM基本單元分為DCM_BASE和DCM_ADV兩種,如圖1所示,而DCM_ADV具有時(shí)鐘動(dòng)態(tài)重配置功能。
DCM_BASE基本單元包含常用的DCM基本功能,簡(jiǎn)化了用戶(hù)接口。使用DCM_BASE,可以完成對(duì)時(shí)鐘去歪斜、進(jìn)行頻率合成和固定相移的功能。
DCM_ADV基本單元除包含DCM_BASE中所有DCM功能和可用端口之外,還包含具有動(dòng)態(tài)重配置功能的端口。DCM_ADV基本單元是DCM_BASE基本單元的擴(kuò)展。DCM_ADV包括所有DCM功能,包括時(shí)鐘去歪斜、頻率合成、固定或可變相移以及動(dòng)態(tài)重配置。
2 DCM動(dòng)態(tài)重配置的設(shè)計(jì)和實(shí)現(xiàn)
通過(guò)DCM的一組數(shù)據(jù)和地址總線,在不必重新配置器件其他部分的情況下,改變DCM的屬性。用于動(dòng)態(tài)重配置DCM功能的引腳有:輸入引腳DADDR[6:0],DI[15:0],DWE,DEN和DCLK;輸出引腳DO[15:0]和DRDY。動(dòng)態(tài)重配置可以根據(jù)目前的配置設(shè)定實(shí)現(xiàn)修改DCM的屬性,改變其相移、倍頻系數(shù)M或分頻系數(shù)D。
2.1 動(dòng)態(tài)重配置DCM的原理
DCM的動(dòng)態(tài)重配置功能通過(guò)動(dòng)態(tài)重配置引腳(Dynamic Reconfiguration Ports,DRP)控制器完成,其不僅可以配置DCM,而且可以配置FPGA的其他邏輯。動(dòng)態(tài)重配置邏輯塊的重配置流程和配置信號(hào)接口如圖2所示。
對(duì)于Virtex-4的DCM,倍頻系數(shù)M的值是通過(guò)DRP往指定地址(DADDR[6:0])50h中寫(xiě)數(shù)DI[15:0]來(lái)實(shí)現(xiàn)的,分頻系數(shù)D的值是通過(guò)DRP往指定地址(DADDR[6:0])52h中寫(xiě)數(shù)DI[15:0]來(lái)實(shí)現(xiàn)的。在寫(xiě)控制字的過(guò)程中,DCM必須保持Reset狀態(tài)。地址(DADDR[6:0])41h的位6(DI[5])用于設(shè)置DFS的頻率模式,0是低頻工作模式,1是高頻工作模式;地址58h的位7和位8(DI[7:6])用于設(shè)置DLL的頻率模式,00是低頻模式,11是高頻模式;地址00h用于存儲(chǔ)DCM的默認(rèn)輸出狀態(tài)。
2.2 系統(tǒng)設(shè)計(jì)
如圖3是系統(tǒng)設(shè)計(jì)的邏輯框圖。它由動(dòng)態(tài)重配置引腳控制器和DCM_ADV組成。其動(dòng)態(tài)重配置引腳控制器的輸入簡(jiǎn)單,包括時(shí)鐘輸入信號(hào)、使能信號(hào)以及兩根時(shí)鐘模式控制線,它可以控制DCM動(dòng)態(tài)的輸出最多4種不同頻率的時(shí)鐘。時(shí)鐘模式控制線可以擴(kuò)展為多位,從而產(chǎn)生多種不同頻率的時(shí)鐘,在這里只采用兩根模式控制線產(chǎn)生4個(gè)時(shí)鐘模式值。
該系統(tǒng)的工作原理:動(dòng)態(tài)重配置引腳控制器不斷地輸入DCLK頻率采樣時(shí)鐘等級(jí)值,當(dāng)SPEED_MODE[1:0]有有效地輸入并且SPEED_EN使能信號(hào)為高電平時(shí),動(dòng)態(tài)重置引腳控制器開(kāi)始產(chǎn)生對(duì)應(yīng)的DCM重配置輸入?yún)?shù)。DCM根據(jù)重配置參數(shù)來(lái)動(dòng)態(tài)的產(chǎn)生所需的時(shí)鐘頻率,并向動(dòng)態(tài)重置引腳控制器反饋動(dòng)態(tài)重配置就緒信號(hào)和動(dòng)態(tài)重配置數(shù)據(jù)輸出信號(hào),從而為下一次的時(shí)鐘配置做好就緒準(zhǔn)備。DCM_ADV模塊的CLKFX_OUT是動(dòng)態(tài)重配置后DCM的輸出時(shí)鐘,LOCKED信號(hào)出指示DCM時(shí)鐘輸出是否有效,即是否輸出正確的頻率和相位。這樣只需改變輸入的時(shí)鐘模式值而不需其他改動(dòng),便可產(chǎn)生所需的時(shí)鐘頻率,從而使得系統(tǒng)時(shí)鐘具有較高的靈活性和適應(yīng)性。
2.3 動(dòng)態(tài)DCM重配置的時(shí)序設(shè)計(jì)
在整個(gè)系統(tǒng)中,配置接口的時(shí)序設(shè)計(jì)是最關(guān)鍵的。在ISE10.1軟件設(shè)計(jì)環(huán)境下,使用VerilogHDL硬件描述語(yǔ)言以自頂向下的方式進(jìn)行設(shè)計(jì)。圖4是DCM模塊接口動(dòng)態(tài)重配置的寫(xiě)時(shí)序。
其中,DCLK是其他接口信號(hào)的驅(qū)動(dòng)時(shí)鐘,在上升沿同步工作;DEN是其他接口的使能信號(hào);DWE是讀/寫(xiě)控制信號(hào),如果DWE是低電平,為讀操作,否則就是寫(xiě)操作;DADDR是讀/寫(xiě)地址總線;DI是數(shù)據(jù)輸入總線,只有當(dāng)DEN和DWE同時(shí)有效時(shí)數(shù)據(jù)輸入有效,而且實(shí)際的寫(xiě)操作是在DRDY返回之前的某個(gè)時(shí)刻發(fā)生的;DO是數(shù)據(jù)輸出總線;DRDY是與DEN對(duì)應(yīng)的一個(gè)信號(hào),標(biāo)志著一個(gè)DRP操作周期的完成,DO總線數(shù)據(jù)要在DRDY有效時(shí)間內(nèi)DCLK的上升沿讀取才有效。
動(dòng)態(tài)重配置引腳模塊的總體設(shè)計(jì)包括DCLK產(chǎn)生、重配置引腳的產(chǎn)生、RST信號(hào)產(chǎn)生。DCLK的產(chǎn)生是通過(guò)對(duì)輸入時(shí)鐘100 MHz的晶振進(jìn)行2.5分頻得到,作為后一級(jí)DCM模塊的動(dòng)態(tài)重配置時(shí)鐘40 MHz;重配置引腳的產(chǎn)生是根據(jù)輸入的時(shí)鐘等級(jí)值來(lái)產(chǎn)生的,在不同的時(shí)鐘等級(jí)值下產(chǎn)生對(duì)應(yīng)的DEN、DWE、DADDR[6:0]、DI[15:0];RST信號(hào)的產(chǎn)生是根據(jù)DEN來(lái)產(chǎn)生的,這里使它持續(xù)的時(shí)間比DEN稍長(zhǎng)即可。由于對(duì)應(yīng)的時(shí)鐘等級(jí)值300 MHz是屬于高頻模式,而200 MHz、100 MHz、50 MHz是屬于低頻模式,故在改變其時(shí)鐘等級(jí)值的同時(shí)還需要對(duì)對(duì)應(yīng)時(shí)鐘等級(jí)值的頻率模式進(jìn)行改變。
對(duì)于可重配置功能,在操作時(shí)要注意兩點(diǎn):一是需要?jiǎng)討B(tài)改變的CLKFX的乘數(shù)M和除數(shù)D的值要先減去1,例如希望分頻比是5/2,就需要載入M/D=4/1;在寫(xiě)入動(dòng)態(tài)控制字時(shí),要保持DCM處于復(fù)位狀態(tài),直到控制字寫(xiě)完后才釋放復(fù)位狀態(tài)。
3 在線采集波形
以上的各模塊在ISE 10.1開(kāi)發(fā)平臺(tái)上進(jìn)行設(shè)計(jì)輸入,經(jīng)綜合、實(shí)現(xiàn)后下載到XC4VFX100中去。在動(dòng)態(tài)配置300 MHz時(shí)鐘頻率時(shí),通過(guò)ChipScope實(shí)際在線采集波形如圖5所示,對(duì)應(yīng)其他的頻率等級(jí)的重配置類(lèi)似。
在對(duì)300 MHz的頻率進(jìn)行時(shí)鐘等級(jí)值配置時(shí),先向地址50h中寫(xiě)入倍頻系數(shù)0002h,再向地址52h中寫(xiě)入分頻系數(shù)0000h;在對(duì)頻率模式配置時(shí),對(duì)地址(DADDR『6:0])41h的位6(DI[5])置為數(shù)1。在向地址中寫(xiě)數(shù)期間保持DEN、DWE的電平為高,并且在對(duì)時(shí)鐘等級(jí)配置和頻率模式配置時(shí),保持DCM的復(fù)位信號(hào)處于復(fù)位狀態(tài)。從圖5中可以看出,在輸入速度等級(jí)值時(shí),被DCLK正確采樣后,動(dòng)態(tài)重配置控制器便產(chǎn)生相對(duì)應(yīng)的引腳參數(shù),這時(shí)對(duì)DCM開(kāi)始重配置。DRDY信號(hào)反饋顯示上次的動(dòng)態(tài)重配置完畢,可以進(jìn)行下一次的重配置。在配置完成后,CLKFX_OUT是動(dòng)態(tài)重配置的輸出時(shí)鐘。通過(guò)ChipScope的實(shí)際在線采集,其動(dòng)態(tài)重配置后的時(shí)鐘頻率CLKFX_OUT符合預(yù)期重配置結(jié)果。
系統(tǒng)時(shí)延和相移都默認(rèn)設(shè)置為零,經(jīng)實(shí)際測(cè)試,整個(gè)動(dòng)態(tài)變頻過(guò)程最多只需要20個(gè)DCLK周期就可以完成,DCLK采用的是40 MHz,所以只需要不到1μs的時(shí)間便可對(duì)DCM重配置完畢,體現(xiàn)了系統(tǒng)很強(qiáng)的實(shí)時(shí)性。
4 兩種DCM配置方法的分析比較
對(duì)于該系統(tǒng)而言,若想通過(guò)靜態(tài)配置來(lái)產(chǎn)生300 MHz、200 MHz、100 MHz、50 MHz的輸出時(shí)鐘頻率,由于300 MHz是高頻模式,而200 MHz、100 MHz、50 MHz的時(shí)鐘是低頻模式。為得到這幾種時(shí)鐘頻率,則需要兩個(gè)DCM來(lái)實(shí)現(xiàn),一個(gè)采用低頻模式,另一個(gè)采用高頻模式,通過(guò)DCM事先設(shè)定好的倍頻和分頻來(lái)實(shí)現(xiàn),并且還需要根據(jù)輸入數(shù)據(jù)頻率的不同來(lái)選擇對(duì)應(yīng)的時(shí)鐘頻率。這種方法靈活性差,并且在數(shù)據(jù)分時(shí)復(fù)用處理時(shí)還需要根據(jù)輸入時(shí)鐘頻率的情況進(jìn)行時(shí)鐘控制和選擇,其可調(diào)節(jié)能力非常的弱,并且耗費(fèi)的資源較多,在數(shù)據(jù)處理的分時(shí)復(fù)用時(shí)會(huì)有時(shí)鐘閑置的情況,不利于系統(tǒng)節(jié)能的要求。此外對(duì)系統(tǒng)時(shí)鐘的控制,其時(shí)鐘頻率穩(wěn)定性較差,且時(shí)鐘的質(zhì)量較差。
通過(guò)DCM重配置生成的時(shí)鐘頻率,可以按需要成比例地調(diào)節(jié),不必對(duì)時(shí)鐘的控制和選擇便可滿(mǎn)足實(shí)際的需要,系統(tǒng)具體需要什么樣的時(shí)鐘頻率便產(chǎn)生對(duì)應(yīng)的時(shí)鐘,這對(duì)于有多種時(shí)鐘頻率的產(chǎn)生更具有重要的實(shí)際意義,并且可以通過(guò)發(fā)送指令來(lái)改變時(shí)鐘頻率的相位情況,方便易操作。通過(guò)DCM的動(dòng)態(tài)重配置,可以實(shí)現(xiàn)對(duì)FPGA資源的利用較少,資源的利用少有利于系統(tǒng)的節(jié)能,這對(duì)于星載系統(tǒng)而言是具有重要的實(shí)際意義。目前該系統(tǒng)已應(yīng)用于某星載系統(tǒng),其運(yùn)行狀態(tài)穩(wěn)定且良好,具有較強(qiáng)的實(shí)時(shí)性和靈活性。
5 結(jié)束語(yǔ)
動(dòng)態(tài)重配置DCM在FPGA電路設(shè)計(jì)領(lǐng)域有著廣泛的應(yīng)用,文中系統(tǒng)介紹了基于Virtex-4的DCM動(dòng)態(tài)重配置設(shè)計(jì)方案,給出了一個(gè)在工程中可以廣泛應(yīng)用的實(shí)際系統(tǒng)實(shí)例。對(duì)該動(dòng)態(tài)重配置系統(tǒng)在不同輸入時(shí)鐘等級(jí)值下的輸出時(shí)鐘信號(hào)頻率進(jìn)行了在線采集測(cè)試,信號(hào)的波形和頻率達(dá)到系統(tǒng)要求的性能指標(biāo),并且對(duì)其性能做出了比較分析。
評(píng)論