摘 要: 從電路實(shí)現(xiàn)和降低功耗的角度出發(fā),優(yōu)化并改進(jìn)了梳狀濾波器結(jié)構(gòu),同時設(shè)計了FIR補(bǔ)償濾波器對其通帶衰減進(jìn)行補(bǔ)償,通過合理的硬件電路安排來節(jié)省面積、提高速度,最終完成了高階∑△ADC中的抽取濾波器的設(shè)計。經(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)用場合,特別是高音質(zhì)數(shù)字音頻處理領(lǐng)域中的應(yīng)用已經(jīng)十分普遍。這種普遍應(yīng)用得益于∑△ADC的特點(diǎn):其中采用大規(guī)模數(shù)字電路作為抽取濾波器而降低對模擬電路的相關(guān)要求。∑△ADC由調(diào)制器和抽取濾波器組成。其中調(diào)制器決定了∑△ADC所能達(dá)到的精度,而抽取濾波器則決定了∑△ADC的面積和功耗[1]。因此設(shè)計合理的抽取濾波器不僅對ADC的整體性能有所提高,而且能夠大量節(jié)省面積,減小功耗。
本設(shè)計的目標(biāo)是16bit∑△ADC中的抽取濾波器,其中調(diào)制器的采樣頻率fS為2.8MHz,濾波器抽取比為64,通帶截止頻率為0.454fS,阻帶截止頻率為0.583fS,通帶紋波為±0.05dB,阻帶衰減為-65dB。
本文采用梳狀濾波器與補(bǔ)償濾波器級聯(lián)的結(jié)構(gòu)。若采用一級梳狀濾波,主瓣和旁瓣的衰減最多達(dá)到13.5dB,根據(jù)設(shè)計指標(biāo),要達(dá)到65dB的衰減,采用五級級聯(lián)結(jié)構(gòu)就可以滿足,最后加一級補(bǔ)償濾波器進(jìn)行降2抽取和通帶補(bǔ)償。這樣就是六級64倍抽取濾波器。
1 梳狀濾波器設(shè)計
梳狀濾波器由于不需要乘法器而成為前級濾波的首選。其結(jié)構(gòu)可以分為遞歸結(jié)構(gòu)和非遞歸結(jié)構(gòu)。遞歸結(jié)構(gòu)因?yàn)榍懊婕壜?lián)的積分器工作頻率為高采樣頻率,所以當(dāng)抽取因子M和濾波器級數(shù)n比較大時就會帶來非常大的功耗。同時,由于積分器部分為IIR濾波器,存在不穩(wěn)定和溢出問題[2]。所以考慮采樣非遞歸結(jié)構(gòu)。它的傳輸函數(shù)推導(dǎo)為:
首先在時域?qū)懗龀槿V波器的輸入輸出的簡單形式:
濾波器將M個輸入采樣累加起來,然后除以M,得到輸入的平均。
在Z域重寫上式:
可以用采樣率依次降2的級聯(lián)方法實(shí)現(xiàn)。這樣每級傳遞函數(shù)展開為:
可見,這是一個整系數(shù)的FIR濾波器,它只需要加法器和延時單元就可以實(shí)現(xiàn)。隨著字長的增長,前級的濾波器雖然工作頻率高,但字長短;后面的濾波器雖然字長長,但工作頻率低,所以整體的功耗并不高[3]。通過將這種結(jié)構(gòu)進(jìn)一步改進(jìn),就得到了本設(shè)計中的濾波器結(jié)構(gòu):
由式(5)可見,改進(jìn)后的前級濾波器字長進(jìn)一步縮短,最后一級濾波器的字長增長一位。這樣每級位數(shù)分別為4、8、12、17、24,直流增益為223,是上述標(biāo)準(zhǔn)結(jié)構(gòu)增益的1/4。這樣改的好處是高頻工作的各級位數(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)。現(xiàn)在考慮硬件實(shí)現(xiàn),雖然上述結(jié)構(gòu)不需要乘法器,但是需要加法器和寄存器來對數(shù)據(jù)作累加、延時和移位等操作。所以首先要選擇合適的加法器和寄存器結(jié)構(gòu)。在本設(shè)計中,考慮速度和功耗的要求,分別選擇曼徹斯特進(jìn)位鏈加法器結(jié)構(gòu)[4]和C2MOS寄存器結(jié)構(gòu)[5]。這是因?yàn)椋鼜厮固剡M(jìn)位鏈加法器不僅速度快,而且它的和與進(jìn)位輸出具有近似的延時,總延時與級數(shù)具有線性關(guān)系。同時單級加法器只需要22個晶體管。而C2MOS寄存器屬于動態(tài)存儲器,它能在較高的工作頻率下工作而不丟失數(shù)據(jù)。相對于靜態(tài)存儲器,結(jié)構(gòu)簡單,能夠節(jié)省大量面積。
每級串行加法器的位數(shù)按照如下公式增長。其中Bin是每級的輸入位數(shù)、Bout是每級的輸出位數(shù)、N為各級的階數(shù)、M為降采樣比。
首先利用加法器和寄存器反饋連接構(gòu)成累加器,累加器的位數(shù)由上述公式給出。每級累加器的輸入端都用一組與非門控制。當(dāng)與非門的控制端為零時,重新開始累加。累加后用幾組寄存器完成數(shù)據(jù)延時,再接多路選擇器對數(shù)據(jù)進(jìn)行移位,即乘上不同的整數(shù)倍數(shù),然后輸入到下一級的累加器中。依次類推。
梳狀濾波器的硬件結(jié)構(gòu)如圖1(a),實(shí)現(xiàn)一級全加器需要22T(晶體管)、一位C2MOS寄存器需要8T,多路選擇器和與非門控制則隨位數(shù)而變化,總硬件消耗如表1。
?
2 補(bǔ)償濾波器設(shè)計
梳狀濾波器的最大缺陷就是通帶衰減較大,不能滿足整體濾波器通帶紋波的要求。所以需要補(bǔ)償濾波器對其進(jìn)行補(bǔ)償,以達(dá)到通帶紋波的設(shè)計要求[6]。在本設(shè)計中,要求通帶紋波為±0.05dB,即在信號帶寬內(nèi),補(bǔ)償濾波器的幅頻響應(yīng)與梳狀濾波器的幅頻響應(yīng)的乘積應(yīng)在±0.05dB之間。本設(shè)計中的補(bǔ)償濾波器不僅要對通帶補(bǔ)償,而且還要實(shí)現(xiàn)采樣率降2和增大阻帶衰減的功能。利用Matlab 7.0的Filter design &analysis tool工具進(jìn)行設(shè)計,因?yàn)镕IR濾波器具有線性相位并且系數(shù)對稱,所以最終確定的補(bǔ)償濾波器為52階FIR濾波器,總共有26個系數(shù)。理想FIR濾波器的系數(shù)為無限長,經(jīng)過截斷和優(yōu)化后,各系數(shù)如表2。
?
傳輸函數(shù)為:
為完成對數(shù)據(jù)的延時存儲操作,同時考慮到節(jié)省功耗和面積,因此使用SRAM實(shí)現(xiàn)數(shù)據(jù)的存儲和移位。其中的存儲單元采用標(biāo)準(zhǔn)六管單元實(shí)現(xiàn)。濾波器為52階,前級梳狀濾波器的輸出位數(shù)為18bit,總的存儲容量為18×52bit。注意到系數(shù)的對稱性,于是安排每次訪問兩個對稱的存儲單位,每個單位存儲一組數(shù)據(jù)。這樣就可以減輕地址譯碼電路的復(fù)雜度,用5~26譯碼器就可以實(shí)現(xiàn)地址譯碼。考慮到其中SRAM存儲體的讀取操作是電路工作的關(guān)鍵,所以設(shè)計了反相器交叉耦合的靈敏放大器來加快SRAM的讀操作。設(shè)計中將濾波器的所有系數(shù)都放在ROM中,由于一共有26個系數(shù),量化以后,每個系數(shù)有13bit,為了ROM的設(shè)計方便,取4×7組單元,采用或與邏輯實(shí)現(xiàn)。
在FIR濾波器中,要用到乘法運(yùn)算。如果用一般的乘法實(shí)現(xiàn),會浪費(fèi)很多的硬件資源,并且會產(chǎn)生很大的延時。在本設(shè)計中,采用基4 Booth算法代替普通的二進(jìn)制乘法,以達(dá)到方便、快捷又省資源的目的。在進(jìn)行乘法運(yùn)算之前,將對稱的數(shù)據(jù)從SRAM中讀取出來并相加,這樣被乘數(shù)有19bit,而系數(shù)有13bit,為了方便實(shí)現(xiàn),將乘數(shù)擴(kuò)展為20bit,系數(shù)擴(kuò)展為16bit。這樣經(jīng)過Booth編碼后,得出的部分積就有8個,用串行加法器相加則延時太大。考慮用CSA代替串行加法器[7],同時用兩級CSA對部分積進(jìn)行壓縮,這樣就產(chǎn)生了四個部分積,但是Booth編碼要一次檢測系數(shù)的四位,也就是在一次部分積里,對被乘數(shù)進(jìn)行兩次Booth操作。另外,為了減少CSA的使用,用一組20bit的寄存器來暫存部分積的累加結(jié)果,這樣,兩級CSA就可以循環(huán)使用了。最后使用一級22bit的超前進(jìn)位加法器,將部分積累加的結(jié)果輸出。總的硬件結(jié)構(gòu)如圖1。
3 仿真驗(yàn)證
在Matlab中作出濾波器的頻率響應(yīng),如圖2和圖3所示。
?
由圖3可以看出,阻帶衰減為65dB,通帶紋波在±0.05dB之間。滿足設(shè)計要求。
用Verilog語言描述各模塊功能,編寫Test文件,在Cadence中利用的VerilogXL工具仿真,得到結(jié)果如圖4所示。
?
在Matlab中利用Simulink搭建五階∑△調(diào)制器以及與本設(shè)計對應(yīng)的濾波器系統(tǒng),對調(diào)制器的輸出做頻譜分析,得到SNR為108.13dB,有效位數(shù)為17.67bit,再對濾波器的輸出做頻譜分析,結(jié)果如圖5。可得SNR為99.27dB,有效位數(shù)為16.20bit,最后的輸出仍然高于16bit的精度,滿足設(shè)計要求。
?
本文在對抽取濾波器的結(jié)構(gòu)進(jìn)行優(yōu)化和改進(jìn)的基礎(chǔ)上,從節(jié)省面積和降低功耗的角度出發(fā),合理安排硬件電路,最終完成了16bit∑△ADC中的抽取濾波器的設(shè)計。經(jīng)過仿真驗(yàn)證,該濾波器系統(tǒng)穩(wěn)定,不僅能夠?qū)崿F(xiàn)對采樣率的64倍抽取,而且能夠?yàn)V除∑△ADC信號帶寬外的噪聲成分,保證整個信號帶寬的平坦和干凈。各項(xiàng)性能指標(biāo)也完全滿足設(shè)計要求。
參考文獻(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] 周潤德譯.數(shù)字集成電路-電路、系統(tǒng)與設(shè)計(第二版)[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).