摘 要: 從電路實(shí)現(xiàn)和降低功耗的角度出發(fā),優(yōu)化并改進(jìn)了梳狀濾波器結(jié)構(gòu),同時(shí)設(shè)計(jì)了FIR補(bǔ)償濾波器對(duì)其通帶衰減進(jìn)行補(bǔ)償,通過合理的硬件電路安排來節(jié)省面積、提高速度,最終完成了高階∑△ADC中的抽取濾波器的設(shè)計(jì)。經(jīng)過Matlab仿真,該濾波器阻帶衰減為-65dB,通帶紋波為±0.05dB,過渡帶為0.454fs~0.583fs,經(jīng)過VerilogXL和系統(tǒng)驗(yàn)證,該濾波器完全滿足 ∑△ADC的系統(tǒng)要求。
關(guān)鍵詞: 梳狀濾波器;ADC;有限沖激響應(yīng);進(jìn)位保留加法器
?
近年來,∑△ADC在高分辨率、中低速應(yīng)用場(chǎng)合,特別是高音質(zhì)數(shù)字音頻處理領(lǐng)域中的應(yīng)用已經(jīng)十分普遍。這種普遍應(yīng)用得益于∑△ADC的特點(diǎn):其中采用大規(guī)模數(shù)字電路作為抽取濾波器而降低對(duì)模擬電路的相關(guān)要求。∑△ADC由調(diào)制器和抽取濾波器組成。其中調(diào)制器決定了∑△ADC所能達(dá)到的精度,而抽取濾波器則決定了∑△ADC的面積和功耗[1]。因此設(shè)計(jì)合理的抽取濾波器不僅對(duì)ADC的整體性能有所提高,而且能夠大量節(jié)省面積,減小功耗。
本設(shè)計(jì)的目標(biāo)是16bit∑△ADC中的抽取濾波器,其中調(diào)制器的采樣頻率fS為2.8MHz,濾波器抽取比為64,通帶截止頻率為0.454fS,阻帶截止頻率為0.583fS,通帶紋波為±0.05dB,阻帶衰減為-65dB。
本文采用梳狀濾波器與補(bǔ)償濾波器級(jí)聯(lián)的結(jié)構(gòu)。若采用一級(jí)梳狀濾波,主瓣和旁瓣的衰減最多達(dá)到13.5dB,根據(jù)設(shè)計(jì)指標(biāo),要達(dá)到65dB的衰減,采用五級(jí)級(jí)聯(lián)結(jié)構(gòu)就可以滿足,最后加一級(jí)補(bǔ)償濾波器進(jìn)行降2抽取和通帶補(bǔ)償。這樣就是六級(jí)64倍抽取濾波器。
1 梳狀濾波器設(shè)計(jì)
梳狀濾波器由于不需要乘法器而成為前級(jí)濾波的首選。其結(jié)構(gòu)可以分為遞歸結(jié)構(gòu)和非遞歸結(jié)構(gòu)。遞歸結(jié)構(gòu)因?yàn)榍懊婕?jí)聯(lián)的積分器工作頻率為高采樣頻率,所以當(dāng)抽取因子M和濾波器級(jí)數(shù)n比較大時(shí)就會(huì)帶來非常大的功耗。同時(shí),由于積分器部分為IIR濾波器,存在不穩(wěn)定和溢出問題[2]。所以考慮采樣非遞歸結(jié)構(gòu)。它的傳輸函數(shù)推導(dǎo)為:
首先在時(shí)域?qū)懗龀槿V波器的輸入輸出的簡(jiǎn)單形式:
濾波器將M個(gè)輸入采樣累加起來,然后除以M,得到輸入的平均。
在Z域重寫上式:
可以用采樣率依次降2的級(jí)聯(lián)方法實(shí)現(xiàn)。這樣每級(jí)傳遞函數(shù)展開為:
可見,這是一個(gè)整系數(shù)的FIR濾波器,它只需要加法器和延時(shí)單元就可以實(shí)現(xiàn)。隨著字長(zhǎng)的增長(zhǎng),前級(jí)的濾波器雖然工作頻率高,但字長(zhǎng)短;后面的濾波器雖然字長(zhǎng)長(zhǎng),但工作頻率低,所以整體的功耗并不高[3]。通過將這種結(jié)構(gòu)進(jìn)一步改進(jìn),就得到了本設(shè)計(jì)中的濾波器結(jié)構(gòu):
由式(5)可見,改進(jìn)后的前級(jí)濾波器字長(zhǎng)進(jìn)一步縮短,最后一級(jí)濾波器的字長(zhǎng)增長(zhǎng)一位。這樣每級(jí)位數(shù)分別為4、8、12、17、24,直流增益為223,是上述標(biāo)準(zhǔn)結(jié)構(gòu)增益的1/4。這樣改的好處是高頻工作的各級(jí)位數(shù)明顯減少。位數(shù)的減少意味著加法器數(shù)量的減少,從而提高了速度,節(jié)省了面積。從圖2的仿真結(jié)果看,改進(jìn)濾波器結(jié)構(gòu)的第一旁瓣與標(biāo)準(zhǔn)結(jié)構(gòu)具有相當(dāng)?shù)乃p。只是在高頻部分略有上升,但并不影響整體性能。
經(jīng)過上面的分析,確定了合適的結(jié)構(gòu)?,F(xiàn)在考慮硬件實(shí)現(xiàn),雖然上述結(jié)構(gòu)不需要乘法器,但是需要加法器和寄存器來對(duì)數(shù)據(jù)作累加、延時(shí)和移位等操作。所以首先要選擇合適的加法器和寄存器結(jié)構(gòu)。在本設(shè)計(jì)中,考慮速度和功耗的要求,分別選擇曼徹斯特進(jìn)位鏈加法器結(jié)構(gòu)[4]和C2MOS寄存器結(jié)構(gòu)[5]。這是因?yàn)?,曼徹斯特進(jìn)位鏈加法器不僅速度快,而且它的和與進(jìn)位輸出具有近似的延時(shí),總延時(shí)與級(jí)數(shù)具有線性關(guān)系。同時(shí)單級(jí)加法器只需要22個(gè)晶體管。而C2MOS寄存器屬于動(dòng)態(tài)存儲(chǔ)器,它能在較高的工作頻率下工作而不丟失數(shù)據(jù)。相對(duì)于靜態(tài)存儲(chǔ)器,結(jié)構(gòu)簡(jiǎn)單,能夠節(jié)省大量面積。
每級(jí)串行加法器的位數(shù)按照如下公式增長(zhǎng)。其中Bin是每級(jí)的輸入位數(shù)、Bout是每級(jí)的輸出位數(shù)、N為各級(jí)的階數(shù)、M為降采樣比。
首先利用加法器和寄存器反饋連接構(gòu)成累加器,累加器的位數(shù)由上述公式給出。每級(jí)累加器的輸入端都用一組與非門控制。當(dāng)與非門的控制端為零時(shí),重新開始累加。累加后用幾組寄存器完成數(shù)據(jù)延時(shí),再接多路選擇器對(duì)數(shù)據(jù)進(jìn)行移位,即乘上不同的整數(shù)倍數(shù),然后輸入到下一級(jí)的累加器中。依次類推。
梳狀濾波器的硬件結(jié)構(gòu)如圖1(a),實(shí)現(xiàn)一級(jí)全加器需要22T(晶體管)、一位C2MOS寄存器需要8T,多路選擇器和與非門控制則隨位數(shù)而變化,總硬件消耗如表1。
?
2 補(bǔ)償濾波器設(shè)計(jì)
梳狀濾波器的最大缺陷就是通帶衰減較大,不能滿足整體濾波器通帶紋波的要求。所以需要補(bǔ)償濾波器對(duì)其進(jìn)行補(bǔ)償,以達(dá)到通帶紋波的設(shè)計(jì)要求[6]。在本設(shè)計(jì)中,要求通帶紋波為±0.05dB,即在信號(hào)帶寬內(nèi),補(bǔ)償濾波器的幅頻響應(yīng)與梳狀濾波器的幅頻響應(yīng)的乘積應(yīng)在±0.05dB之間。本設(shè)計(jì)中的補(bǔ)償濾波器不僅要對(duì)通帶補(bǔ)償,而且還要實(shí)現(xiàn)采樣率降2和增大阻帶衰減的功能。利用Matlab 7.0的Filter design &analysis tool工具進(jìn)行設(shè)計(jì),因?yàn)镕IR濾波器具有線性相位并且系數(shù)對(duì)稱,所以最終確定的補(bǔ)償濾波器為52階FIR濾波器,總共有26個(gè)系數(shù)。理想FIR濾波器的系數(shù)為無限長(zhǎng),經(jīng)過截?cái)嗪蛢?yōu)化后,各系數(shù)如表2。
?
傳輸函數(shù)為:
為完成對(duì)數(shù)據(jù)的延時(shí)存儲(chǔ)操作,同時(shí)考慮到節(jié)省功耗和面積,因此使用SRAM實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和移位。其中的存儲(chǔ)單元采用標(biāo)準(zhǔn)六管單元實(shí)現(xiàn)。濾波器為52階,前級(jí)梳狀濾波器的輸出位數(shù)為18bit,總的存儲(chǔ)容量為18×52bit。注意到系數(shù)的對(duì)稱性,于是安排每次訪問兩個(gè)對(duì)稱的存儲(chǔ)單位,每個(gè)單位存儲(chǔ)一組數(shù)據(jù)。這樣就可以減輕地址譯碼電路的復(fù)雜度,用5~26譯碼器就可以實(shí)現(xiàn)地址譯碼??紤]到其中SRAM存儲(chǔ)體的讀取操作是電路工作的關(guān)鍵,所以設(shè)計(jì)了反相器交叉耦合的靈敏放大器來加快SRAM的讀操作。設(shè)計(jì)中將濾波器的所有系數(shù)都放在ROM中,由于一共有26個(gè)系數(shù),量化以后,每個(gè)系數(shù)有13bit,為了ROM的設(shè)計(jì)方便,取4×7組單元,采用或與邏輯實(shí)現(xiàn)。
在FIR濾波器中,要用到乘法運(yùn)算。如果用一般的乘法實(shí)現(xiàn),會(huì)浪費(fèi)很多的硬件資源,并且會(huì)產(chǎn)生很大的延時(shí)。在本設(shè)計(jì)中,采用基4 Booth算法代替普通的二進(jìn)制乘法,以達(dá)到方便、快捷又省資源的目的。在進(jìn)行乘法運(yùn)算之前,將對(duì)稱的數(shù)據(jù)從SRAM中讀取出來并相加,這樣被乘數(shù)有19bit,而系數(shù)有13bit,為了方便實(shí)現(xiàn),將乘數(shù)擴(kuò)展為20bit,系數(shù)擴(kuò)展為16bit。這樣經(jīng)過Booth編碼后,得出的部分積就有8個(gè),用串行加法器相加則延時(shí)太大。考慮用CSA代替串行加法器[7],同時(shí)用兩級(jí)CSA對(duì)部分積進(jìn)行壓縮,這樣就產(chǎn)生了四個(gè)部分積,但是Booth編碼要一次檢測(cè)系數(shù)的四位,也就是在一次部分積里,對(duì)被乘數(shù)進(jìn)行兩次Booth操作。另外,為了減少CSA的使用,用一組20bit的寄存器來暫存部分積的累加結(jié)果,這樣,兩級(jí)CSA就可以循環(huán)使用了。最后使用一級(jí)22bit的超前進(jìn)位加法器,將部分積累加的結(jié)果輸出??偟挠布Y(jié)構(gòu)如圖1。
3 仿真驗(yàn)證
在Matlab中作出濾波器的頻率響應(yīng),如圖2和圖3所示。
?
由圖3可以看出,阻帶衰減為65dB,通帶紋波在±0.05dB之間。滿足設(shè)計(jì)要求。
用Verilog語言描述各模塊功能,編寫Test文件,在Cadence中利用的VerilogXL工具仿真,得到結(jié)果如圖4所示。
?
在Matlab中利用Simulink搭建五階∑△調(diào)制器以及與本設(shè)計(jì)對(duì)應(yīng)的濾波器系統(tǒng),對(duì)調(diào)制器的輸出做頻譜分析,得到SNR為108.13dB,有效位數(shù)為17.67bit,再對(duì)濾波器的輸出做頻譜分析,結(jié)果如圖5??傻肧NR為99.27dB,有效位數(shù)為16.20bit,最后的輸出仍然高于16bit的精度,滿足設(shè)計(jì)要求。
?
本文在對(duì)抽取濾波器的結(jié)構(gòu)進(jìn)行優(yōu)化和改進(jìn)的基礎(chǔ)上,從節(jié)省面積和降低功耗的角度出發(fā),合理安排硬件電路,最終完成了16bit∑△ADC中的抽取濾波器的設(shè)計(jì)。經(jīng)過仿真驗(yàn)證,該濾波器系統(tǒng)穩(wěn)定,不僅能夠?qū)崿F(xiàn)對(duì)采樣率的64倍抽取,而且能夠?yàn)V除∑△ADC信號(hào)帶寬外的噪聲成分,保證整個(gè)信號(hào)帶寬的平坦和干凈。各項(xiàng)性能指標(biāo)也完全滿足設(shè)計(jì)要求。
參考文獻(xiàn)
[1] NORSWORTHY S R,SCHREIER R,TEMES G C.Delta-sigma data converters:theory,design,and simulation[M].
Wiley:IEEE Press,1996.
[2] CROCHIERE R E,RABINER L R.Multirate Digital Signal?Processing[M].Englewood Cliffs,1983.
[3] CHEN Lei,ZHAO Yuan Fu,GAO De Yuan,et al.A Modified decimation filter design for oversampled sigma delta?A/D converters[J].The 6th International Conference on?ASIC Proceedings IEEE.2005:55-58.
[4] 周潤(rùn)德譯.數(shù)字集成電路-電路、系統(tǒng)與設(shè)計(jì)(第二版)[M].北京:電子工業(yè)出版社,2004:416-420.
[5] SUZUKI Y,ODAGAWA K,T.Abe Clocked CMOS calculator circuit IEEE Journal of Solid State Circiuts[J],vol.SC-8,1973(12):462-469.
[6] ZZNJANI S M M,F(xiàn)AKHRAIE S M,SHOAEI O.A Comparative Study and Design of Decimation Filter for High-
Precision Audio Data Converters[J].Microelectronics IEEE,2005:139-143.
[7] A.Weinberger.A 4:2 Carry-Save Adder Module IBM?Technical Disclosure Bulletin[J],1981,23(6).