聶 偉,王天明,邱 蓉
(北京化工大學(xué) 計(jì)算機(jī)系統(tǒng)與通信實(shí)驗(yàn)中心, 北京 100029)
?
改進(jìn)的時(shí)鐘偏斜誤差校正方法的FPGA實(shí)現(xiàn)
聶 偉,王天明,邱 蓉
(北京化工大學(xué) 計(jì)算機(jī)系統(tǒng)與通信實(shí)驗(yàn)中心, 北京 100029)
利用改進(jìn)的完美重構(gòu)方法對(duì)多A/D采樣系統(tǒng)的時(shí)鐘偏斜誤差校正方法進(jìn)行了FPGA實(shí)現(xiàn)。采用自頂向下和模塊化的設(shè)計(jì)方法,實(shí)現(xiàn)了多路采樣數(shù)據(jù)的相位同步模塊、數(shù)據(jù)位置映射模塊、并行多相濾波器組模塊以及多路數(shù)據(jù)合成模塊。對(duì)完美重構(gòu)方法中的濾波器組運(yùn)用多相分解技術(shù)將其化為并行結(jié)構(gòu)濾波器組,對(duì)輸出數(shù)據(jù)采用流水線結(jié)構(gòu)加法器組進(jìn)行處理,降低了系統(tǒng)運(yùn)算延遲,提高了系統(tǒng)的實(shí)時(shí)性。在MATLAB和ModelSim中進(jìn)行仿真,結(jié)果表明了該實(shí)現(xiàn)的正確性和有效性。
時(shí)間交替采樣;時(shí)鐘偏斜誤差;多相分解;FPGA
在模擬信號(hào)采集中采樣速率是其重要指標(biāo)。傳統(tǒng)單一A/D采樣的不足是采樣速率低,不能滿足實(shí)際需求。為提高采樣速率,現(xiàn)多采用時(shí)間交替并行采樣技術(shù),即TIADC(Time-Interleaved ADC)[1-4]。但是在多A/D采樣系統(tǒng)中,由于時(shí)鐘抖動(dòng)以及A/D器件的離散性,系統(tǒng)存在時(shí)鐘相位偏斜、增益和偏置誤差,這些誤差都具有隨機(jī)性。
在這三個(gè)誤差中,增益誤差和偏置誤差只需簡(jiǎn)單運(yùn)算即可消除,而校正時(shí)鐘偏斜誤差卻比較困難[3-5]。文獻(xiàn)[5]提出的分?jǐn)?shù)延遲濾波器法,需要過采樣,占用很多的輸入信號(hào)帶寬;文獻(xiàn)[6]提出了插值法,該方法運(yùn)算量大,難以進(jìn)行實(shí)時(shí)處理,主要用于離線校正;文獻(xiàn)[7]中提出完美重構(gòu)修正方法,其并行實(shí)現(xiàn)方式可帶來很高的數(shù)據(jù)處理速率;文獻(xiàn)[8]在完美重構(gòu)基礎(chǔ)上利用濾波器多相分解構(gòu)建濾波陣列,對(duì)數(shù)據(jù)處理速率進(jìn)行了有效提高。
本文在文獻(xiàn)[8]的基礎(chǔ)上,在FPGA中實(shí)現(xiàn)利用改進(jìn)的完美重構(gòu)方法實(shí)時(shí)校正時(shí)鐘偏斜誤差的系統(tǒng)結(jié)構(gòu)。該系統(tǒng)利用FIFO對(duì)采樣數(shù)據(jù)進(jìn)行緩存及相位對(duì)齊,然后進(jìn)行降速處理并對(duì)數(shù)據(jù)位置映射重置,再通過多相分解方法構(gòu)建濾波器陣列對(duì)采樣數(shù)據(jù)進(jìn)行重構(gòu),最終將處理數(shù)據(jù)合成輸出。這樣不但有利于實(shí)時(shí)處理,還減少了系統(tǒng)的運(yùn)算量[9]。
1.1 完美重構(gòu)校正方法原理
時(shí)間交替并行采樣對(duì)任意波形的采樣示意圖如圖1所示。理想的多A/D器件采樣時(shí)鐘之間有相同的頻率和固定的等間隔相差,但實(shí)際采樣過程中,由于時(shí)鐘抖動(dòng)、傳輸路徑延遲等因素使得各個(gè)通道間相對(duì)理想相差存在著一定的相位偏離,從而產(chǎn)生時(shí)鐘偏斜差。
圖1 任意波形時(shí)間交替采樣示意圖
時(shí)鐘相位偏差會(huì)引起雜散頻譜,經(jīng)采樣后的輸出信號(hào)頻域表示為:
(1)
圖2 完美重構(gòu)校正方法原理框圖
如圖2所示,帶限模擬信號(hào)經(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 改進(jìn)的完美重構(gòu)校正方法
為了使完美重構(gòu)校正方法在數(shù)字電路實(shí)現(xiàn)高速實(shí)時(shí)的數(shù)據(jù)校正,把圖2中的濾波器組用多相結(jié)構(gòu)實(shí)現(xiàn)??砂袴m(z)表示為:
(4)
圖3 重構(gòu)濾波器的多相實(shí)現(xiàn)結(jié)構(gòu)
如圖3所示為濾波器組的多相實(shí)現(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è)計(jì)實(shí)現(xiàn)
本設(shè)計(jì)選用Altera公司CycloneII系列的EP2C5芯片,采用原理圖與VHDL(Very-High-Speed,Integrated Circuit Hardware Description Language)進(jìn)行模塊化設(shè)計(jì)。軟件環(huán)境采用QuartusII,仿真工具為Modelsim。
利用前面介紹的改進(jìn)方法在FPGA中進(jìn)行設(shè)計(jì),根據(jù)現(xiàn)有實(shí)驗(yàn)條件,設(shè)A/D通道數(shù)為4路,每路A/D轉(zhuǎn)換精度為12位,每個(gè)通道的采樣速率為50 MHz,系統(tǒng)最高采樣頻率200 MHz,輸入信號(hào)頻率為12.5 MHz。
根據(jù)參數(shù)及數(shù)據(jù)降速要求,現(xiàn)給出如圖4所示的時(shí)間交替并行采樣時(shí)鐘偏斜誤差校正電路的總體設(shè)計(jì)框圖。
圖4 時(shí)間交替并行采樣系統(tǒng)校正電路總體設(shè)計(jì)框圖
如圖4所示,帶限模擬信號(hào)xin(t)同時(shí)輸入到4個(gè)采樣時(shí)鐘相位依次相差90°的A/D進(jìn)行采樣,然后將A/D的輸出數(shù)據(jù)x0[n]、x1[n]、x2[n]、x3[n]送入FPGA進(jìn)行數(shù)字處理。FPGA主要由數(shù)據(jù)緩存同步模塊、數(shù)據(jù)映射模塊、多相濾波器組、數(shù)據(jù)合路模塊以及時(shí)鐘產(chǎn)生模塊組成。
2.2 校正系統(tǒng)各模塊詳細(xì)設(shè)計(jì)
2.2.1 數(shù)據(jù)緩存同步模塊的設(shè)計(jì)
圖5 四個(gè)通道寫時(shí)鐘的控制結(jié)構(gòu)圖
在該模塊中采用四個(gè)FIFO來完成數(shù)據(jù)緩存和數(shù)據(jù)相位對(duì)齊,其中每個(gè)FIFO的寫時(shí)鐘與它對(duì)應(yīng)通道的采樣時(shí)鐘一致。如圖5所示,WEN為寫使能信號(hào),Wclk0、Wclk1、Wclk2、Wclk3分別是四個(gè)采樣通道對(duì)應(yīng)的寫時(shí)鐘,為使從4個(gè)FIFO中讀出的數(shù)據(jù)同步并且保證第一個(gè)數(shù)據(jù)是從FIFO0中讀出的,故在寫使能信號(hào)有效之后用Wclk3作為同步的讀時(shí)鐘。
2.2.2 數(shù)據(jù)映射模塊設(shè)計(jì)
此模塊主要完成串并轉(zhuǎn)換及數(shù)據(jù)順序重置。串并轉(zhuǎn)換的本質(zhì)就是移位寄存并行讀出的過程,該模塊實(shí)現(xiàn)比較簡(jiǎn)單,每個(gè)通道只需要利用4個(gè)D觸發(fā)器外加計(jì)數(shù)器即可。需要注意的是,輸出數(shù)據(jù)是按照采樣的先后順序進(jìn)行合成,所以第一路輸入數(shù)據(jù)經(jīng)串并轉(zhuǎn)換后四路輸出數(shù)據(jù)應(yīng)為x0,x4,x8,x12;同理,得到其他三個(gè)通道共16路數(shù)據(jù)。
2.2.3 多相濾波器組的設(shè)計(jì)
該模塊設(shè)計(jì)的重點(diǎn)是多相濾波器的參數(shù),其電路實(shí)現(xiàn)比較簡(jiǎn)單。根據(jù)提供的時(shí)鐘相位誤差信息,在MATLAB中仿真確定濾波器的階數(shù)為64。
利用式(3)可以計(jì)算出4個(gè)A/D通道每個(gè)通道對(duì)應(yīng)的濾波器組的系數(shù),對(duì)這16個(gè)濾波器的系數(shù)進(jìn)行多相分解,得到16×16=256個(gè)子濾波器的系數(shù),每個(gè)系數(shù)不為零的子濾波器的階數(shù)都是4。
此16×16的濾波器陣列由式(5)可以表示為:
(9)
其中,每個(gè)元素Fj,i(z)代表一個(gè)子濾波器,可以由濾波器組里的Fi(z)計(jì)算得到,即:
(10)
(11)
式(10)中,F(xiàn)i(z)代表每個(gè)通道的重構(gòu)濾波器,式(11)中,fi[j+16·m]為濾波器系數(shù),可以根據(jù)式(3)進(jìn)行計(jì)算。依照式(6),濾波校正過程可表示為:
(12)
其中,Xi(z)表示16路輸入數(shù)據(jù),Yi(z)表示濾波后的16路輸出數(shù)據(jù)。
分析可得,這個(gè)16×16的濾波器陣列只有3/4的濾波器系數(shù)不為零,故只需在FPGA中實(shí)現(xiàn)192個(gè)子濾波器即可。
依照式(12),在圖6中給出了校正濾波器陣列數(shù)據(jù)流的示意圖,在FPGA中易于實(shí)現(xiàn)。每個(gè)輸出數(shù)據(jù)流由16個(gè)濾波器的輸出相加得到,在FPGA中用流水線型加法器組實(shí)現(xiàn)16輸入加法。
圖6 誤差校正模塊結(jié)構(gòu)圖
2.2.4 數(shù)據(jù)合路模塊的設(shè)計(jì)
數(shù)據(jù)合路模塊的功能是實(shí)現(xiàn)16路12 bit的數(shù)據(jù)到1路12 bit的數(shù)據(jù)的轉(zhuǎn)換。該模塊工作輸入時(shí)鐘為12.5 MHz。由于最終16路數(shù)據(jù)串行輸出需要200 MHz時(shí)鐘,故通過PLL對(duì)系統(tǒng)輸入時(shí)鐘倍頻,再用一個(gè)4 bit計(jì)數(shù)器作為選通信號(hào)來完成合路。
3.1 數(shù)據(jù)緩存同步模塊仿真
采用圖4結(jié)構(gòu),產(chǎn)生4個(gè)相位相差90°的輸入時(shí)鐘,每路輸入數(shù)據(jù)均為兩個(gè)12 bit數(shù)循環(huán)輸入。在QuartusII環(huán)境下進(jìn)行VHDL實(shí)現(xiàn),在Modelsim中對(duì)該模塊進(jìn)行仿真,得到圖7所示仿真波形。
圖7 數(shù)據(jù)緩存模塊仿真圖
圖7中,4路數(shù)據(jù)data0~data3分別按照各自對(duì)應(yīng)通道的時(shí)鐘wclk0~wclk3進(jìn)行輸入操作,每個(gè)通道的時(shí)鐘相位依次相差90°,4路輸出數(shù)據(jù)q0、q1、q2、q3是在同一個(gè)讀時(shí)鐘rclk下讀取輸出,它們之間無相位差,rclk與wclk3頻率相位一致,可以看出該模塊程序?qū)崿F(xiàn)了緩存同步功能,達(dá)到設(shè)計(jì)要求。
3.2 數(shù)據(jù)合路模塊仿真
此模塊需要把誤差處理模塊中的并行數(shù)據(jù)按照順序高速串行輸出,按照前面設(shè)計(jì)要求,在一個(gè)輸入數(shù)據(jù)周期內(nèi)串行輸出16個(gè)數(shù)據(jù)。用VHDL語言描述數(shù)據(jù)合路模塊并進(jìn)行仿真,其結(jié)果如圖8所示。
圖8 數(shù)據(jù)合路模塊仿真波形圖
圖8中,clk_in為輸出時(shí)鐘,它是經(jīng)過對(duì)系統(tǒng)輸入時(shí)鐘倍頻得到的,cnt是為了方便觀察引出的計(jì)數(shù)端口,輸出端y_out將16路并行輸入數(shù)據(jù)y0~y15進(jìn)行了串行輸出,輸出16個(gè)數(shù)據(jù)所需的時(shí)間與輸入端單個(gè)數(shù)據(jù)周期相同,輸入數(shù)據(jù)順序與輸出數(shù)據(jù)順序一致,說明該模塊設(shè)計(jì)正確。
3.3 多相濾波器組MATLAB與Modelsim聯(lián)合仿真
由于在ModelSim中只能進(jìn)行時(shí)域數(shù)據(jù)波形仿真,無法看到頻域變化,故采用ModelSim和MATLAB聯(lián)合仿真。設(shè)置4個(gè)通道時(shí)鐘偏斜誤差分別為[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實(shí)現(xiàn)了誤差校正模塊后,在Modelsim中對(duì)該模塊進(jìn)行仿真。按照仿真步驟,將MATLAB生成的正弦波采樣數(shù)據(jù)送給ModelSim,得到未經(jīng)校正的輸入信號(hào)和校正后的輸出信號(hào),截圖如圖9所示。
圖9 ModelSim仿真波形圖
從圖9中可以看到,經(jīng)過該模塊輸出的正弦波相對(duì)于輸入波形只是增加了延時(shí),而輸出的幅值基本不變,這是由濾波器引起的。在此圖中從時(shí)域波形不能夠看出該模塊的校準(zhǔn)性能。為了驗(yàn)證濾波器的校準(zhǔn)功能,將輸出信號(hào)導(dǎo)入到MATLAB中進(jìn)行測(cè)試,得到校準(zhǔn)前后信號(hào)頻譜如圖10~12所示。
圖10 誤差為[0,-0.01,0.02,0.01]Ts時(shí)優(yōu)化校正頻譜對(duì)比
圖11 誤差為[0,-0.03,0.03,0.02]Ts時(shí)優(yōu)化校正頻譜對(duì)比
圖12 誤差為[0,-0.05,0.05,0.05]Ts時(shí)優(yōu)化校正頻譜對(duì)比
從校正前和校正后的頻譜可以看出,時(shí)間偏斜誤差越大,雜散頻譜幅度越高,此時(shí)該校正系統(tǒng)依舊能夠?yàn)V除雜散頻譜,保證采樣的均勻性。
本文對(duì)改進(jìn)的時(shí)間交替并行采樣時(shí)鐘偏斜誤差校正方法進(jìn)行FPGA設(shè)計(jì)并實(shí)現(xiàn),在Modelsim中仿真表明各模塊均能達(dá)到相應(yīng)功能要求;在MATLAB仿真測(cè)試中可以看到,在不同時(shí)鐘偏斜誤差參數(shù)下,未濾波時(shí)相應(yīng)雜散頻點(diǎn)幅度隨誤差參數(shù)變化,誤差越大,雜散頻譜幅度越大,而經(jīng)多相濾波陣列后均能夠有效濾除雜散頻譜,說明該方法正確有效,可以應(yīng)用于需要多A/D采樣的儀器前端。
[1] 黃武煌,王厚軍,曾浩. 一種超高速并行采樣技術(shù)的研究與實(shí)現(xiàn)[J]. 電子測(cè)量與儀器學(xué)報(bào),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] 秦國杰,劉國滿,高梅國,等. 一種時(shí)間交替ADC時(shí)間失配誤差自適應(yīng)校正方法[J]. 儀器儀表學(xué)報(bào),2013,34(12):2730-2735.
[8] 聶偉,邱蓉. 一種TIADC系統(tǒng)時(shí)鐘偏斜誤差的全并行校正方法[J]. 實(shí)驗(yàn)技術(shù)與管理,2015,32(4):47-51.
[9] 唐邵春. 基于時(shí)間并行交替技術(shù)的超高速高精度波形數(shù)字化研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué), 2012.
聶偉 (1960-),男,博士,副教授,主要研究方向: 軟件無線電、通信信號(hào)處理等。
王天明 (1990-),男,碩士研究生,主要研究方向:信號(hào)處理技術(shù)、通信系統(tǒng)設(shè)計(jì)。
邱蓉 (1991-),女,碩士研究生,主要研究方向:信號(hào)處理技術(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
聶偉,王天明,邱蓉. 改進(jìn)的時(shí)鐘偏斜誤差校正方法的FPGA實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2016,35(7):83-86.
2015-12-07)