聶 偉,王天明,邱 蓉
(北京化工大學(xué) 計算機系統(tǒng)與通信實驗中心, 北京 100029)
?
改進的時鐘偏斜誤差校正方法的FPGA實現(xiàn)
聶 偉,王天明,邱 蓉
(北京化工大學(xué) 計算機系統(tǒng)與通信實驗中心, 北京 100029)
利用改進的完美重構(gòu)方法對多A/D采樣系統(tǒng)的時鐘偏斜誤差校正方法進行了FPGA實現(xiàn)。采用自頂向下和模塊化的設(shè)計方法,實現(xiàn)了多路采樣數(shù)據(jù)的相位同步模塊、數(shù)據(jù)位置映射模塊、并行多相濾波器組模塊以及多路數(shù)據(jù)合成模塊。對完美重構(gòu)方法中的濾波器組運用多相分解技術(shù)將其化為并行結(jié)構(gòu)濾波器組,對輸出數(shù)據(jù)采用流水線結(jié)構(gòu)加法器組進行處理,降低了系統(tǒng)運算延遲,提高了系統(tǒng)的實時性。在MATLAB和ModelSim中進行仿真,結(jié)果表明了該實現(xiàn)的正確性和有效性。
時間交替采樣;時鐘偏斜誤差;多相分解;FPGA
在模擬信號采集中采樣速率是其重要指標。傳統(tǒng)單一A/D采樣的不足是采樣速率低,不能滿足實際需求。為提高采樣速率,現(xiàn)多采用時間交替并行采樣技術(shù),即TIADC(Time-Interleaved ADC)[1-4]。但是在多A/D采樣系統(tǒng)中,由于時鐘抖動以及A/D器件的離散性,系統(tǒng)存在時鐘相位偏斜、增益和偏置誤差,這些誤差都具有隨機性。
在這三個誤差中,增益誤差和偏置誤差只需簡單運算即可消除,而校正時鐘偏斜誤差卻比較困難[3-5]。文獻[5]提出的分數(shù)延遲濾波器法,需要過采樣,占用很多的輸入信號帶寬;文獻[6]提出了插值法,該方法運算量大,難以進行實時處理,主要用于離線校正;文獻[7]中提出完美重構(gòu)修正方法,其并行實現(xiàn)方式可帶來很高的數(shù)據(jù)處理速率;文獻[8]在完美重構(gòu)基礎(chǔ)上利用濾波器多相分解構(gòu)建濾波陣列,對數(shù)據(jù)處理速率進行了有效提高。
本文在文獻[8]的基礎(chǔ)上,在FPGA中實現(xiàn)利用改進的完美重構(gòu)方法實時校正時鐘偏斜誤差的系統(tǒng)結(jié)構(gòu)。該系統(tǒng)利用FIFO對采樣數(shù)據(jù)進行緩存及相位對齊,然后進行降速處理并對數(shù)據(jù)位置映射重置,再通過多相分解方法構(gòu)建濾波器陣列對采樣數(shù)據(jù)進行重構(gòu),最終將處理數(shù)據(jù)合成輸出。這樣不但有利于實時處理,還減少了系統(tǒng)的運算量[9]。
1.1 完美重構(gòu)校正方法原理
時間交替并行采樣對任意波形的采樣示意圖如圖1所示。理想的多A/D器件采樣時鐘之間有相同的頻率和固定的等間隔相差,但實際采樣過程中,由于時鐘抖動、傳輸路徑延遲等因素使得各個通道間相對理想相差存在著一定的相位偏離,從而產(chǎn)生時鐘偏斜差。
圖1 任意波形時間交替采樣示意圖
時鐘相位偏差會引起雜散頻譜,經(jīng)采樣后的輸出信號頻域表示為:
(1)
圖2 完美重構(gòu)校正方法原理框圖
如圖2所示,帶限模擬信號經(jīng)多路A/D并行采樣后將采樣數(shù)據(jù)輸入到濾波器組Fm(z)中,將每路輸出數(shù)據(jù)累加就可以得到重構(gòu)數(shù)據(jù)。圖2中,F(xiàn)m(z)可表示為:
(2)
其中,m=0,1,...,M-1,fm[k]是其濾波器系數(shù),可以表示為:
(3)
1.2 改進的完美重構(gòu)校正方法
為了使完美重構(gòu)校正方法在數(shù)字電路實現(xiàn)高速實時的數(shù)據(jù)校正,把圖2中的濾波器組用多相結(jié)構(gòu)實現(xiàn)??砂袴m(z)表示為:
(4)
圖3 重構(gòu)濾波器的多相實現(xiàn)結(jié)構(gòu)
如圖3所示為濾波器組的多相實現(xiàn)結(jié)構(gòu)。
它將每一路的重構(gòu)濾波器分解為若干子濾波器,其中Fkm(z)就是Fm(z)的多相分量。圖3中的F(b)(z)是m×m矩陣,可表示為:
(5)
最終的輸出可表示為:
Y(z)=F(b)(z)X(z)
(6)
其中,
X(z)=[X0(z)X1(z)X2(z)...Xm(z)]T
(7)
Y(z)=[Y0(z)Y1(z)Y2(z)...Ym(z)]T
(8)
這里的X(z)是該系統(tǒng)的輸入序列,Y(z)是X(z)經(jīng)過多相結(jié)構(gòu)濾波器組校正后的輸出序列。
2.1 校正系統(tǒng)的FPGA設(shè)計實現(xiàn)
本設(shè)計選用Altera公司CycloneII系列的EP2C5芯片,采用原理圖與VHDL(Very-High-Speed,Integrated Circuit Hardware Description Language)進行模塊化設(shè)計。軟件環(huán)境采用QuartusII,仿真工具為Modelsim。
利用前面介紹的改進方法在FPGA中進行設(shè)計,根據(jù)現(xiàn)有實驗條件,設(shè)A/D通道數(shù)為4路,每路A/D轉(zhuǎn)換精度為12位,每個通道的采樣速率為50 MHz,系統(tǒng)最高采樣頻率200 MHz,輸入信號頻率為12.5 MHz。
根據(jù)參數(shù)及數(shù)據(jù)降速要求,現(xiàn)給出如圖4所示的時間交替并行采樣時鐘偏斜誤差校正電路的總體設(shè)計框圖。
圖4 時間交替并行采樣系統(tǒng)校正電路總體設(shè)計框圖
如圖4所示,帶限模擬信號xin(t)同時輸入到4個采樣時鐘相位依次相差90°的A/D進行采樣,然后將A/D的輸出數(shù)據(jù)x0[n]、x1[n]、x2[n]、x3[n]送入FPGA進行數(shù)字處理。FPGA主要由數(shù)據(jù)緩存同步模塊、數(shù)據(jù)映射模塊、多相濾波器組、數(shù)據(jù)合路模塊以及時鐘產(chǎn)生模塊組成。
2.2 校正系統(tǒng)各模塊詳細設(shè)計
2.2.1 數(shù)據(jù)緩存同步模塊的設(shè)計
圖5 四個通道寫時鐘的控制結(jié)構(gòu)圖
在該模塊中采用四個FIFO來完成數(shù)據(jù)緩存和數(shù)據(jù)相位對齊,其中每個FIFO的寫時鐘與它對應(yīng)通道的采樣時鐘一致。如圖5所示,WEN為寫使能信號,Wclk0、Wclk1、Wclk2、Wclk3分別是四個采樣通道對應(yīng)的寫時鐘,為使從4個FIFO中讀出的數(shù)據(jù)同步并且保證第一個數(shù)據(jù)是從FIFO0中讀出的,故在寫使能信號有效之后用Wclk3作為同步的讀時鐘。
2.2.2 數(shù)據(jù)映射模塊設(shè)計
此模塊主要完成串并轉(zhuǎn)換及數(shù)據(jù)順序重置。串并轉(zhuǎn)換的本質(zhì)就是移位寄存并行讀出的過程,該模塊實現(xiàn)比較簡單,每個通道只需要利用4個D觸發(fā)器外加計數(shù)器即可。需要注意的是,輸出數(shù)據(jù)是按照采樣的先后順序進行合成,所以第一路輸入數(shù)據(jù)經(jīng)串并轉(zhuǎn)換后四路輸出數(shù)據(jù)應(yīng)為x0,x4,x8,x12;同理,得到其他三個通道共16路數(shù)據(jù)。
2.2.3 多相濾波器組的設(shè)計
該模塊設(shè)計的重點是多相濾波器的參數(shù),其電路實現(xiàn)比較簡單。根據(jù)提供的時鐘相位誤差信息,在MATLAB中仿真確定濾波器的階數(shù)為64。
利用式(3)可以計算出4個A/D通道每個通道對應(yīng)的濾波器組的系數(shù),對這16個濾波器的系數(shù)進行多相分解,得到16×16=256個子濾波器的系數(shù),每個系數(shù)不為零的子濾波器的階數(shù)都是4。
此16×16的濾波器陣列由式(5)可以表示為:
(9)
其中,每個元素Fj,i(z)代表一個子濾波器,可以由濾波器組里的Fi(z)計算得到,即:
(10)
(11)
式(10)中,F(xiàn)i(z)代表每個通道的重構(gòu)濾波器,式(11)中,fi[j+16·m]為濾波器系數(shù),可以根據(jù)式(3)進行計算。依照式(6),濾波校正過程可表示為:
(12)
其中,Xi(z)表示16路輸入數(shù)據(jù),Yi(z)表示濾波后的16路輸出數(shù)據(jù)。
分析可得,這個16×16的濾波器陣列只有3/4的濾波器系數(shù)不為零,故只需在FPGA中實現(xiàn)192個子濾波器即可。
依照式(12),在圖6中給出了校正濾波器陣列數(shù)據(jù)流的示意圖,在FPGA中易于實現(xiàn)。每個輸出數(shù)據(jù)流由16個濾波器的輸出相加得到,在FPGA中用流水線型加法器組實現(xiàn)16輸入加法。
圖6 誤差校正模塊結(jié)構(gòu)圖
2.2.4 數(shù)據(jù)合路模塊的設(shè)計
數(shù)據(jù)合路模塊的功能是實現(xiàn)16路12 bit的數(shù)據(jù)到1路12 bit的數(shù)據(jù)的轉(zhuǎn)換。該模塊工作輸入時鐘為12.5 MHz。由于最終16路數(shù)據(jù)串行輸出需要200 MHz時鐘,故通過PLL對系統(tǒng)輸入時鐘倍頻,再用一個4 bit計數(shù)器作為選通信號來完成合路。
3.1 數(shù)據(jù)緩存同步模塊仿真
采用圖4結(jié)構(gòu),產(chǎn)生4個相位相差90°的輸入時鐘,每路輸入數(shù)據(jù)均為兩個12 bit數(shù)循環(huán)輸入。在QuartusII環(huán)境下進行VHDL實現(xiàn),在Modelsim中對該模塊進行仿真,得到圖7所示仿真波形。
圖7 數(shù)據(jù)緩存模塊仿真圖
圖7中,4路數(shù)據(jù)data0~data3分別按照各自對應(yīng)通道的時鐘wclk0~wclk3進行輸入操作,每個通道的時鐘相位依次相差90°,4路輸出數(shù)據(jù)q0、q1、q2、q3是在同一個讀時鐘rclk下讀取輸出,它們之間無相位差,rclk與wclk3頻率相位一致,可以看出該模塊程序?qū)崿F(xiàn)了緩存同步功能,達到設(shè)計要求。
3.2 數(shù)據(jù)合路模塊仿真
此模塊需要把誤差處理模塊中的并行數(shù)據(jù)按照順序高速串行輸出,按照前面設(shè)計要求,在一個輸入數(shù)據(jù)周期內(nèi)串行輸出16個數(shù)據(jù)。用VHDL語言描述數(shù)據(jù)合路模塊并進行仿真,其結(jié)果如圖8所示。
圖8 數(shù)據(jù)合路模塊仿真波形圖
圖8中,clk_in為輸出時鐘,它是經(jīng)過對系統(tǒng)輸入時鐘倍頻得到的,cnt是為了方便觀察引出的計數(shù)端口,輸出端y_out將16路并行輸入數(shù)據(jù)y0~y15進行了串行輸出,輸出16個數(shù)據(jù)所需的時間與輸入端單個數(shù)據(jù)周期相同,輸入數(shù)據(jù)順序與輸出數(shù)據(jù)順序一致,說明該模塊設(shè)計正確。
3.3 多相濾波器組MATLAB與Modelsim聯(lián)合仿真
由于在ModelSim中只能進行時域數(shù)據(jù)波形仿真,無法看到頻域變化,故采用ModelSim和MATLAB聯(lián)合仿真。設(shè)置4個通道時鐘偏斜誤差分別為[0,-0.01,0.02,0.01]Ts,[0,-0.03,0.03,0.02]Ts,[0,-0.05,0.05,0.05]Ts三種情況。
在用VHDL實現(xiàn)了誤差校正模塊后,在Modelsim中對該模塊進行仿真。按照仿真步驟,將MATLAB生成的正弦波采樣數(shù)據(jù)送給ModelSim,得到未經(jīng)校正的輸入信號和校正后的輸出信號,截圖如圖9所示。
圖9 ModelSim仿真波形圖
從圖9中可以看到,經(jīng)過該模塊輸出的正弦波相對于輸入波形只是增加了延時,而輸出的幅值基本不變,這是由濾波器引起的。在此圖中從時域波形不能夠看出該模塊的校準性能。為了驗證濾波器的校準功能,將輸出信號導(dǎo)入到MATLAB中進行測試,得到校準前后信號頻譜如圖10~12所示。
圖10 誤差為[0,-0.01,0.02,0.01]Ts時優(yōu)化校正頻譜對比
圖11 誤差為[0,-0.03,0.03,0.02]Ts時優(yōu)化校正頻譜對比
圖12 誤差為[0,-0.05,0.05,0.05]Ts時優(yōu)化校正頻譜對比
從校正前和校正后的頻譜可以看出,時間偏斜誤差越大,雜散頻譜幅度越高,此時該校正系統(tǒng)依舊能夠濾除雜散頻譜,保證采樣的均勻性。
本文對改進的時間交替并行采樣時鐘偏斜誤差校正方法進行FPGA設(shè)計并實現(xiàn),在Modelsim中仿真表明各模塊均能達到相應(yīng)功能要求;在MATLAB仿真測試中可以看到,在不同時鐘偏斜誤差參數(shù)下,未濾波時相應(yīng)雜散頻點幅度隨誤差參數(shù)變化,誤差越大,雜散頻譜幅度越大,而經(jīng)多相濾波陣列后均能夠有效濾除雜散頻譜,說明該方法正確有效,可以應(yīng)用于需要多A/D采樣的儀器前端。
[1] 黃武煌,王厚軍,曾浩. 一種超高速并行采樣技術(shù)的研究與實現(xiàn)[J]. 電子測量與儀器學(xué)報,2009(8):67-71.
[2] BLACK W C, HODGES D. Time interleaved converter arrays[J]. IEEE Journal of Solid-State Circuits, 1980, 15(6):14-15.
[3] 潘卉青. 高速TIADC并行采樣系統(tǒng)綜合校正技術(shù)研究[D]. 成都:電子科技大學(xué), 2010.
[4] HUANG L, LIN B, ZHANG S. A digital-background TIADC calibration architecture and a fast calibration algorithm for timing-error mismatch[C]. ASICON '07. 7th International Conference on. IEEE, 2007:253-256.
[5] 李玉生. 超高速并行采樣模擬/數(shù)字轉(zhuǎn)換的研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué), 2007.
[6] 王吉林,郭鋼,趙力. 高速數(shù)字示波器中的插值算法的研究[J]. 電子器件,2009,32(3):627-630.
[7] 秦國杰,劉國滿,高梅國,等. 一種時間交替ADC時間失配誤差自適應(yīng)校正方法[J]. 儀器儀表學(xué)報,2013,34(12):2730-2735.
[8] 聶偉,邱蓉. 一種TIADC系統(tǒng)時鐘偏斜誤差的全并行校正方法[J]. 實驗技術(shù)與管理,2015,32(4):47-51.
[9] 唐邵春. 基于時間并行交替技術(shù)的超高速高精度波形數(shù)字化研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué), 2012.
聶偉 (1960-),男,博士,副教授,主要研究方向: 軟件無線電、通信信號處理等。
王天明 (1990-),男,碩士研究生,主要研究方向:信號處理技術(shù)、通信系統(tǒng)設(shè)計。
邱蓉 (1991-),女,碩士研究生,主要研究方向:信號處理技術(shù)。
The realization of improved clock skew error correction method on FPGA
Nie Wei,Wang Tianming,Qiu Rong
(Computer System and Communication Laboratory, Beijing University of Chemical Technology, Beijing 100029, China)
In this paper, the clock skew error correction of multi A/D sampling system is realized by using the improved perfect reconstruction method on FPGA. Using the top-down and modular design method, phase synchronization module of multi channel sampling data, data location mapping module, parallel multi phase filter bank module and multi-channel data synthesis module are realized. For the perfect reconstruction method, the multi phase decomposition technique is used to change the filter banks to parallel structure filter bank. The output data is processed by the pipeline structure adder. It can reduce the system operation delay and improve the real-time performance of the system. The correctness and effectiveness of the implementation are shown in the simulation results of ModelSim and MATLAB.
time interleaved sampling; clock skew error; polyphase decomposition;FPGA
TN74
A
1674-7720(2016)07- 0083- 04
聶偉,王天明,邱蓉. 改進的時鐘偏斜誤差校正方法的FPGA實現(xiàn)[J].微型機與應(yīng)用,2016,35(7):83-86.
2015-12-07)