劉 偉,郭尚尚,王 逍,商世廣
(西安郵電大學 電子工程學院,陜西 西安 710121)
模數(shù)轉換器(Analog to Digital Converter,ADC)負責將模擬信號轉換成數(shù)字信號,是連接模擬系統(tǒng)和數(shù)字信號處理系統(tǒng)的關鍵模塊之一[1],被廣泛應用于醫(yī)療、通信和測控等領域的電子器件中。低功耗和小面積是對ADC的基本要求。逐次逼近型模數(shù)轉換器(Successive Approximation Register Analog-To-Digital Converter,SAR-ADC)正是因其具有功耗較低、面積較小等特點,已經成為ADC領域的關注熱點[1-2]。
相關研究發(fā)現(xiàn),在SAR-ADC中普遍存在寄生效應和制造工藝導致的電容權重失配問題,從而致使ADC的分辨率被限制在10 bit以下[3-4],利用版圖匹配技術消除電容失配的方法已經接近瓶頸[5]。
為了滿足更高分辨率的需求,一種思路是通過增大電容尺寸來提高匹配性,但是,這種做法會增大芯片的面積和功耗,并且降低SAR-ADC的轉換速率[4,6];另一種思路是采用校準技術對電容權重進行校準[7-9],從而消除半導體制造誤差的影響。校準技術分為模擬校準和數(shù)字校準,模擬校準技術采用附加的模擬電路對電容失配進行校準[10-11],會增大芯片的功耗和面積,從而增大整個系統(tǒng)設計的復雜度。
相對于模擬校準技術,數(shù)字校準技術的精度更高、速度更快,已經成為目前SAR-ADC校準的主流方法[4,8-9,12]。例如,文獻[12]基于最小均方(Least Mean Square,LMS)算法,提出了一種內部冗余擾動(Internal Redundancy Dithering,IRD)的數(shù)字校準方法,利用亞二進制電容陣列產生內部冗余,對電容失配進行校準;文獻[13]在比較器出現(xiàn)亞穩(wěn)態(tài)時,利用偽隨機PN碼(Pseudo-Noise Code)作為比較器的輸出,對SAR-ADC失配誤差進行校準。但是,文獻[12]和文獻[13]提出的數(shù)字校準方法均屬于后臺校準,其不足之處在于,當SAR-ADC正常工作時,校準算法會進行大量的重復性迭代,致使數(shù)據(jù)傳輸?shù)膶崟r性不強,進而影響SAR-ADC的轉換速率。文獻[14]利用電容失配誤差的反對稱性提出了一種數(shù)字前臺校準方法,但該方法需要復雜的DAC開關方案,這無疑增加了模擬電路時序的復雜度。
為了減小電容失配對SAR-ADC轉換精度的影響,擬基于亞二進制技術和擾動技術,提出一種應用于SAR-ADC的LMS前臺數(shù)字校準算法。通過將后臺校準轉移到前臺,減小校準算法對ADC轉換速率的影響。在電路剛上電時,整個系統(tǒng)即處于校準模式,利用LMS自適應濾波算法對權重值進行校準;在經過一定次數(shù)的迭代訓練之后,使SAR-ADC處于正常工作模式,電路根據(jù)已經校準的權重值輸出正確的數(shù)字碼。
SAR-ADC電路的基本結構如圖1所示。SAR-ADC電路由二進制電容陣列(CC,C0,C1,…,CN-1)、開關陣列(SC,S0,S1,…,SN-1)、SAR控制邏輯和比較器構成。
圖1 SAR-ADC結構示意圖
在理想條件下,若電容權重不存在失配,則輸入電壓Vin可表示為
(1)
其中:Vref表示基準電壓;N為SAR-ADC的分辨率;C0表示單位電容值;CC表示冗余補償電容值;Di表示第i位數(shù)字碼所對應的0、1值;Ctot表示所有電容的加權和,即
(2)
由于半導體制造工藝原因,往往會引起電容權重的制造誤差,假定第i位電容與單位電容C0之間的失配率為ei,則可以將實際的輸入電壓Vin,real定義為
(3)
其中:δ表示最大失配率;冗余補償電容Cc值為單位電容C0值。
定義誤差電壓ΔV為實際輸入電壓Vin,real與理想輸入電壓Vin的差值,則誤差電壓的最大值ΔVmax的計算表達式為
(4)
一般情況下,為了保證SAR-ADC的轉換精度,由電容失配引入的最大誤差電壓ΔVmax需要小于0.5倍的最低有效位(Least Significant Bit,LSB)BLS[15],即需要滿足
ΔVmax<0.5BLS
(5)
其中,BLS表示最低有效位數(shù),其值可以定義為1BLS=Vref/2N。
由式(4)和式(5)化簡得到失配率δ與分辨率N的關系式為
(6)
由式(6)可知,SAR-ADC所允許的失配率δ隨分辨率N的提高呈指數(shù)下降,當分辨率N達到14 bit時,所允許的最大電容失配率δ僅為0.006 1%。在現(xiàn)有的制造工藝條件下,生產如此低失配率的電容較為困難,為了滿足高分辨率的需求,就需要采用校準技術。
采用數(shù)字校準技術需要保證模擬輸入信號的信息不丟失,即要保證SAR-ADC的第i位電容小于前i-1位電容的總和,這是采用數(shù)字校準的充要條件[9]。為滿足該條件,將電容權重的比值設計為略小于2,即采用亞二進制(Sub-radix-2)來取值。
采用亞二進制電容陣列時,電容的權重比值不再是原來的二進制,就意味著ADC的轉換次數(shù)M不再等于分辨率N。為了獲得更為理想的有效位數(shù)(Effective Number Of Bit,ENOB),其轉換次數(shù)M往往需要大于二進制結構的分辨率N,理想的有效位數(shù)BBNO與轉換次數(shù)M以及進制α的關系可以表示為
(7)
對一個線性SAR-ADC系統(tǒng),在模擬域增加偏移量±Δa之后,需要能夠在數(shù)字域被去除。擾動及校準技術原理示意圖如圖2所示。從圖2(a)中可以看出,當最高位權重存在誤差時,擾動擬合曲線會在該失配位扭曲變形,從而使得線性疊加原理不再適用,擾動的擬合曲線沒有與原來的曲線相互重疊,而是形成了一個誤差監(jiān)測窗口,這個窗口提供了監(jiān)測轉換誤差是否為零的機會,如果通過某種校準方法來獲得權重的最佳值,就會使權重誤差error逐漸趨于零,轉換監(jiān)測窗口也會逐漸消失,從而使得擾動的擬合曲線被線性化,重新適用線性疊加原理,如圖2(b)所示。
圖2 擾動及校準技術原理示意圖
綜合考慮算法的簡單性、魯棒性和易于在硬件上實現(xiàn)等因素,提出了基于LMS自適應濾波算法[9,16-17]的SAR-ADC校準方法,其結構示意圖如圖3所示,電路由兩部分構成,分別是SAR-ADC核心部分、LMS校準算法部分。
圖3 SAR-ADC的LMS校準算法結構示意圖
如圖3所示,在校準模式M0,輸入模擬電壓Vin分別加入±Δa的抖動,然后經過SAR-ADC核心部分會被轉換為對應的數(shù)字碼D+和D-,其具有相同的初始權重,可以計算得到Vin±Δa的量化值分別為d+、d-,其計算表達式分別為
(8)
(9)
其中:bi+、bi-分別表示D+、D-第i位數(shù)字碼值;wi表示第i位電容的初始權重值;dos表示失調電壓所對應的量化值。
定義d+、-d-與2Δa的差值為權重誤差eerror,其計算表達式為
eerror=d+-d--2Δa
(10)
聯(lián)立式(8)、式(9)和式(10),化簡得到
(11)
LMS自適應濾波算法根據(jù)eerror的值,對第i位權重wi進行迭代,使其趨近于最佳值,權重迭代計算表達式為
wi,n+1=wi,n-μweerror,n(b+,i-b-,i)
(12)
其中:wi,n+1表示迭代之后的權重值;μw表示迭代的步長;n為迭代的次數(shù)。
當所有權重都被校準完成之后,SAR-ADC核心部分和校準部分會同時進入正常工作模式M1。SAR-ADC核心部分不會加入抖動,校準部分也不會工作,電路記錄了最佳的權重值,此時,SAR-ADC正常采樣量化輸出,每個采樣周期只輸出一個數(shù)據(jù)。
提出的LMS數(shù)字前臺校準SAR-ADC的算法系統(tǒng)建模與實現(xiàn)原理包括兩個部分,分別是SAR-ADC核心部分和LMS數(shù)字校準部分。在Simulink平臺下搭建SAR-ADC核心部分,其包括電容DAC模塊SAR DAC、SAR控制模塊SAR Control以及比較器模塊COM等3個模塊。為了達到12 bit的有效位,所搭建電容DAC模塊的轉換次數(shù)M取14,電容權重α取1.86,即按照1.86進制來設計14位電容權重。LMS數(shù)字校準部分通過Verilog HDL代碼實現(xiàn),主要包括LMS控制模塊LMS_Control、求權重和模塊Wi_Sum、求權重誤差模塊Error、權重迭代模塊Update和最后的14 bit轉12 bit模塊14 bit to 12 bit。LMS數(shù)字校準算法系統(tǒng)建模與算法實現(xiàn)原理如圖4所示。
圖4 LMS數(shù)字校準算法系統(tǒng)建模與算法實現(xiàn)原理
當校準使能信號Calibration為1時,表示加入了抖動,此時模擬輸入電壓Vin經過SAR-ADC核心部分就會產生一個正抖動數(shù)據(jù)D+和一個負抖動數(shù)據(jù)D-,當轉換結束信號(End of Conversion,EOC)有效時,LMS控制模塊(LMS_Control)依次讀入D+、D-。D+和D-具有相同的初始權重,每位權重均為23 bit的二進制數(shù),其中,低10 bit為小數(shù)部分,高13 bit為整數(shù)部分。求權重和模塊Wi_Sum根據(jù)式(8)和式(9)對數(shù)字碼D+和D-進行加權求和,得到d+、d-。然后,求權重誤差模塊Error依次讀入d+、d-,根據(jù)式(10)得到權重誤差eerror。若eerror<1 LSB,則直接進入14 bit轉12 bit模塊并輸出,反之,則進入權重迭代模塊Update進行權重迭代,直到權重誤差eerror滿足條件,再輸出校準后的數(shù)字碼。
假設無抖動注入,模擬輸入經過SAR-ADC核心部分之后得到的數(shù)字碼D為00_0000_1111_1111,則加入抖動量為Δa=00_0000_0001_1001之后,得到的數(shù)字碼分別為D+=00_0001_0001_1000、D-=00_0000_1110_0110,根據(jù)式(11)可得
eerror=W8-W7-W6-W5+W4+W3-W2-W1-2Δa
則W1,W2,…,W8需要被校準,此時,權重迭代模塊Update會根據(jù)式(12)對這些權重位進行迭代校準,權重校準的流程如圖5所示。
圖5 權重校準流程
當經過一定次數(shù)的迭代訓練之后,所有位的權重值都會趨于最佳值,算法就會產生一個校準終止信號End_flag,該信號會反饋到SAR-ADC核心部分和LMS數(shù)字校準部分,控制抖動使能信號Calibration和數(shù)字校準開關信號Open/Close,使其處于關閉狀態(tài),此時,SAR-ADC由校準模式切換到正常工作模式,SAR-ADC核心部分不再加入抖動,數(shù)字校準部分只有14 bit轉12 bit模塊工作,電路會根據(jù)已經校準的權重值輸出正確的數(shù)字碼。當下一次電路狀態(tài)改變時,可以重新按下校準復位開關RST_N,校準電路就會對權重值重新進行迭代訓練。
為了最大化電容失配,對DAC模塊中的每個電容都加入交替失配,使每個電容的失配極性不同,例如,第一位電容加入了+1.5%的失配,則第二位就加入-1.5%。將SAR-ADC核心部分輸出的待校準數(shù)字碼從Simulink中導出,作為LMS校準算法的輸入進行校準。仿真結束后,將校準代碼下載到Xilinx Spartan-6開發(fā)板上進行現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)驗證與測試。
算法的校準功能仿真結果如圖6所示,其中:rst_n表示算法的復位信號;eoc表示轉換結束信號;calibration表示校準使能信號;b_p、b_n分別表示加入正、負抖動之后的14 bit數(shù)字碼;dout表示輸出的12 bit數(shù)字碼。當eoc信號有效時,LMS算法會依次讀入b_p和b_n,然后校準算法根據(jù)權重誤差error的值對權重進行迭代更新,當error小于1個LSB時,就會對相關數(shù)據(jù)進行校準。
圖6 算法的校準功能仿真結果
將校準代碼下載到Xilinx Spartan-6開發(fā)板上,通過只讀存儲器(Read-Only Memory,ROM)每隔一段時間向校準電路發(fā)送待校準數(shù)據(jù)。在校準階段,輸入加入抖動的數(shù)據(jù)進行權重迭代訓練,待校準完成之后,再輸入未加抖動的數(shù)據(jù)進行輸出,最后利用通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/ Transmitter,UART)協(xié)議 將校準結果傳回電腦端,利用MATLAB軟件進行快速傅立葉(Fast Fourier Transform,FFT)分析。
當失配量取±1.5%,輸入信號頻率等于240.2 kHz時,所對應的SAR-ADC校準前、后的頻譜特性曲線如圖7所示。
圖7 校準前、后FFT頻譜特性對比
圖7顯示,校準前諧波分量和雜散信號的功率較大,此時對SAR-ADC的動態(tài)性能影響較為嚴重,但是通過校準算法校準之后,諧波分量與雜散信號的功率明顯減小,SAR-ADC的動態(tài)性能得到了提升。
根據(jù)FFT仿真結果得到,校準后SAR-ADC的無雜散動態(tài)范圍(Spur Free Dynamic Range,SFDR)由48.52 dB提升到了94.93 dB,信噪失真比(Signal to Noise and Distortion Ratio,SNDR)由42.11 dB提升到了72.52 dB,有效位數(shù)(Effective Number of Bit,ENOB)由6.70 bit提升到了11.74 bit,校準后SAR-ADC的動態(tài)性能得到了較大提升。
校準前、后的微分非線性(Differential Non-linearity,DNL)和積分非線性(Integral Non-linearity,INL)測試結果分別如圖8和圖9所示。
圖8 校準前、后的DNL測試結果
圖9 校準前、后的INL測試結果
由圖8和圖9可以看出,與校準前相比,誤差校準后,DNL由原來的-1.00~2.04 LSB降低到了-0.88~0.90 LSB,INL由原來-24.58~26.61 LSB降低到了-0.60~0.64 LSB,SAR-ADC的線性度顯著提升。
失配量取1%~5%時,算法校準前、后SAR-ADC的有效位數(shù)測試結果如圖10所示,可以看出,校準前SAR-ADC的有效位隨著失配量的增加而下降,當失配量為5%時,校準前的有效位僅為4.95 bit,而經過校準算法校準之后,有效位均可提升到11.00 bit以上。
圖10 不同失配量下的有效位數(shù)
SAR-ADC校準前、后的性能參數(shù)如表1所示,可以看出,校準后SAR-ADC靜態(tài)、動態(tài)均得到了明顯提升。所提校準算法與其他校準方法的動態(tài)參數(shù)對比情況如表2所示。相較其他方法,所提的校準方法對SAR-ADC的SNDR、ENOB等動態(tài)性能提升更明顯。這是因為,提出的LMS校準算法可以有效地減小電容權重失配、比較器偏移等多種非線性因素對系統(tǒng)的影響,從而提高了SAR-ADC的轉換精度。
表1 SAR-ADC校準前后的性能參數(shù)
表2 不同方法校準結果對比
利用亞二進制技術和擾動技術,對加入抖動的模擬輸入電壓依次進行量化,基于LMS算法計算權重誤差,根據(jù)權重誤差迭代出最佳權重值,實現(xiàn)對SAR-ADC的校準,以改善SAR-ADC電容失配影響轉換精度及后臺校準算法迭代復雜等問題,利用Simulink軟件,對一個亞二進制SAR-ADC進行了系統(tǒng)級建模,并將校準算法在Xilinx Spartan-6開發(fā)板上進行硬件設計和驗證。仿真和驗證結果表明,提出的校準算法在SFDR、SNDR和ENOB等指標方面較好,對SAR-ADC的校準效果較好,SAR-ADC的轉換精度較高