專利名稱:用于電流舵dac的dem編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及DEM編碼領(lǐng)域,特別涉及一種用于電流舵DAC的DEM編碼方法。
背景技術(shù):
由于生產(chǎn)工藝的偏差和工作溫度、電壓的不一致,芯片元件(比如晶體管尺寸、閾值電壓和電阻阻值等)會(huì)出現(xiàn)失配,這會(huì)嚴(yán)重影響系統(tǒng)的性能,尤其是線性度。DEM(Dynamic Element Matching,動(dòng)態(tài)元素匹配)編碼方法能夠?qū)⒃湟鸬氖д孓D(zhuǎn)化為噪聲,從而有效提高系統(tǒng)的線性度,因而廣泛應(yīng)用于各種結(jié)構(gòu)的ADC和DAC中。圖1是傳統(tǒng)的包含DEM 模塊的DAC的工作原理圖。如圖1所示,DAC的數(shù)字輸入經(jīng)過(guò)DEM模塊編碼后,輸出M個(gè)數(shù)字位(圖1中C1到Cm),所述M個(gè)數(shù)字位分別經(jīng)過(guò)一個(gè)1位子DAC轉(zhuǎn)換為M個(gè)子模擬輸出 (圖1中Y1到y(tǒng)M),所述M個(gè)子模擬輸出合成最終的模擬輸出(圖1中y)。然而,傳統(tǒng)DEM編碼方法(比如Data Weighted Averaging, DffA)會(huì)急劇增大每采樣周期跳變的開(kāi)關(guān)數(shù),而過(guò)多的開(kāi)關(guān)跳變會(huì)導(dǎo)致較大的動(dòng)態(tài)誤差(開(kāi)關(guān)跳變不同步、時(shí)鐘饋通等),這也會(huì)影響系統(tǒng)的性能。
發(fā)明內(nèi)容
(一 )要解決的技術(shù)問(wèn)題本發(fā)明要解決的技術(shù)問(wèn)題是如何提供一種用于電流舵DAC的DEM編碼方法,以便在將失配引起的失真轉(zhuǎn)換為噪聲的同時(shí),減小每個(gè)采樣周期的開(kāi)關(guān)跳變數(shù)。( 二 )技術(shù)方案為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種用于電流舵DAC的DEM編碼方法,其包括以下步驟SlOO 判斷所述電流舵DAC的當(dāng)前周期的數(shù)字輸入Input (η)與所述電流舵DAC的前一周期的數(shù)字輸入hput(n-l)的大小關(guān)系;如果^iput(Ii)等于^iput(Ii-I),執(zhí)行S200 ; 如果 Input (η)大于 Input (n_l),執(zhí)行 S300 ;如果 Input (η)小于 Input (n_l),執(zhí)行 S400 ;S200 保持DEM模塊的輸出不變,保持指針I(yè)3Start和指針Pend的值不變;S300 對(duì)所述DEM模塊的輸出進(jìn)行第一置位操作,并且相應(yīng)地修改所述指針 Pstart和指針Pend的值;S400 對(duì)所述DEM模塊的輸出進(jìn)行第二置位操作,并且相應(yīng)地修改所述指針 Pstart和指針Pend的值。優(yōu)選地,在所述步驟SlOO之前還包括步驟S000 設(shè)定所述指針I(yè)3Start的初始值為1 ;設(shè)定所述指針Pend的初始值為所述電流舵DAC的第一個(gè)周期的數(shù)字輸入Input (1)。優(yōu)選地,所述步驟S300具體包括步驟S301 判斷Pstart+hput(n)-l與所述DEM模塊的輸出位數(shù)M的大小關(guān)系;如果 Pstart+Input(n)-1 不大于 M,執(zhí)行 S302 ;否則,執(zhí)行 S303 ;S302 將所述DEM模塊的輸出中,從所述指針Pstart的值對(duì)應(yīng)的數(shù)位到Pstart+Input(n)-1的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針 Pend 的值為 Pstart+Input(n)-1 ;S303 將所述DEM模塊的輸出中,從所述指針I(yè)^start的值對(duì)應(yīng)的數(shù)位到M對(duì)應(yīng)的數(shù)位均置位為1,從第1位到Pstart+hputOO-l-M的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針Pend的值為Pstart+hput(n)-l-M。優(yōu)選地,所述步驟S400具體包括步驟S401 判斷Pend-Input (η)+1是否小于1,如果不小于,執(zhí)行S402,否則,執(zhí)行 S403 ;S402 將所述DEM模塊的輸出中,從Pend-Input (η)+1的值對(duì)應(yīng)的數(shù)位到所述指針Pend的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針Pstart的值為 Pend-Input(η)+1 ;S403 將所述DEM模塊的輸出中,從第1位到所述指針Pend的值對(duì)應(yīng)的數(shù)位均置位為1,從Pend-Input (η) +1+Μ的值對(duì)應(yīng)的數(shù)位到M對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針I(yè)^start的值為Pend-Input (η) +1+Μ ;所述M為所述DEM模塊的輸出位數(shù)。優(yōu)選地,如果所述DEM模塊的輸出經(jīng)過(guò)置位操作后所有數(shù)位均為1或者均為0,則修改所述指針I(yè)3Start的值為Pstart+Num,然后修改所述指針Pend的值為Pstart-I ;所述 Num為對(duì)應(yīng)所述電流舵DAC的當(dāng)前周期的數(shù)字輸入Input (η)的位數(shù)的常值。優(yōu)選地,修改所述指針I(yè)3Start的值為I^start+Num后,如果I3Start為1,則修改所述指針Pend的值為M0(三)有益效果本發(fā)明的用于電流舵DAC的DEM編碼方法,其DEM模塊的輸出具有一定的隨機(jī)性, 能將失配引起的失真轉(zhuǎn)換為噪聲,同時(shí),有效減少了每周期跳變開(kāi)關(guān)數(shù),從而有效減小開(kāi)關(guān)跳變引起的動(dòng)態(tài)誤差。
圖1是傳統(tǒng)的包含DEM模塊的DAC的工作原理圖;圖2是本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的流程圖;圖3本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的編碼過(guò)程示意圖;圖4是采用本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的DAC的電路靜態(tài)特性圖;圖5是采用本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的DAC的SFDR特性圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。圖2是本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的流程圖。如圖2所示, 所示方法包括
步驟S000 設(shè)定指針I(yè)3Start的初始值為1 ;設(shè)定指針Pend的初始值為所述電流舵 DAC的第一個(gè)周期的數(shù)字輸入hput(l)。步驟SlOO 判斷所述電流舵DAC的當(dāng)前周期的數(shù)字輸入^iput(Ii)與所述電流舵 DAC的前一周期的數(shù)字輸入Input (n-1)的大小關(guān)系;如果Input (η)等于Input (η-1), Α 行 S200 ;如果 Input (η)大于 Input (n-1),執(zhí)行 S300 ;如果 Input (η)小于 Input (n-1),執(zhí)行 S400。步驟S200 保持DEM模塊的輸出不變,保持所述指針I(yè)3Start和指針Pend的值不變。步驟S300 對(duì)所述DEM模塊的輸出進(jìn)行第一置位操作,并且相應(yīng)地修改所述指針 Pstart和指針Pend的值。所述步驟S300具體包括步驟S301 判斷Pstart+hputOO-l與所述DEM模塊的輸出位數(shù)M的大小關(guān)系; 如果Pstart+Input(n)-1不大于M,執(zhí)行S302 ;否則,執(zhí)行S303。步驟S302 將所述DEM模塊的輸出中,從所述指針I(yè)^start的值對(duì)應(yīng)的數(shù)位到 Pstart+Input(n)-1的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針 Pend 的值為 Pstart+Input(n)-1。步驟S303 將所述DEM模塊的輸出中,從所述指針I(yè)^start的值對(duì)應(yīng)的數(shù)位到M對(duì)應(yīng)的數(shù)位均置位為1,從第1位到Pstart+hput(n)-l-M的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針Pend的值為Pstart+hput(n)-l-M。步驟S400 對(duì)所述DEM模塊的輸出進(jìn)行第二置位操作,并且相應(yīng)地修改所述指針 Pstart和指針Pend的值。 所述步驟S400具體包括步驟S401 判斷Pend-Input (η)+1是否小于1,如果不小于,執(zhí)行S402,否則,執(zhí)行 S403。步驟S402 將所述DEM模塊的輸出中,從Pend-Input (η) +1的值對(duì)應(yīng)的數(shù)位到所述指針Pend的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針I(yè)3Start的值為 Pend-Input (η) +1。步驟S403 將所述DEM模塊的輸出中,從第1位到所述指針Pend的值對(duì)應(yīng)的數(shù)位均置位為1,從Pend-Input (η) +1+Μ的值對(duì)應(yīng)的數(shù)位到M對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針I(yè)3Start的值為Pend-Input (η)+1+Μ。如果所述DEM模塊的輸出經(jīng)過(guò)所述步驟S300或者步驟S400的置位操作后所有數(shù)位均為1或者均為0,則修改所述指針I(yè)3Start的值為Pstart+Num,然后修改所述指針Pend 的值為Pstart-I ;所述Num為對(duì)應(yīng)所述電流舵DAC的當(dāng)前周期的數(shù)字輸入^iput(Ii)的位數(shù)的常值,可以通過(guò)仿真實(shí)驗(yàn)確定,一般為DEM模塊的輸出位數(shù)M的四分之一取整。其中,修改所述指針I(yè)3Start的值為Pstart+Num后,如果I3Start為1,則修改所述指針Pend的值為M。圖3是本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的編碼過(guò)程示意圖。如圖3所示,第1周期時(shí)所述電流舵DAC的數(shù)字輸入為3。設(shè)定所述指針I(yè)^start的初始值為 1,設(shè)定所述指針Pend的初始值為3。
第2周期時(shí)所述電流舵DAC的數(shù)字輸入為7,大于所述第1周期時(shí)所述電流舵DAC 的數(shù)字輸入3,并且f^start+hputOO-l = 7,不大于所述DEM模塊的輸出位數(shù)M = 15,則所述DEM模塊的輸出中從第1位到第7位的數(shù)位均置位為1,剩余的從第8位到第15位的數(shù)位均置位為0,修改所述指針Pend的值為7。第3周期時(shí)所述電流舵DAC的數(shù)字輸入為12,大于所述第2周期時(shí)所述電流舵DAC 的數(shù)字輸入7,并且I^start+hput (η) -1 = 12,不大于所述DEM模塊的輸出位數(shù)M = 15,則所述DEM模塊的輸出中從第1位到第12位的數(shù)位均置位為1,剩余的從第13位到第15位的數(shù)位均置位為0,修改所述指針Pend的值為12 ;第4周期時(shí)所述電流舵DAC的數(shù)字輸入為6,小于所述第3周期時(shí)所述電流舵DAC 的數(shù)字輸入12,并且Pend-Input (η) +1 = 7,不小于1,則所述DEM模塊的輸出中從第7位到第12位的數(shù)位均置位為1,剩余的從第1位到第6位以及從第13位到第15位的數(shù)位均置位為0,修改所述指針I(yè)^start的值為7。第5周期時(shí)所述電流舵DAC的數(shù)字輸入為15,大于所述第4周期時(shí)所述電流舵DAC 的數(shù)字輸入6,并且f^start+hputOO-l = 21,大于所述DEM模塊的輸出位數(shù)M = 15,則從第7位到第1 5位均置位為1,從第1位到第6位均置位為1。這時(shí)所有輸出為都被置位為 1,修改所述指針I(yè)3Start的值為I^start+Num =11,然后修改所述指針Pend的值為I3Start-I =10。其中所述Num取常值為4。第6周期時(shí)所述電流舵DAC的數(shù)字輸入為9,小于所述第5周期時(shí)所述電流舵DAC 的數(shù)字輸入15,并且Pend-Input (η) +1 = 2,不小于1,則所述DEM模塊的輸出中從第2位到第10位的數(shù)位均置位為1,剩余的第1位以及從第11位到第15位的數(shù)位均置位為0,修改所述指針I(yè)3Start的值為2。第7周期時(shí)所述電流舵DAC的數(shù)字輸入為0,小于所述第6周期時(shí)所述電流舵DAC 的數(shù)字輸入9,并且Pend-Input (n)+1 = 11,不小于1,則所述DEM模塊的輸出中所有數(shù)位均置位為0,修改所述指針I(yè)3Start的值為I^start+Num = 6,然后修改所述指針Pend的值為 Pstart-I = 5。第8周期時(shí)所述電流舵DAC的數(shù)字輸入為2,大于所述第7周期時(shí)所述電流舵DAC 的數(shù)字輸入0,并且I^start+Input (η)-1 = 6不大于所述DEM模塊的輸出位數(shù)M = 15,則所述DEM模塊的輸出中從第6位到第7位的數(shù)位均置位為1,剩余的第1位到第5位以及從第 8位到第15位的數(shù)位均置位為0,修改所述指針Pend的值為7。通過(guò)Matlab建模仿真電流源靜態(tài)失配對(duì)6位DAC性能的影響。圖4是采用本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的DAC的電路靜態(tài)特性圖。我們將電流源標(biāo)準(zhǔn)差置為10%,仿真100次,得出采用本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的DAC的靜態(tài)特性如圖4所示,其中,左部是積分非線性分布直方圖,右部是差分非線性分布直方圖。圖5是采用本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法的DAC的SFDR特性圖。我們將采樣頻率設(shè)為300MHz,仿真得出采用本發(fā)明實(shí)施例所述用于電流舵DAC的DEM 編碼方法的DAC的輸入頻率較低(IOMHz)和較高(90MHz)時(shí)的SFDR特性如圖5所示。其中,圖5中左半部分為輸入頻率較低時(shí)的SFDR特性圖,圖5中右半部分為輸入頻率較高時(shí)的SFDR特性圖。
上述仿真結(jié)果表明,本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法,不僅有很好的靜態(tài)特性,同時(shí)在不同的輸入頻率下都有很好的SFDR(Spurious Free Dynamic range,無(wú)雜散動(dòng)態(tài)范圍)特性。本發(fā)明實(shí)施例所述用于電流舵DAC的DEM編碼方法,有效減少了每周期跳變開(kāi)關(guān)數(shù),從而有效減小開(kāi)關(guān)跳變引起的動(dòng)態(tài)誤差;輸出具有一定的隨機(jī)性,能將失配引起的失真轉(zhuǎn)換為噪聲。以上實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種用于電流舵DAC的DEM編碼方法,其特征在于,包括以下步驟SlOO 判斷所述電流舵DAC的當(dāng)前周期的數(shù)字輸入^iput(II)與所述電流舵DAC的前一周期的數(shù)字輸Ahput (Π-1)的大小關(guān)系;如果^iput(II)等于^iput(Ii-I),執(zhí)行S200 ;如果 Input (η)大于 Input (n_l),執(zhí)行 S300 ;如果 Input (η)小于 Input (n_l),執(zhí)行 S400 ;S200 保持DEM模塊的輸出不變,保持指針I(yè)3Start和指針Pend的值不變;5300對(duì)所述DEM模塊的輸出進(jìn)行第一置位操作,并且相應(yīng)地修改所述指針I(yè)3Start和指針Pend的值;5400對(duì)所述DEM模塊的輸出進(jìn)行第二置位操作,并且相應(yīng)地修改所述指針I(yè)3Start和指針Pend的值。
2.如權(quán)利要求1所述的方法,其特征在于,在所述步驟SlOO之前還包括步驟S000設(shè)定所述指針I(yè)3Start的初始值為1 ;設(shè)定所述指針Pend的初始值為所述電流舵DAC的第一個(gè)周期的數(shù)字輸入hput(l)。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟S300具體包括步驟5301判斷Pstart+hput (η) _1與所述DEM模塊的輸出位數(shù)M的大小關(guān)系;如果 Pstart+Input(n)-1 不大于 M,執(zhí)行 S302 ;否則,執(zhí)行 S303 ;5302:將所述DEM模塊的輸出中,從所述指針Pstart的值對(duì)應(yīng)的數(shù)位到 Pstart+Input(n)-1的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針 Pend 的值為 Pstart+Input(n)-1 ;5303將所述DEM模塊的輸出中,從所述指針I(yè)3Start的值對(duì)應(yīng)的數(shù)位到M對(duì)應(yīng)的數(shù)位均置位為1,從第1位到Pstart+hputOO-l-M的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針Pend的值為Pstart+hput(n)-l-M。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟S400具體包括步驟5401判斷Pend-Input (η)+1是否小于1,如果不小于,執(zhí)行S402,否則,執(zhí)行S403 ;5402將所述DEM模塊的輸出中,從Pend-Input (η)+1的值對(duì)應(yīng)的數(shù)位到所述指針 Pend的值對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0,然后修改所述指針I(yè)^tart的值為 Pend-Input(η) +1 ;5403將所述DEM模塊的輸出中,從第1位到所述指針Pend的值對(duì)應(yīng)的數(shù)位均置位為 1,從Pend-Input (η) +1+Μ的值對(duì)應(yīng)的數(shù)位到M對(duì)應(yīng)的數(shù)位均置位為1,其他數(shù)位置位為0, 然后修改所述指針Pstart的值為Pend-Input (η)+1+Μ;所述M為所述DEM模塊的輸出位數(shù)。
5.如權(quán)利要求3或者4所述的方法,其特征在于,如果所述DEM模塊的輸出經(jīng)過(guò)置位操作后所有數(shù)位均為1或者均為0,則修改所述指針I(yè)^start的值為Pstart+Num,然后修改所述指針Pend的值為Pstart-I ;所述Num為對(duì)應(yīng)所述電流舵DAC的當(dāng)前周期的數(shù)字輸入 Input (η)的位數(shù)的常值。
6.如權(quán)利要求5所述的方法,其特征在于,修改所述指針I(yè)3Start的值為Pstart+Num 后,如果I^start為1,則修改所述指針Pend的值為M。
全文摘要
本發(fā)明公開(kāi)了一種用于電流舵DAC的DEM編碼方法,涉及DEM編碼領(lǐng)域。所述方法包括步驟判斷電流舵DAC的當(dāng)前周期的數(shù)字輸入Input(n)與前一周期的數(shù)字輸入Input(n-1)的大小關(guān)系;如果相等,保持DEM模塊的輸出不變,保持指針Pstart和Pend的值不變;如果Input(n)大于Input(n-1),對(duì)DEM模塊的輸出進(jìn)行第一置位操作,修改Pstart和Pend的值;如果Input(n)小于Input(n-1),進(jìn)行第二置位操作,修改Pstart和Pend的值。所述方法,有效減少了每周期跳變開(kāi)關(guān)數(shù),從而減小了開(kāi)關(guān)跳變引起的動(dòng)態(tài)誤差。
文檔編號(hào)H03M1/66GK102324939SQ20111018245
公開(kāi)日2012年1月18日 申請(qǐng)日期2011年6月30日 優(yōu)先權(quán)日2011年6月30日
發(fā)明者張興, 王源, 蘇煒, 賈嵩, 趙俊雷 申請(qǐng)人:北京大學(xué)