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