摘 要: 在設(shè)計(jì)的電流舵DAC中應(yīng)用了一種新的譯碼結(jié)構(gòu),即斐波那契數(shù)列譯碼結(jié)構(gòu)。通常電流舵DAC設(shè)計(jì)基于面積和精度的折衷考慮,會(huì)采用高位溫度計(jì)譯碼,低位二進(jìn)制譯碼的分段結(jié)構(gòu),在此設(shè)計(jì)的電流舵DAC為進(jìn)一步提高精度,高位6位仍采用溫度計(jì)譯碼,低6位用斐波那契數(shù)列譯碼代替二進(jìn)制譯碼。仿真測(cè)得DAC轉(zhuǎn)換器的積分非線性誤差(INL)為0.5 LSB,微分非線性誤差(DNL)為0.28 LSB。在10 MHz采樣率下,無(wú)雜散動(dòng)態(tài)范圍(SFDR)達(dá)85 dB。
關(guān)鍵詞: 分段式電流舵; DAC; 斐波那契數(shù)列; 譯碼結(jié)構(gòu)
中圖分類號(hào): TN710?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)20?0136?03
0 引 言
隨著信號(hào)處理和電子通信系統(tǒng)的飛速發(fā)展,對(duì)數(shù)/模轉(zhuǎn)換器精度的要求越來(lái)越高。DAC模塊已經(jīng)成為制約整個(gè)系統(tǒng)性能的關(guān)鍵因素[1]。電流舵DAC精度主要受靜態(tài)誤差和動(dòng)態(tài)誤差兩方面因素影響。靜態(tài)誤差主要來(lái)源于電流源的失配,所以要減小靜態(tài)誤差,在DAC電流源陣列中應(yīng)該使用大尺寸的晶體管[2]。通信系統(tǒng)中更關(guān)注的是動(dòng)態(tài)誤差,動(dòng)態(tài)誤差受毛刺的影響很大,毛刺產(chǎn)生主要是由于碼元轉(zhuǎn)換過(guò)程時(shí)時(shí)鐘的不同步導(dǎo)致的[3]。而這些都和DAC的譯碼結(jié)構(gòu)密切相關(guān)。
在電流舵DAC中主要采用兩種譯碼結(jié)構(gòu),溫度計(jì)譯碼和二進(jìn)制譯碼。溫度計(jì)譯碼采用的權(quán)電流源都相同,輸入相鄰的數(shù)字碼元,只有一個(gè)電流源的開(kāi)關(guān)狀態(tài)改變,因此毛刺很小。但是溫度計(jì)碼需要的電流源很多,對(duì)N位的DAC,需要2N+1個(gè)電流源,譯碼很復(fù)雜,譯碼電路占用面積大[4]。二進(jìn)制譯碼采用的權(quán)電流源按2的指數(shù)次方增加為20,21,22,…,2N+1;輸入碼元幾乎不需要譯碼,可直接通過(guò)開(kāi)關(guān)控制這些電流源來(lái)實(shí)現(xiàn)數(shù)模轉(zhuǎn)換,因此占用面積很小。但是二進(jìn)制譯碼轉(zhuǎn)換到中間碼元的時(shí)候,需要改變電流源開(kāi)關(guān)的數(shù)量很大,毛刺很大[5]。
1 斐波那契數(shù)列譯碼
1.1 斐波那契數(shù)列譯碼特點(diǎn)
斐波那契數(shù)列通項(xiàng)公式[6]由下面公式給出:
[F0=0,F(xiàn)1=1Fi+2=Fi+Fi+1, i≥0]
給出初始前2項(xiàng)的值,后面的項(xiàng)可有遞推公式推得。斐波那契數(shù)列譯碼,即將斐波那契數(shù)列的數(shù)值作為權(quán)電流源的值,輸入的數(shù)字碼元通過(guò)控制相應(yīng)的權(quán)電流源開(kāi)關(guān)的狀態(tài)來(lái)選擇輸出模擬量的大小。可推得:
[limn→∞Fn+1Fn=1+52≈1.618]
斐波那契數(shù)列的連續(xù)權(quán)重比為黃金比例,介于二進(jìn)制譯碼(為2)和溫度計(jì)譯碼(為1)之間。因此斐波那契數(shù)列能綜合二進(jìn)制譯碼和溫度計(jì)譯碼的優(yōu)勢(shì),首先DAC所需的權(quán)電流源數(shù)比溫度計(jì)譯碼所需的權(quán)電流源數(shù)大大減小,譯碼邏輯電路將會(huì)大大減少,因?yàn)樽g碼電路面積大小是和控制信號(hào)數(shù)正相關(guān)的[7]。另外由于譯碼電路面積的減少,使得斐波那契數(shù)列的權(quán)電流源能用大尺寸晶體管,減小電流源失配誤差[8]。并且斐波那契數(shù)列譯碼DAC相鄰碼元轉(zhuǎn)變時(shí),需要改變狀態(tài)的權(quán)電流開(kāi)關(guān)比二進(jìn)制譯碼少,尤其是轉(zhuǎn)換到中間碼元時(shí),二進(jìn)制譯碼的權(quán)電流開(kāi)關(guān)狀態(tài)需要全部改變[9],但
是斐波那契數(shù)列譯碼DAC則不必要,因此斐波那契數(shù)列譯碼的最大毛刺比二進(jìn)制譯碼最大毛刺小很多[10]。因此用斐波那契數(shù)列譯碼代替二進(jìn)制譯碼能大大提高DAC的精度,當(dāng)然這會(huì)引起譯碼邏輯電路的增加,但是相對(duì)于溫度計(jì)譯碼來(lái)說(shuō)這點(diǎn)面積增加又是可接受的。
1.2 斐波那契數(shù)列譯碼的實(shí)現(xiàn)
因?yàn)楸疚牟捎酶?位溫度計(jì)譯碼,低6位斐波那契數(shù)列譯碼的結(jié)構(gòu),因此論述如何實(shí)現(xiàn)6位斐波那契數(shù)列的譯碼結(jié)構(gòu)。6位譯碼,有64個(gè)模擬量輸出。可證明8位斐波那契數(shù)列權(quán)電流源,有87個(gè)模擬量輸出,只要前7個(gè)斐波那契數(shù)列權(quán)電流源,就可實(shí)現(xiàn)64個(gè)模擬量輸出。根據(jù)文獻(xiàn),采用大晶體管能夠減小電流源失配誤差,因此設(shè)計(jì)將每個(gè)權(quán)電流源都加一個(gè)偏移值來(lái)增加晶體管的尺寸。則第i位的權(quán)電流大小為:
[wi=w0+Fi, i≥1]
式中w0為偏移值。在本次設(shè)計(jì)的低6位斐波那契譯碼電路中,選擇w0的值為9,選取斐波那契數(shù)列前7個(gè)值作為權(quán)電流,則全電流大小如表1所示。
表1 斐波那契數(shù)列譯碼權(quán)電流
輸入數(shù)字碼元通過(guò)譯碼控制這些權(quán)電流源的通斷來(lái)實(shí)現(xiàn)相應(yīng)的模擬輸出。譯碼的過(guò)程如表2所示。表中dm為相應(yīng)的權(quán)電流源的開(kāi)關(guān)控制信號(hào)。可推知DAC輸出電流為:
[Itol=k=06wk+1dk]
當(dāng)輸入數(shù)字碼元為000000時(shí),權(quán)電流10ILSB,11ILSB的開(kāi)關(guān)控制信號(hào)d0,d1為1,其余開(kāi)關(guān)控制信號(hào)都為0,則模擬輸出量為21ILSB,輸出的模擬偏移量Ioffset為21ILSB。當(dāng)輸入數(shù)字碼元為000001時(shí),權(quán)電流10ILSB,12ILSB的開(kāi)關(guān)控制信號(hào)d0,d2,其余開(kāi)關(guān)控制信號(hào)都為0,則模擬輸出量為22ILSB,即ILSB+Ioffset,依次類推,可相應(yīng)的數(shù)字碼元,可得到模擬輸出量2ILSB,3ILSB,…,63ILSB,實(shí)現(xiàn)了6位數(shù)/模轉(zhuǎn)換(模擬偏移量可以最后通過(guò)微調(diào)消除)。
2 12位電流舵DAC設(shè)計(jì)
為實(shí)現(xiàn)高分辨率12位電流舵DAC的設(shè)計(jì),采用高6位溫度計(jì)譯碼,低6位斐波那契數(shù)列譯碼分段結(jié)構(gòu)。高6位溫度計(jì)譯碼由于最低權(quán)位為26,因此圖1中8×8方格中每個(gè)方格代表64ILSB,即高6位相鄰碼元變化,輸出模擬量變化64ILSB。高6位中的低3位經(jīng)過(guò)3?8譯碼器譯碼有8位輸出,每位輸出控制1個(gè)方格,高6位中的高3位經(jīng)過(guò)3?8譯碼器譯碼的8位輸出,每位輸出控制1行8個(gè)方格。高6位溫度計(jì)譯碼和低6位斐波那契數(shù)列譯碼結(jié)合,可產(chǎn)生從0到4 095ILSB的模擬量輸出。另外,為了避免干擾及溫度的影響,本文設(shè)計(jì)了高精度的基準(zhǔn)電壓源。為保證控制信號(hào)信號(hào)同步,輸入信號(hào)用寄存器,輸出信號(hào)用鎖存器,保證時(shí)鐘上升沿時(shí)同時(shí)動(dòng)作。同時(shí),為了提高輸出阻抗,電流源采用共源共柵結(jié)構(gòu)等,完成高精度12位電流舵DAC設(shè)計(jì)。
3 仿真結(jié)果與分析
本文在Cadence Spectre仿真器中對(duì)設(shè)計(jì)的電路進(jìn)行了仿真驗(yàn)證,如圖2和圖3所示測(cè)得INL為0.5 LSB,DNL為0.28 LSB。本文設(shè)計(jì)的電流舵DAC采樣率為10 MHz,輸入理想的46.386 718 75 kHz正弦信號(hào),輸出采樣后的正弦信號(hào)如圖4所示,根據(jù)圖4可計(jì)算SFDR為85 dB,如圖5所示。本文設(shè)計(jì)的電流舵DAC在動(dòng)態(tài)誤差方面和靜態(tài)誤差方面都達(dá)到了很高的精度。
4 結(jié) 語(yǔ)
本文低6位譯碼應(yīng)用了一種新的譯碼結(jié)構(gòu)———斐波那契數(shù)列譯碼,經(jīng)測(cè)得DNL為0.28 LSB,INL為0.5 LSB,在46.39 kHz正弦波輸入下,SFDR達(dá)85 dB,達(dá)到了很高的精度。只是采樣率還需要提高,這是下一步工作的重點(diǎn)。
參考文獻(xiàn)
[1] FOURNIER J M, SENN P. A 130?MHz 8?b CMOS video DAC for HDTV applications [J]. IEEE J. Solid?State Circuits, 1991, 26: 1073?1077.
[2] BUGEJA A. A self?trimming 14?b 100MS/s CMOS DAC [J]. IEEE J. Solid?State Circuits, 2000, 35: 1841?1852.
[3] CATTEAU B, ROMBOUTS P, WEYTEN L. A digital calibration technique for the correction of glitches in high?speed DAC's [C]// Proceedings of International Symposium on Circuits and System (lSCAS). New Orleans, LA: ISCAS, 2007: 1477?1480.
[4] LIN C. A 10?b, 500?Msample/s CMOS DAC in 0.6mm [J]. IEEE J. Solid?State Circuits, 1998, 33: 1948?1958.
[5] DEN BOSCH A V, BORREMANS M, STEYAERT M, et al. A 10?bit 1?G sample/s Nyquist current?steering CMOS D/A converter [J]. IEEE J. Solid?State Circuits, 2001, 36(3): 315?324.
[6] MACK D R. The magical Fibonacci number [J]. Potentials, IEEE, 1990, 9(3):34?35.
[7] VOGT A W, DEDIC I J. A 10?bit high speed CMOS CAS macrocell [C]// Custom Integrated Circuits Conference. [S.l.]: CICC, 1989: 671?674.
[8] ABRIAL A, BOUVIER J, FOURNIER J?M, et al. A 27?MHz digital?to?analog video processor [J]. IEEE J. Solid?State Circuits, 1988, 23: 1358?1369.
[9] PELGROM M J M, DUINMAIJER A C J, WELBERS A P G. Matching properties of MOS transistors [J]. IEEE J. Solid?State Circuits, 1989, 24: 1433?1440.
[10] KAUTZ W H. Fibonacci codes for synchronization control [J]. IEEE Transactions on Information Theory, 1965, 11(2): 284?292.