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