Virtex-5中動態(tài)DCM的設(shè)計方法
1 DCM的工作原理
在Virtex-5中,DCM進(jìn)行升級組合,形成了CMT(Clock Management Technology,時鐘管理技術(shù))模塊。CMT模塊提供了非常靈活的、高性能的時鐘,改善了時鐘穩(wěn)定性。每一個CMT模塊包含2個DCM(Digital ClockManager,數(shù)字時鐘管理器)和1個PLL(Phase-LockedLoop,鎖相環(huán)),這里主要討論的是DCM的應(yīng)用。DCM的原型分為DCM_BASE、DCM_PS和DCM_ADV三種,功能依次增強(qiáng)。DCM_BASE只具有基本的時鐘矯正、頻率綜合功能;DCM_PS增加了相位偏移功能;DCM_ADV又增加了動態(tài)重配置功能。DCM_ADV的引腳圖如圖1所示。
1.1 時鐘矯正
DCM包含了一個時鐘鎖定環(huán)(DLL),通過矯正輸入時鐘和輸出時鐘的時間延遲,用來完全去掉時鐘分布延遲。DLL包含延遲單元和控制邏輯。輸入時鐘驅(qū)動一串延遲單元,每個延遲單元的輸出代表輸入時鐘的不同延遲點??刂七壿嫲艘粋€相位檢測器和一個延遲鏈路選擇器。相位檢測器比較輸入時鐘(CLKIN)和反饋時鐘(CLKFB),并控制延遲鏈路選擇器,從本質(zhì)上增加輸出時鐘(CLKOUT)的延遲,直到CLKIN和CLKFB完全吻合。
1.2 頻率綜合
DCM提供了2種雙倍頻頻率(即CLK2X和CLK2X180)的獨立輸出,以及1個對輸入時鐘固定分頻比的時鐘輸出(CLKDV);另外,還提供了一個對輸入時鐘分頻加倍頻的復(fù)合時鐘輸出。用戶可以定義任意的(固定范圍內(nèi))倍頻比M和分頻比D。如果數(shù)值計算上存在可能,內(nèi)部的計算器會自動做出適當(dāng)?shù)倪x擇讓輸出時鐘邊沿和輸入時鐘相吻合。比如,若M=9并且D=5,則復(fù)合頻率輸出是輸入時鐘的1.8倍,并且每5個輸入周期或者每9個輸出周期時間,輸出上升沿與輸入上升沿同步一次。
1.3 相位偏移
DCM有2種相移:一種是固定粗調(diào)相移,另一種是細(xì)調(diào)相移。固定粗調(diào)相移包括90、180、270。相對于CLKO,分別產(chǎn)生了CLK90、CLK180、CLK270時鐘輸出;相對于CLK2X和CLKFX,則只產(chǎn)生了CLK2X180和CLKFX180時鐘輸出。細(xì)調(diào)相移又分為4種模式:固定的,正相可變的,中心可變的和直接模式。細(xì)調(diào)相移是在粗調(diào)的基礎(chǔ)上進(jìn)行的。在固定模式下,就是要配置一個固定的相移量,并且相移量要是1/256時鐘的整數(shù)倍。在正相可變和中心可變的模式下,相位可以動態(tài)重復(fù)地向前或者向后移動,移動步長是時鐘的1/256。在直接模式下,根據(jù)DCM_TAP的數(shù)值,相位能夠動態(tài)地、相對地向前或者向后移動。
1.4 動態(tài)重配置
通過一組數(shù)據(jù)總線,在不改變其他設(shè)備的情況下,改變DCM的屬性。用于動態(tài)重配置DCM功能的引腳有:輸入引腳DADDR[6:0],DI[15:0],DWE,DEN和DCLK;輸出引腳DO[15:0]和DRDY。動態(tài)重配置可以實現(xiàn)DCM的不同相移,根據(jù)目前的配置設(shè)定,可以改變乘數(shù)(M)和分?jǐn)?shù)(D)。
DCM的動態(tài)重配置功能是通過動態(tài)重配置引腳(Dynamic Reconfiguration Ports,DRP)完成的,不僅可以配置DCM,而且可以配置FPGA的其他邏輯。動態(tài)重配置邏輯塊的重配置流程如圖2所示。
對于Virtex-5的DCM,乘數(shù)(M)和除數(shù)(D)的值是通過DRP往地址50h寫數(shù)來實現(xiàn)的。M的值放在16位DRP控制字的高8位,D的值放在低8位。在寫控制字的過程中,DCM必須保持Reset狀態(tài)。地址41h的位3(DI[2])是用來設(shè)置DFS的頻率模式的,0是低頻工作模式,1是高頻工作模式;地址51h的位3和位4(DI[3:2])是用來設(shè)置DFS的頻率模式的,00是低頻模式,11是高頻模式;地址00h用來存儲DCM的默認(rèn)輸出狀態(tài)。
2 動態(tài)DCM的原理和設(shè)計
動態(tài)DCM是在DCM特性的基礎(chǔ)上進(jìn)行的應(yīng)用設(shè)計。大致可以分為2種:一種是在DCM_BS和DCM_PS基礎(chǔ)上設(shè)計的,帶有反饋回路的DCM;另一種是在DCM_ADV基礎(chǔ)上設(shè)計的,反饋回路和重配置接口相配合的設(shè)計應(yīng)用。
2.1 反饋回路的設(shè)計
帶反饋回路的動態(tài)DCM,主要是針對DCM_BS和DCM_PS設(shè)計的。由于這兩種DCM不具有可重配置功能,因此在輸入時鐘變化范圍超過了最大允許變化范圍時,必須進(jìn)行手動復(fù)位。如果能夠在重配置功能上引入一個反饋回路,就可以極大地提高DCM的動態(tài)頻率范圍,并可以實現(xiàn)DCM的失鎖自啟動。
反饋回路的工作過程是:對DCM的失鎖信號進(jìn)行處理,然后反饋給DCM,讓DCM重新鎖定。失鎖信號的處理過程分兩個方面同時進(jìn)行:一方面,采用FPGA的其他穩(wěn)定時鐘源對失鎖新號采邊沿,然后把邊沿信號整形為復(fù)位信號所要求的脈沖波形,延時一定的周期后,送到DCM的復(fù)位端,對DCM進(jìn)行復(fù)位。另一方面,對失鎖信號用穩(wěn)定的時鐘源進(jìn)行計時,計時超過3 s(可以根據(jù)應(yīng)用修改計時時間),如果失鎖信號一直有效,就產(chǎn)生一個脈沖,對DCM進(jìn)行復(fù)位,循環(huán)往復(fù),直到DCM正常工作。程序流程如圖3所示。
反饋回路的原理分析:當(dāng)DCM輸入頻率變化超出了允許的范圍后,DCM開始失鎖,此時通過穩(wěn)定的時鐘源采集DCM的失鎖信號;然后對DCM進(jìn)行復(fù)位,由于DCM中含有時鐘鎖定環(huán)路(DLL),DLL會對新的時鐘產(chǎn)生一串延遲單元,形成延遲鏈路。DLL中的相位檢測器比較輸入時鐘(CLKIN)和反饋時鐘(CLKFB),并控制延遲鏈路選擇器,選擇合適的時鐘輸出,直到CLKIN與CLKFB完全吻合,完成新一輪的鎖定。如果在時鐘鎖定的過程中,輸入時鐘再次發(fā)生變化,將會導(dǎo)致DCM無法鎖定。此時,啟動第二個進(jìn)程,對失鎖信號進(jìn)行計時,超過額定時間,就對DCM進(jìn)行復(fù)位,直到DCM正常工作。
由整個分析過程可以看出,通過增加反饋電路后,DCM可以適應(yīng)不同輸入時鐘的變化。但是輸人時鐘并不是無限可變的,DCM有高頻和低頻的區(qū)別,高頻的DCM無法適應(yīng)低頻的輸入頻率,同樣低頻的DCM也無法適應(yīng)高頻的輸入時鐘。因此,在IP核生成時,就決定了輸入頻率的變化范圍,這個范圍可以在IP核生成時的數(shù)據(jù)手冊中查到。
2.2 反饋回路與重配置接口的配合
就DCM_ADV而言,由于其具有可重配置功能,所以它本身就提供了強(qiáng)大的動態(tài)頻率變化范圍;并且在配置中可以選擇DCM的高頻和低頻屬性,因此它具有更加廣泛的頻率范圍,高、低頻都可以適應(yīng)。不僅如此,可重配置功能還可以動態(tài)地改變DCM的相位偏移和復(fù)合輸出時鐘的分頻比。但是,重配置功能的使用需要一個外部控制器對FPGA進(jìn)行配置,硬件結(jié)構(gòu)相對復(fù)雜。在不需要控制器的應(yīng)用場合,它的使用受到限制。
對于可重配置功能,在操作時要注意兩點:一是需要動態(tài)改變的CLKFX的乘數(shù)(M)和除數(shù)(D)的值要先減去1,比如希望分頻比是9/4,就需要載人M/D=8/3。二是在寫入動態(tài)控制字時,要保持DCM處于復(fù)位狀態(tài),直到控制字寫完后才釋放復(fù)位狀態(tài)。
重配置功能的寫時序如圖4所示。其中,DCLK是其他接口信號的驅(qū)動時鐘,在上升沿同步工作;DEN是其他接口的使能信號;DWE是讀/寫控制信號,如果DWE是FALSE,為讀操作,否則就是寫操作;DADDR是讀/寫地址總線;DI是數(shù)據(jù)輸入總線,只有當(dāng)DEN和DWE同時有效時數(shù)據(jù)有效,而且實際的寫操作是在DRDY返回之前的某個時刻發(fā)生的;DO是數(shù)據(jù)輸出總線;DRDY是與DEN對應(yīng)的一個信號,標(biāo)志著一個DRP操作周期的完成,DO總線數(shù)據(jù)要在DRDY有效時間內(nèi)DCLK的上升沿讀取才有效。
如果可重配置功能與反饋回路相互配合,就能實現(xiàn)功能更加完善、運(yùn)行更加穩(wěn)定的自適應(yīng)DCM。反饋回路主要完成對時鐘變化的自適應(yīng);而可重配置功能則主要完成高頻或者低頻DCM的選擇,相位偏移的控制以及復(fù)合頻率(CLKFX)的設(shè)置等。兩者相互配合,既可以降低只用重配置功能造成的復(fù)雜度,提高穩(wěn)定性,又可以彌補(bǔ)反饋回路無法實現(xiàn)的復(fù)雜時鐘管理功能。功能框圖如圖5所示。
結(jié) 語
自適應(yīng)DCM在FPGA電路設(shè)計領(lǐng)域有著廣泛的應(yīng)用,本文實現(xiàn)了帶反饋回路的多種自適應(yīng)DCM,并討論了在設(shè)計中遇到的一些關(guān)鍵性問題。仿真結(jié)果表明,本文設(shè)計的自適應(yīng)DCM符合系統(tǒng)的設(shè)計要求,并在工程實踐中取得了很好的效果。
評論