王奇 孔祥松
(中國(guó)電子科技集團(tuán)公司第十四研究所 江蘇省南京市 210039)
隨著雷達(dá)應(yīng)用中探測(cè)分辨率的要求越來越高,雷達(dá)信號(hào)帶寬隨之增大,例如在典型的SAR成像應(yīng)用中,為使分辨率達(dá)到1m,理論上信號(hào)帶寬需要達(dá)到320MHz[1]。按照奈奎斯特采樣定理[2],更高的信號(hào)帶寬要求雷達(dá)接收機(jī)具備更高的與之匹配的采樣頻率。在雷達(dá)接收機(jī)中,通常使用FPGA對(duì)ADC采集的中頻信號(hào)進(jìn)行預(yù)處理,隨著ADC采樣頻率的增加,數(shù)據(jù)接口時(shí)鐘及數(shù)據(jù)處理時(shí)鐘隨之增加。在雷達(dá)接收機(jī)中,為了簡(jiǎn)化雷達(dá)工作流程,減少信號(hào)處理時(shí)間,通常需要接收機(jī)具備多通道同步能力。多通道同步能力的實(shí)現(xiàn)一是需要接收機(jī)信號(hào)鏈路上的分頻時(shí)鐘實(shí)現(xiàn)同步,二是需要實(shí)現(xiàn)外部定時(shí)信號(hào)的穩(wěn)定采集,本質(zhì)上二者都需要實(shí)現(xiàn)跨時(shí)鐘域的穩(wěn)定同步,即信號(hào)在跨時(shí)鐘域同步時(shí)滿足建立-保持時(shí)間要求。時(shí)鐘頻率的增加使得跨時(shí)鐘域同步過程中的建立-保持時(shí)間裕量減小,為實(shí)現(xiàn)穩(wěn)定的跨時(shí)鐘域同步,需要對(duì)兩個(gè)時(shí)鐘的相對(duì)相位進(jìn)行監(jiān)測(cè)。
在FPGA中,通常采用多相時(shí)鐘的方法對(duì)時(shí)鐘間的相對(duì)相位進(jìn)行檢測(cè)。該方法通常由時(shí)鐘管理器(例如Xilinx FPGA中的MMCM)產(chǎn)生同頻率但有固定相位差的多個(gè)時(shí)鐘對(duì)目標(biāo)時(shí)鐘同時(shí)進(jìn)行采集,根據(jù)采集到的寄存器值確定時(shí)鐘間的相對(duì)相位。該檢測(cè)方法檢測(cè)時(shí)間短,但需要消耗寶貴的全局時(shí)鐘資源(時(shí)鐘管理器、BUFG等),同時(shí)受限于可產(chǎn)生的多相時(shí)鐘個(gè)數(shù),該相位監(jiān)測(cè)方法的精度通常較低。針對(duì)多相時(shí)鐘鑒相方法的不足,本論文提供了一種基于多抽頭壓控延時(shí)鏈的時(shí)鐘相位監(jiān)測(cè)方法,該方法利用FPGA中豐富的壓控延時(shí)鏈對(duì)時(shí)鐘實(shí)現(xiàn)可控延時(shí),利用延時(shí)后的時(shí)鐘對(duì)被監(jiān)測(cè)時(shí)鐘進(jìn)行采集即可實(shí)現(xiàn)時(shí)鐘間的相位監(jiān)測(cè)。在2.5ns的監(jiān)測(cè)范圍內(nèi),本論文提出的方法可實(shí)現(xiàn)78.125ps精度的相位監(jiān)測(cè),同時(shí)僅需要少量的寄存器、查找表等通用邏輯資源。
在Xilinx 7系列FPGA中,每個(gè)I/O塊均包含一個(gè)名為IDELAYE2[3]的可編程延時(shí)單元,該延時(shí)單元可對(duì)I/O端口輸入的時(shí)鐘、數(shù)據(jù)或者來自內(nèi)部邏輯的信號(hào)進(jìn)行可編程延時(shí)。如圖 1所示,IDELAYE2是一個(gè)包含64個(gè)延時(shí)單元、具有64個(gè)抽頭的壓控延時(shí)鏈,64個(gè)抽頭引出的信號(hào)通過一個(gè)高性能多路選擇器實(shí)現(xiàn)可編程延時(shí)輸出。該壓控延時(shí)鏈由校準(zhǔn)模塊IDELAYCTRLE2以輸入?yún)⒖紩r(shí)鐘為基準(zhǔn)進(jìn)行校準(zhǔn),整條延時(shí)鏈的總延時(shí)時(shí)間等于1個(gè)參考時(shí)鐘周期,因此校準(zhǔn)完成后單元延時(shí)精度為
圖1:壓控延時(shí)鏈原理簡(jiǎn)圖
ttap=Trefclk/64
參考時(shí)鐘通常為200MHz,則此時(shí)延時(shí)鏈的理論延時(shí)精度為78.125ps。由于IDELAYE2為壓控反饋延時(shí)鏈,因此對(duì)溫度、電壓等波動(dòng)具有良好的穩(wěn)定性。
由于寄生電容的存在,將延時(shí)鏈插入信號(hào)路徑會(huì)不可避免的惡化信號(hào)質(zhì)量。如圖 2所示,在600Mbps的速率下對(duì)時(shí)鐘和數(shù)據(jù)經(jīng)延時(shí)鏈后的眼圖進(jìn)行測(cè)試,測(cè)試所用數(shù)據(jù)碼型為PRBS23.測(cè)試結(jié)果表明隨著延時(shí)鏈的增長(zhǎng),IDELAYE2對(duì)數(shù)據(jù)信號(hào)的惡化較為明顯,根據(jù)Xilinx的測(cè)試結(jié)果[4],在高性能模式下單個(gè)延時(shí)單元會(huì)對(duì)數(shù)據(jù)信號(hào)增加約5ps的抖動(dòng)。與此形成鮮明對(duì)比的是,時(shí)鐘信號(hào)幾乎可以無失真地通過延時(shí)鏈,這是由于時(shí)鐘信號(hào)占空比為50%,具有理想的平衡特性,碼間干擾較小。因此利用壓控延時(shí)鏈進(jìn)行時(shí)鐘相位監(jiān)測(cè)不會(huì)對(duì)時(shí)鐘質(zhì)量造成明顯惡化。為了保證延時(shí)后的信號(hào)質(zhì)量,Xilinx提供的IDELAYE2原語僅提供了延時(shí)鏈前32個(gè)延時(shí)單元的控制接口,因而延時(shí)鏈的最大延時(shí)范圍為1/2Trefclk。
圖2:不同延時(shí)值對(duì)時(shí)鐘及數(shù)據(jù)的影響對(duì)比
時(shí)鐘相位監(jiān)測(cè)的原理如圖 3所示,將主監(jiān)測(cè)時(shí)鐘CLK1經(jīng)壓控延時(shí)鏈延時(shí)后輸出至D觸發(fā)器時(shí)鐘輸入端,將被監(jiān)測(cè)時(shí)鐘CLK2直接輸出至D觸發(fā)器的數(shù)據(jù)輸入端,延時(shí)控制邏輯對(duì)壓控延時(shí)鏈實(shí)施控制,實(shí)現(xiàn)CLK1的相位調(diào)整,判斷邏輯根據(jù)D觸發(fā)器采集到的數(shù)據(jù)記錄掃描的位置,通過調(diào)整壓控延時(shí)鏈的延時(shí)值即可精確移動(dòng)CLK1的相位,實(shí)現(xiàn)對(duì)CLK2的掃描采集。
圖3:相位監(jiān)測(cè)原理示意圖
本論文中利用壓控延時(shí)鏈對(duì)100MHz時(shí)鐘進(jìn)行延時(shí)調(diào)整,以調(diào)整后的100MHz時(shí)鐘采集400MHz時(shí)鐘實(shí)現(xiàn)二者相對(duì)相位的監(jiān)測(cè)。在FPGA中實(shí)現(xiàn)的基于壓控延時(shí)鏈的時(shí)鐘相位監(jiān)測(cè)程序原理框圖如圖 4所示,由校準(zhǔn)模塊、壓控延時(shí)鏈、延時(shí)控制模塊、采樣寄存器以及輸出編碼模塊組成。其中校準(zhǔn)模塊直接例化IDELAYCTRLE2原語實(shí)現(xiàn),在本論文的實(shí)現(xiàn)中參考時(shí)鐘頻率為200MHz,因此壓控延時(shí)鏈的延時(shí)步進(jìn)為78.125ps,最大延時(shí)范圍為2.5ns。壓控延時(shí)鏈直接例化IDELAYE2原語實(shí)現(xiàn),延時(shí)輸入來源設(shè)置為內(nèi)部邏輯輸入,信號(hào)類型設(shè)置為時(shí)鐘,延時(shí)類型需設(shè)置為可編程類型,即可通過控制接口動(dòng)態(tài)調(diào)整延時(shí)值。
圖4:相位監(jiān)測(cè)原理框圖
延時(shí)控制模塊由一個(gè)狀態(tài)機(jī)實(shí)現(xiàn)對(duì)壓控延時(shí)鏈的控制。狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖如圖 5所示,狀態(tài)機(jī)在IDLE狀態(tài)等待啟動(dòng)信號(hào),當(dāng)啟動(dòng)信號(hào)為1時(shí)進(jìn)入SET狀態(tài),狀態(tài)機(jī)在SET狀態(tài)對(duì)壓控延時(shí)鏈的延時(shí)值進(jìn)行設(shè)置,然后進(jìn)入等待狀態(tài),等待一定時(shí)間后狀態(tài)機(jī)進(jìn)入MEASURE狀態(tài),等待監(jiān)測(cè)完成信號(hào)。當(dāng)監(jiān)測(cè)完成信號(hào)為1,并且當(dāng)前延時(shí)值為31時(shí)表示所有延時(shí)值已遍歷,狀態(tài)機(jī)進(jìn)入IDLE狀態(tài)。如果監(jiān)測(cè)信號(hào)為1但當(dāng)前延時(shí)值小于31則進(jìn)入SET狀態(tài)設(shè)置下一個(gè)延時(shí)值。
圖5:控制狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖
如圖6所示,輸出編碼模塊根據(jù)采樣寄存器采集的結(jié)果進(jìn)行編碼,監(jiān)測(cè)完成后輸出特定編碼格式的監(jiān)測(cè)結(jié)果。在狀態(tài)機(jī)的MEASURE狀態(tài),輸出編碼模塊對(duì)采樣寄存器的輸出值進(jìn)行計(jì)數(shù),采樣寄存器在每個(gè)延時(shí)值對(duì)被監(jiān)測(cè)時(shí)鐘采樣N次,輸出編碼模塊對(duì)采集到的結(jié)果進(jìn)行累加。采樣結(jié)束后如果累加和為0,則表示在該延時(shí)值下監(jiān)測(cè)時(shí)鐘上升沿采樣到被監(jiān)測(cè)時(shí)鐘低電平位置,該延時(shí)值的測(cè)試結(jié)果編碼為二進(jìn)制00;累加和大于0且小于N,則表示兩個(gè)時(shí)鐘沿碰沿,該延時(shí)值的測(cè)試結(jié)果編碼為二進(jìn)制01;累加和為N則表示在該延時(shí)值下監(jiān)測(cè)時(shí)鐘上升沿采樣到被監(jiān)測(cè)時(shí)鐘高電平位置,該延時(shí)值的測(cè)試結(jié)果編碼為二進(jìn)制11。所有延時(shí)值測(cè)試完成后,32個(gè)延時(shí)值的測(cè)試結(jié)果按順序合并為64位監(jiān)測(cè)結(jié)果進(jìn)行輸出。
圖6:輸出編碼示意圖
上述設(shè)計(jì)在型號(hào)為XC7K325T-1FFG900I的FPGA上進(jìn)行了實(shí)現(xiàn),實(shí)現(xiàn)后的資源消耗統(tǒng)計(jì)如圖 7所示,該實(shí)現(xiàn)結(jié)果表明基于壓控延時(shí)鏈的相位監(jiān)測(cè)方法僅需要極少量的通用邏輯資源即可實(shí)現(xiàn),其中鎖存器使用344個(gè),約占總資源量的0.084%;使用查找表169個(gè),約在總資源量的0.083%;I/O塊使用兩個(gè),占比0.4%。
圖7:FPGA邏輯資源消耗統(tǒng)計(jì)
為驗(yàn)證上述方法的功能和性能,本論文搭建測(cè)試平臺(tái)進(jìn)行了測(cè)試。測(cè)試連接由頻標(biāo)組件產(chǎn)生100MHz及400MHz時(shí)鐘輸出至FPGA,其中400MHz時(shí)鐘為被監(jiān)測(cè)時(shí)鐘。在FPGA中采用混合時(shí)鐘管理器(MMCM)產(chǎn)生200MHz參考時(shí)鐘及100MHz監(jiān)測(cè)時(shí)鐘。相位監(jiān)測(cè)模塊輸出的監(jiān)測(cè)結(jié)果通過JTAG接口上傳至計(jì)算機(jī)進(jìn)行分析。將測(cè)試采集到的約1500個(gè)波形進(jìn)行重建分析,設(shè)置高電平的權(quán)值為2,亞穩(wěn)態(tài)的權(quán)值為1,低電平的權(quán)值為0,對(duì)波形進(jìn)行累加重建,重建后的波形如圖 8所示,測(cè)試數(shù)據(jù)很好地重建了400MHz時(shí)鐘的波形。對(duì)所測(cè)得的時(shí)鐘波形的高低電平寬度進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果如圖 9及圖 10所示,測(cè)試結(jié)果表明,時(shí)鐘波形中高電平寬度約為14.72個(gè)延時(shí)節(jié)拍,即1150ps;時(shí)鐘波形中低電平寬度約為15.25個(gè)延時(shí)節(jié)拍,即1191.4ps。
圖8:400MHz時(shí)鐘波形重建結(jié)果
圖9:400MHz時(shí)鐘高電平寬度測(cè)試結(jié)果
圖10:400MHz時(shí)鐘低電寬度平測(cè)試結(jié)果
本論文采用了FPGA中的壓控延時(shí)鏈,設(shè)計(jì)了一種低資源消耗、高精度的時(shí)鐘相位監(jiān)測(cè)方法。該方法在各邏輯資源消耗量小于0.4%的情況下,實(shí)現(xiàn)了精度為78.125ps的時(shí)鐘相位監(jiān)測(cè),可以廣泛運(yùn)用于具有多時(shí)鐘同步要求雷達(dá)接收系統(tǒng)中。