嵌入式裝置的芯片上模數(shù)轉(zhuǎn)換器(adc)線性度測(cè)試的制作方法
【專利摘要】在所描述的實(shí)例中,測(cè)試ADC的線性度的方法包含接收(1310)指示ADC輸入電壓階躍調(diào)整的觸發(fā)信號(hào),及當(dāng)接收所述觸發(fā)信號(hào)時(shí)讀取(1311)ADC輸出樣本。所述ADC輸出樣本具有對(duì)應(yīng)于N個(gè)離散ADC輸出代碼的N個(gè)整數(shù)值的值范圍。此外,所述方法包含針對(duì)M個(gè)連續(xù)ADC輸出代碼計(jì)算(1312)代碼發(fā)生的直方圖。所述直方圖包含對(duì)應(yīng)于所述M個(gè)連續(xù)ADC輸出代碼的M個(gè)方格,其中M小于N。此外,所述方法包含根據(jù)所述直方圖以K個(gè)ADC輸出樣本讀數(shù)的間隔更新DNL值及INL值,及在更新所述DNL值及所述INL值之后將所述直方圖移位(1330)一個(gè)ADC輸出代碼。
【專利說(shuō)明】嵌入式裝置的巧片上模數(shù)轉(zhuǎn)換器(ADC)線性度測(cè)試
【背景技術(shù)】
[0001] 模數(shù)轉(zhuǎn)換器(ADC)將模擬輸入信號(hào)轉(zhuǎn)換為一系列數(shù)字輸出代碼。轉(zhuǎn)換過(guò)程可設(shè)及 輸入的量化,因?yàn)槟M信號(hào)是連續(xù)的,而數(shù)字輸出代碼是離散的。ADC測(cè)量可由于轉(zhuǎn)換過(guò)程 中的不精確度的各種來(lái)源(例如,量化誤差)W及制程中的變動(dòng)(例如,裝置間變動(dòng))而偏離 理論測(cè)量。ADC性能可根據(jù)靜態(tài)性能及動(dòng)態(tài)性能來(lái)規(guī)定。靜態(tài)性能可包含偏離誤差、增益誤 差、微分非線性度(面L)及積分非線性度(1化)。動(dòng)態(tài)性能可包含總諧波失真(TDH)及信噪比 (SNR)。一些嵌入式裝置(例如,數(shù)字信號(hào)處理器(DSP)、忍片上系統(tǒng)(SoC))可包含忍片上 ADC。忍片上ADC的性能可在生產(chǎn)測(cè)試期間進(jìn)行評(píng)估。
【發(fā)明內(nèi)容】
[0002] 在用于嵌入式裝置的忍片上ADC線性度測(cè)試的所描述實(shí)例中,一種方法包含接收 指示ADC輸入電壓階躍調(diào)整的觸發(fā)信號(hào)且當(dāng)接收所述觸發(fā)信號(hào)時(shí)讀取ADC輸出樣本。所述 ADC輸出樣本具有對(duì)應(yīng)于N個(gè)離散ADC輸出代碼的N個(gè)整數(shù)值的范圍。此外,所述方法包含針 對(duì)Μ個(gè)連續(xù)ADC輸出代碼計(jì)算代碼發(fā)生的直方圖。所述直方圖包含對(duì)應(yīng)于所述Μ個(gè)連續(xù)ADC輸 出代碼的Μ個(gè)方格,其中Μ小于Ν。此外,根據(jù)所述直方圖WK個(gè)ADC輸出樣本讀數(shù)的間隔更新 面L值及I化值且在更新所述面L值及所述I化值之后將所述直方圖移位一個(gè)ADC輸出代碼。
[0003] 在另一實(shí)施例中,一種非暫時(shí)性計(jì)算機(jī)存儲(chǔ)可讀裝置包含計(jì)算機(jī)可執(zhí)行指令,其 在由處理器執(zhí)行時(shí)使所述處理器檢測(cè)指示ADC電壓階躍遞增的觸發(fā)事件且當(dāng)接收到所述觸 發(fā)事件時(shí)讀取ADC輸出樣本。所述ADC輸出樣本具有對(duì)應(yīng)于Ν個(gè)離散ADC輸出代碼的Ν個(gè)整數(shù) 值的值范圍。所述指令進(jìn)一步使所述處理器對(duì)所述Μ個(gè)連續(xù)ADC輸出代碼更新代碼發(fā)生的直 方圖,其中所述直方圖包含對(duì)應(yīng)于所述Μ個(gè)連續(xù)ADC輸出代碼的Μ個(gè)方格,且其中Μ小于Ν。所 述指令進(jìn)一步使所述處理器根據(jù)所述直方圖WK個(gè)ADC輸出樣本讀數(shù)的間隔更新最大DNL 值、最小面L值、最大I化值及最小I化值。所述指令進(jìn)一步使所述處理器在更新所述最大DNL 值、所述最小D化值、所述最大1化值及最小所述1化值之后將所述直方圖移位一個(gè)ADC輸出 代碼。
[0004] 在又另一實(shí)施例中,一種設(shè)備包含ADC,其經(jīng)配置W將模擬輸入信號(hào)轉(zhuǎn)換為Ν個(gè)離 散ADC輸出代碼;及存儲(chǔ)器,其包含包括存儲(chǔ)Μ個(gè)連續(xù)ADC輸出代碼的發(fā)生次數(shù)的Μ個(gè)方格的 直方圖,其中每一方格對(duì)應(yīng)于所述Μ個(gè)ADC輸出代碼中的一者,且其中Μ小于Ν。所述設(shè)備進(jìn)一 步包含第一接口,其經(jīng)配置W接收指示所述ADC輸入處的電壓階躍遞增的觸發(fā)信號(hào),其中Κ 個(gè)接收的觸發(fā)信號(hào)的平均值對(duì)應(yīng)于ADC輸出代碼轉(zhuǎn)變。所述設(shè)備進(jìn)一步包含處理器,其禪合 到所述ADC、所述存儲(chǔ)器和所述第一接口且經(jīng)配置當(dāng)接收所述觸發(fā)信號(hào)時(shí)讀取ADC輸出 樣本且;通過(guò)將對(duì)應(yīng)于所述ADC樣本的值的方格中的發(fā)生次數(shù)遞增來(lái)計(jì)算所述直方圖;。所 述處理器進(jìn)一步經(jīng)配置W根據(jù)所述直方圖WK個(gè)ADC輸出樣本讀數(shù)的間隔更新最大代碼發(fā) 生、最小代碼發(fā)生、最大積分非線性度I化值及最小I化值,其中所述最大代碼發(fā)生與最大微 分非線性度面L值成比例,且其中所述最小代碼發(fā)生與最小面L值成比例。所述處理器進(jìn)一 步經(jīng)配置及在更新所述最大代碼發(fā)生、所述最小代碼發(fā)生、所述最大mL值及所述最小 I化值之后將所述直方圖移位一個(gè)ADC輸出代碼。
[0005] 在又另一實(shí)施例中,一種非暫時(shí)性計(jì)算機(jī)存儲(chǔ)可讀裝置包含計(jì)算機(jī)可執(zhí)行指令, 其在由處理器執(zhí)行時(shí)使所述處理器設(shè)置第一控制代碼W命令電壓階躍遞增、設(shè)置第二控制 代碼W指示所述電壓階躍遞增,且讀取包含最大代碼發(fā)生、最小代碼發(fā)生、最大縮放mL值 及最小縮放值W及對(duì)應(yīng)于所述最大代碼發(fā)生、所述最小代碼發(fā)生、所述最大縮放mL值 及所述最小縮放1化值的ADC代碼的ADC測(cè)量報(bào)告。所述指令進(jìn)一步使所述處理器根據(jù)所述 巧慢報(bào)告計(jì)算最大面L值、最小面L值、最大I化值及最小I化值。
【附圖說(shuō)明】
[0006] 圖1是根據(jù)各個(gè)實(shí)施例的ADC轉(zhuǎn)遞函數(shù)及通過(guò)將ADC輸入電壓轉(zhuǎn)換為離散電平轉(zhuǎn)變 點(diǎn)進(jìn)行的對(duì)應(yīng)ADC DNL測(cè)量的圖表。
[0007] 圖2是根據(jù)各個(gè)實(shí)施例的ADC傳遞函數(shù)及ADC代碼發(fā)生的對(duì)應(yīng)直方圖的圖表。
[0008] 圖3是根據(jù)各個(gè)實(shí)施例的ADC測(cè)試設(shè)置的框圖。
[0009] 圖4是根據(jù)各個(gè)實(shí)施例的內(nèi)建自測(cè)(BIST)引擎的框圖。
[0010]圖5是根據(jù)各個(gè)實(shí)施例的測(cè)試引擎的框圖。
[0011]圖6是根據(jù)各個(gè)實(shí)施例的ADC線性度現(xiàn)聯(lián)代碼范圍的圖表。
[0012] 圖7是根據(jù)各個(gè)實(shí)施例的基于移動(dòng)直方圖的方法的圖表表示。
[0013] 圖8是根據(jù)各個(gè)實(shí)施例的另一基于移動(dòng)直方圖的方法的圖表表示。
[0014] 圖9是根據(jù)各個(gè)實(shí)施例的ADC 1化測(cè)試的圖表。
[001引圖10是根據(jù)各個(gè)實(shí)施例的ADC樂(lè)性度ii試校準(zhǔn)方法的流程圖。
[0016]圖11是根據(jù)各個(gè)實(shí)施例的另一 ADC線性度測(cè)試校準(zhǔn)方法的流程圖。
[0017]圖12是根據(jù)各個(gè)實(shí)施例的ADC樂(lè)性度ii試方法的流程圖。
[0018] 圖13是根據(jù)各個(gè)實(shí)施例的另一 ADC線性度測(cè)試方法的流程圖。
[0019] 圖14是根據(jù)各個(gè)實(shí)施例的比較基于所有代碼直方圖的方法與基于移動(dòng)直方圖的 方法的ADC I化測(cè)量的兩個(gè)圖表。
【具體實(shí)施方式】
[0020] ADC輸入可為具有無(wú)限個(gè)值的連續(xù)電壓,而ADC輸出可為有限個(gè)離散代碼。因此, ADC輸入-輸出傳遞特性是無(wú)限個(gè)對(duì)一個(gè)映射。為了確定ADC的線性度特性,可通過(guò)根據(jù)ADC 輸出代碼之間的轉(zhuǎn)變電壓表示ADC輸入來(lái)在ADC輸入與ADC輸出之間建立一對(duì)一映射,其中 轉(zhuǎn)變電壓是離散的。當(dāng)ADC不具有線性度誤差時(shí),每一相鄰轉(zhuǎn)變電平之間的距離(例如,ADC 代碼寬度)是一個(gè)最低有效位化SB)。面L是相鄰轉(zhuǎn)變電平之間的測(cè)量距離及一個(gè)LSB的參考 距離的測(cè)量。I化是每一代碼轉(zhuǎn)變電平與通過(guò)代碼轉(zhuǎn)變電平的最佳擬合直線之間的距離的 測(cè)量。
[0021] 圖1示出了根據(jù)各個(gè)實(shí)施例的ADC傳遞函數(shù)及通過(guò)將ADC輸入電壓轉(zhuǎn)換為離散電平 轉(zhuǎn)變點(diǎn)進(jìn)行的對(duì)應(yīng)ADC D化測(cè)量的圖表100。子圖表110說(shuō)明ADC傳遞函數(shù),且子圖表120說(shuō)明 ADC麗L測(cè)重。在子圖表110中,X軸可W伏特為單位表不輸入板擬電壓,且y軸可表不ADC罔 散輸出代碼。曲線111可表示3位ADC響應(yīng)于輸入電壓的輸出傳遞函數(shù)。在子圖表120中,X軸 可W伏特為單位表示電壓轉(zhuǎn)變電平,且y軸可表示ADC輸出代碼索引。在子圖表120中,數(shù)據(jù) 點(diǎn)m中的每一者可對(duì)應(yīng)于子圖表110中的ADC代碼轉(zhuǎn)變。如子圖表110及120中所示,數(shù)據(jù)點(diǎn) 121之間的距離可不同于一個(gè)LSB的理論值,其中差值可表示微分線性度誤差(例如,面L 值)。在子圖表120中,數(shù)據(jù)點(diǎn)121的端點(diǎn)之間繪制的線122可對(duì)應(yīng)于通過(guò)數(shù)據(jù)點(diǎn)121的最佳擬 合直線。每一數(shù)據(jù)點(diǎn)121與線122之間的距離可表示積分線性度誤差(例如,I化值)。
[0022] 在實(shí)施例中,基于所有代碼直方圖的方法可用W測(cè)量ADC線性度。在基于所有代碼 直方圖的方法中,可響應(yīng)于在ADC的全尺度范圍內(nèi)線性地增加的輸入信號(hào)電平而產(chǎn)生ADC輸 出代碼發(fā)生的直方圖。全尺度范圍可指代對(duì)應(yīng)于最小ADC輸出代碼的最小電壓與對(duì)應(yīng)于最 大ADC輸出代碼的最大電壓之間的范圍。在從ADC收集足夠多數(shù)量的樣本之后,可產(chǎn)生ADC輸 出代碼發(fā)生的直方圖W提供面L的精確測(cè)量。I化可通過(guò)W數(shù)字形式對(duì)面L值積分來(lái)計(jì)算。直 方圖的方格數(shù)目或大小可對(duì)應(yīng)于基于所有代碼直方圖的方法中的ADC輸出代碼的數(shù)目。例 如,可針對(duì)產(chǎn)生八個(gè)ADC輸出代碼的3位ADC產(chǎn)生具有8個(gè)方格的直方圖,同時(shí)可針對(duì)產(chǎn)生 1024個(gè)ADC輸出代碼的10位ADC產(chǎn)生具有1024個(gè)方格的直方圖。
[0023] 圖2示出了根據(jù)各個(gè)實(shí)施例的ADC傳遞函數(shù)及ADC代碼發(fā)生的對(duì)應(yīng)直方圖的圖表 200。子圖表210中說(shuō)明ADC傳遞函數(shù)且子圖表220中說(shuō)明ADC代碼發(fā)生的對(duì)應(yīng)直方圖。在子圖 表210中,X軸可W伏特為單位表示輸入模擬電壓,且y軸可表示ADC離散輸出代碼值。在子圖 表210中,曲線211可表示3位ADC響應(yīng)于輸入電壓的輸出傳遞函數(shù)。在子圖表220中,X軸可W 表示ADC代碼索引(其可對(duì)應(yīng)于直方圖方格),且y軸可表示ADC代碼發(fā)生的次數(shù)。如可觀察 到,每一直方圖方格中的代碼發(fā)生次數(shù)與每一相鄰轉(zhuǎn)變電平之間的距離成比例,如曲線211 中所示。因此,可采用代碼發(fā)生的直方圖用于測(cè)量ADC D化及I化。
[0024] 在一些實(shí)施例中,采用基于所有代碼直方圖的方法的測(cè)試器可將斜坡電壓(例如, 線性恒定電壓階躍中)施加到ADC且在每一電壓階躍調(diào)整之后傳遞來(lái)自ADC輸出的一或多個(gè) ADC樣本。在將ADC輸入電壓掃描到ADC全尺度范圍之后,測(cè)試器可產(chǎn)生ADC輸出代碼發(fā)生的 直方圖且根據(jù)直方圖確定面L及INL。在此類實(shí)施例中,測(cè)試器可采用大量存儲(chǔ)器來(lái)用于存 儲(chǔ),因?yàn)橹狈綀D的大小可與ADC輸出代碼的數(shù)目成比例增加。此外,測(cè)試時(shí)間可隨著大量ADC 樣本可傳遞到測(cè)試器而變得顯著。例如,當(dāng)測(cè)試每個(gè)ADC輸出代碼約8次發(fā)生的平均值的每 秒鐘10百萬(wàn)個(gè)樣本(MSPS)的10位AD別寸,測(cè)試器可經(jīng)由數(shù)字通信接口(例如,具有1.巧^赫茲 (MHz)的傳遞速率的集成電路間(I2C))傳遞來(lái)自ADC的約八千個(gè)(例如,1024X 8 = 8096)ADC 樣本。每個(gè)ADC的測(cè)試時(shí)間可取決于ADC樣本時(shí)間及與數(shù)字通信接口相關(guān)聯(lián)的其它附加成本 而為約五秒鐘到約6秒鐘。因此,ADC生產(chǎn)測(cè)試時(shí)間可為重要的。
[0025] 用于本文中掲示的嵌入式裝置的忍片上ADC線性度測(cè)試的實(shí)施例包含采用基于移 動(dòng)直方圖的方法的ADC BIST方案。在實(shí)施例中,ADC D化及1化可W修改形式表示W(wǎng)降低計(jì) 算復(fù)雜度,且一次性后處理可應(yīng)用于經(jīng)修改D化及INLW提供符合電氣與電子工程師學(xué)會(huì) (I邸E)文件1241-2000的D化及1化測(cè)量,所述文件是W引用方式并入,就如同將其內(nèi)容全文 復(fù)制在此一樣。較低計(jì)算復(fù)雜度可實(shí)現(xiàn)面L及I化巧慢在低成本及/或低性能微控制器(MCU) 上的實(shí)施,且可減少計(jì)算時(shí)間,且因此減少生產(chǎn)測(cè)試時(shí)間。在另一實(shí)施例中,ADC線性度測(cè)試 可采用具有動(dòng)態(tài)面L及I化計(jì)算的基于移動(dòng)直方圖的方法,而非具有后面L及I化計(jì)算的所有 代碼直方圖。動(dòng)態(tài)計(jì)算可使得BIST能夠計(jì)算具有基本上小于(例如,約八個(gè)到約Ξ十二個(gè)方 格)ADC輸出代碼的數(shù)目的少量固定數(shù)目的方格的直方圖,且因此隨著針對(duì)每一ADC輸出代 碼計(jì)算面L及I化而將直方圖滑動(dòng)跨過(guò)ADC輸出代碼范圍。較低計(jì)算復(fù)雜度(例如,經(jīng)修改形 式)及較小存儲(chǔ)器存儲(chǔ)(例如,固定大小的移動(dòng)直方圖)可使得BIST能夠并入在具有忍片上 ADC的嵌入式裝置中進(jìn)行線性度測(cè)試。BIST可在低成本及/或低性能MCU(例如,8051MCU)上 執(zhí)行,其中用于直方圖計(jì)算的隨機(jī)存取存儲(chǔ)器(RAM)的量較少(例如,約128個(gè)字節(jié))。BIST程 序代碼可被存儲(chǔ)在嵌入式裝置中的小型(例如,約800個(gè)字節(jié))只讀存儲(chǔ)器(ROM)上。在另一 實(shí)施例中,初始化程序可經(jīng)定義W確定適用于經(jīng)修改面L及INL現(xiàn)慢的ADC輸入電壓范圍。所 掲示的忍片上ADC線性度測(cè)試與基于所有代碼直方圖的方法相比可將生產(chǎn)測(cè)試時(shí)間減少約 五到約六的數(shù)量級(jí),且可提供可相當(dāng)于基于所有代碼直方圖的方法的面L及I化測(cè)量。
[0026] 圖3示出了根據(jù)各個(gè)實(shí)施例的ADC測(cè)試設(shè)置300的框圖。ADC測(cè)試設(shè)置300可適用于 測(cè)試ADC線性度(例如,面L及I化)dADC測(cè)試設(shè)置300可包含測(cè)試器310及被測(cè)裝置化UT)320。 測(cè)試器310及DUT可經(jīng)由模擬連接330及數(shù)字連接340連接。模擬連接330可為經(jīng)配置W攜帶 模擬電壓信號(hào)的任何物理鏈路。數(shù)字連接340可為經(jīng)配置W高速地(例如,約1.5兆赫茲 (M化)或更大)傳輸數(shù)字信號(hào)的任何物理鏈路。數(shù)字信號(hào)(例如,讀信號(hào)、寫信號(hào)、命令信號(hào) 等)的數(shù)目、數(shù)字信號(hào)的格式及數(shù)字信號(hào)的速度可取決于數(shù)字通信接口(例如,集成電路間 (I2C))的類型。在一些實(shí)施例中,數(shù)字連接340可包含一種W上類型的數(shù)字有線連接,例如 I2C接口連接及一些通用數(shù)字管腳連接。
[0027] 測(cè)試器310可包含模擬電壓源311及測(cè)試引擎312。電壓源311可為經(jīng)配置W產(chǎn)生具 有恒定階躍的高精度(例如,毫伏(mV))線性斜坡的任何裝置。例如,電壓源311可為信號(hào)產(chǎn) 生器、函數(shù)產(chǎn)生或適用于產(chǎn)生高精度斜坡電壓用于ADC線性度測(cè)試的任何其它電路元件。測(cè) 試引擎312可為經(jīng)配置W經(jīng)由接口 313(例如,通用接口總線(GPIB)、電路等)控制電壓源311 且經(jīng)由數(shù)字連接340與DUT 320通信。例如,測(cè)試引擎312可為處理器、計(jì)算機(jī)工作站或經(jīng)配 置W執(zhí)行用于執(zhí)行ADC線性度測(cè)試的測(cè)試程序的任何其它可編程或不可編程裝置。接口 313 可為經(jīng)配置W傳輸電壓控制代碼的數(shù)字接口。
[0028] DUT 320可為包含忍片上ADC 321及BIST引擎322的任何裝置,例如嵌入式裝置。例 如,DUT 320可為DSP、SoC等。忍片上ADC 321可為經(jīng)配置W將連續(xù)模擬輸入信號(hào)轉(zhuǎn)換為有限 數(shù)目的離散輸出代碼的任何裝置。例如,ADC 321可為具有八個(gè)輸出代碼的3位ADC、具有 1024個(gè)輸出代碼的10位ADC等。BIST引擎322可為經(jīng)配置W控制ADC 321(例如,配置寄存器) 且(例如,經(jīng)由一或多個(gè)輸出寄存器等)經(jīng)由接口323(數(shù)字信號(hào))從ADC 321收集ADC樣本的 任何裝置,例如通用處理器或MCU。此外,BIST引擎322可通過(guò)分析經(jīng)收集ADC樣本(例如,產(chǎn) 生直方圖并計(jì)算面L及I化偏差)而確定忍片上ADC 321的面L及I化。
[0029] 在一些實(shí)施例中,測(cè)試引擎312可確定ADC線性度測(cè)試配置參數(shù),例如起始電壓、終 止電壓及電壓階躍,其可根據(jù)ADC 321(例如,ADC全尺度電壓范圍及ADC輸出代碼的數(shù)目)來(lái) 確定。電壓階躍可為恒定階躍且可經(jīng)確定使得可針對(duì)每一 ADC輸出代碼測(cè)量足夠多數(shù)量的 ADC樣本,例如每個(gè)ADC輸出代碼約八個(gè)或更多個(gè)樣本。測(cè)試引擎312可使電壓源311被設(shè)置 為具體電壓且可經(jīng)由接口 313調(diào)整電壓(例如,遞增固定階躍)。測(cè)試引擎312可在每次電壓 調(diào)整結(jié)束時(shí)經(jīng)由數(shù)字連接340將觸發(fā)信號(hào)(例如,脈沖)發(fā)送到DUT 320W指示ADC 321可產(chǎn) 生經(jīng)調(diào)整電壓的樣本且BIST引擎322可處理ADC樣本并計(jì)算D化及1化參數(shù)。此外,測(cè)試引擎 312可在ADC線性度測(cè)試開(kāi)始時(shí)將測(cè)試配置參數(shù)發(fā)送到DUT 320且可在ADC線性度測(cè)試結(jié)束 時(shí)經(jīng)由數(shù)字連接340從DUT 320讀取經(jīng)測(cè)量參數(shù)。ADC測(cè)試設(shè)置300可替代地經(jīng)配置W采用較 高性能(例如,高分辨率及線性電壓輸出)的數(shù)模轉(zhuǎn)換器(DAC)來(lái)代替電壓源311,且因此可 位于與ADC 321相同的DUT 320上。此外,測(cè)試引擎312的功能性反而可在BIST引擎322上實(shí) 施。
[0030] 圖4示出了根據(jù)各個(gè)實(shí)施例的BIST引擎400的框圖。BIST引擎400可基本上類似于 BIST引擎322且可位于包含忍片上ADC(例如,ADC 321)的任何嵌入式裝置(例如,DUT 320) 中。BIST引擎400可包含處理器410、存儲(chǔ)器裝置420、數(shù)字接口 430及ADC接口 440。處理器410 可被實(shí)施為通用處理器或可為一或多個(gè)處理器的部分。處理器410可包含存儲(chǔ)在處理器中 的內(nèi)部非暫時(shí)性存儲(chǔ)器中的ADC線性度測(cè)量模塊411W允許處理器實(shí)施下文更完整描述的 ADC線性度測(cè)試方法1100及/或1300。在替代性實(shí)施例中,ADC線性度測(cè)量模塊411可被實(shí)施 為存儲(chǔ)在存儲(chǔ)器裝置420中的指令,所述指令可由處理器410執(zhí)行。存儲(chǔ)器裝置420可包含用 于暫時(shí)存儲(chǔ)內(nèi)容的高速緩沖存儲(chǔ)器,例如RAM。此外,存儲(chǔ)器裝置420可包含用于相對(duì)較長(zhǎng)時(shí) 間存儲(chǔ)內(nèi)容的長(zhǎng)期存儲(chǔ)裝置,例如ROM。例如,高速緩沖存儲(chǔ)器及長(zhǎng)期存儲(chǔ)裝置可包含動(dòng)態(tài) 隨機(jī)存取存儲(chǔ)器(DRAM)、固態(tài)驅(qū)動(dòng)器(SSD)、硬盤或其組合。數(shù)字接口 430可為經(jīng)配置W與 ADC測(cè)試器(例如,測(cè)試器310)通信的任何物理鏈路,且可基本上類似于數(shù)字連接340"ADC接 口440可為經(jīng)配置W在ADC(例如,ADC 321)與BIST引擎400之間傳輸ADC樣本及/或ADC配置 的任何物理鏈路。
[0031] 圖5示出了根據(jù)各個(gè)實(shí)施例的測(cè)試引擎500的框圖。測(cè)試引擎500可基本上類似于 巧聯(lián)引擎312且可位于任何測(cè)試器(例如,ii試器310)中。ii試引擎500可包含處理器510、存 儲(chǔ)器裝置520、數(shù)字接口 530及電壓控制接口 540。處理器510可被實(shí)施為通用處理器或可為 一或多個(gè)處理器的部分。處理器510可包含存儲(chǔ)在處理器中的內(nèi)部非暫時(shí)性存儲(chǔ)器中的ADC 線性度測(cè)量模塊511W允許處理器實(shí)施下文更完整描述的ADC線性度測(cè)試方法1000及/或 1200。在替代性實(shí)施例中,ADC線性度測(cè)量模塊511可被實(shí)施為存儲(chǔ)在存儲(chǔ)器裝置520中的指 令,所述指令可由處理器510執(zhí)行。存儲(chǔ)器裝置520可基本上類似于存儲(chǔ)器裝置420。數(shù)字接 口 530可為經(jīng)配置W與DUT(例如,DUT 320)通信的任何物理鏈路,且可基本上類似于數(shù)字連 接340。電壓控制接口 440可為經(jīng)配置W將控制發(fā)送到可變電壓源儀器(例如,信號(hào)產(chǎn)生器、 功能產(chǎn)生器)的任何物理鏈路(例如,通用接口總線(GPIB)、電路等)。
[0032] 在實(shí)施例中,N位ADC可產(chǎn)生從Cl。(例如,值零巧Ij Chi (例如,2"-1的值)的范圍中的/ 個(gè)ADC輸出代碼??僧a(chǎn)生介于代碼Cio+i與代碼Chi-i之間的ADC輸出代碼發(fā)生的直方圖用于面L 及I化測(cè)量。最小代碼打。與最大代碼Chi可從直方圖中排除,因?yàn)槿魏蜛DC下溢可被轉(zhuǎn)換為最 小代碼Cl。且ADC上溢可被轉(zhuǎn)換為最大代碼Chi。因此,排除最低及最高方格的ADC代碼發(fā)生的 總次數(shù)可被表示為:
[0033]
等巧(-1)
[0034] 其中hsum是代碼發(fā)生的總次數(shù)且h(i)是第i個(gè)ADC輸出代碼(例如,Cl)的發(fā)生次數(shù)。
[0035] 每一方格的代碼發(fā)生的平均次數(shù)可被計(jì)算為:
[0036]
等式口)
[0037] 其中havg是代碼發(fā)生的平均次數(shù)且dlt是排除最低及最高方格的直方圖中的方格 的數(shù)目且可被表示為:
[003引 dlt = Chi-Ci0-l 等式(3)
[0039] 如上文所述,存儲(chǔ)在處理器中的內(nèi)部非暫時(shí)性存儲(chǔ)器中W允許處理器發(fā)生的代碼 的數(shù)目可與相鄰轉(zhuǎn)變電平之間的距離成比例。因此,代碼發(fā)生的平均次數(shù)havg可對(duì)應(yīng)于一個(gè) LSB的理論值,且第i個(gè)ADC代碼的代碼發(fā)生的測(cè)量次數(shù)h(i)可對(duì)應(yīng)于相鄰轉(zhuǎn)變電平之間的 測(cè)量距離。ADC的標(biāo)準(zhǔn)化代碼寬度cw(i)可如下表示:
[0040]
[0041] 如上所述,面L是相鄰轉(zhuǎn)變電平之間的測(cè)量距離及一個(gè)LSB的理論值的測(cè)量。因此, ADC輸出代碼的面L值可如下計(jì)算:
[0042] 面 L(i)=cw(i)-l,i = Ci〇+i,Ci〇+2,...,Chi-i 等式(5)
[0043] 其中DNL( i)是第i個(gè)ADC輸出代碼Ci的D化值。如等式(5)中所示的ADC值可不具有 小于負(fù)1的值,且負(fù)1的值可指示丟失ADC代碼(例如,零發(fā)生)。
[0044] 如上所述,ir^L是每一代碼轉(zhuǎn)變電平與通過(guò)代碼轉(zhuǎn)變電平的最佳擬合直線之間的 距離的測(cè)量。因此,I化可通過(guò)如下所示般將每一 ADC代碼轉(zhuǎn)變時(shí)的面L值累加而計(jì)算:
[0045]
[0046] 在實(shí)施例中,ADC性能規(guī)格可包含麗L參數(shù)及I化參數(shù)。例如,面L參數(shù)可包含ADC的 最小面L值及最大面L值,且I化參數(shù)可包含ADC的最小INL值及最大I化值。因此,ADC線性度 測(cè)試可動(dòng)態(tài)地計(jì)算并更新面L參數(shù)及I化參數(shù)而無(wú)需存儲(chǔ)所有代碼發(fā)生的直方圖。例如,ADC 線性度測(cè)試可隨著(例如,W每個(gè)電壓增量)讀取ADC樣本時(shí)計(jì)算ADC的代碼發(fā)生的次數(shù)。當(dāng) ADC輸入電壓傳遞充分遠(yuǎn)離ADC輸出代碼Cl的電平使得ADC無(wú)法產(chǎn)生另一輸出代碼Ci,ADC線 性度測(cè)試可計(jì)算ADC輸出代碼Ci的D化值及I化值,且動(dòng)態(tài)地更新最小D化值、最大D化值、最 小I化值及最大I化值。
[0047] ADC輸出代碼的麗L值可根據(jù)代碼寬度(例如,等式(5)中的cw(i))來(lái)計(jì)算,其中代 碼寬度與代碼發(fā)生的次數(shù)(例如,等式(4)中的h(i))成比例。因此,ADC線性度測(cè)試可計(jì)算電 壓掃描期間的最大代碼發(fā)生及最小代碼發(fā)生,而非最大〇化值及最小DNL值。在電壓掃描結(jié) 束時(shí),ADC線性度測(cè)試可分別根據(jù)最大代碼發(fā)生及最小代碼發(fā)生通過(guò)將等式(2)、(3)及(4) 代入等式(5)中來(lái)計(jì)算最大面L值及最小面L值。因此,最大面L值及最小面L值可計(jì)算如下:
[004引
[0049] 其中h(i)在計(jì)算最大面L值時(shí)可為最大代碼發(fā)生,且h(i)在計(jì)算最小面L值時(shí)可為 最小代碼發(fā)生。
[0050] ADC代碼的I化值是面L值的累加和。然而,I化值無(wú)法通過(guò)累加代碼發(fā)生來(lái)代替DNL 值而簡(jiǎn)化。因?yàn)镮化值是面L值的累加和,所W代碼跨度dlt中的平均面L值可接近零W使INL 值是有意義的??绱a跨度dlt的非零D化偏差可在I化計(jì)算期間進(jìn)行積分,從而導(dǎo)致1化值 中出現(xiàn)斜坡誤差。如等式(4)中可觀察到,每一面L值可被標(biāo)準(zhǔn)化為代碼發(fā)生havg的平均次數(shù) (例如,一個(gè)LSB的代碼寬度)使得平均面L值可在跨度dlt中接近零。
[0051] 在實(shí)施例中,I化值可W修改形式表示W(wǎng)降低計(jì)算復(fù)雜度。如等式(7)中可觀察到, 面L值是W除法運(yùn)算進(jìn)行計(jì)算,除法運(yùn)算對(duì)于低成本MCU(例如,MCU 8051)來(lái)說(shuō)在時(shí)鐘循環(huán) 及/或存儲(chǔ)器存儲(chǔ)方面可能是昂貴的。然而,等式(7)可經(jīng)修改W通過(guò)如下所示般使等式(7) 與項(xiàng)hsum交叉相乘來(lái)消除除法運(yùn)算:
[0052] DNLhs 皿=hsumXD化= h(i)Xdlt-hsum 等式(8)
[0化3] 經(jīng)修改I化值可如下計(jì)算:
[0化4] INLhs 皿=INLhs 皿+面Lhsum 等式(9)
[0化5]因此,ADC線性度測(cè)試可計(jì)算經(jīng)修改ir^L值且動(dòng)態(tài)地更新最大經(jīng)修改mL值及最小 經(jīng)修改1化值。在ADC線性度測(cè)試結(jié)束時(shí),可分別通過(guò)將最大經(jīng)修改1化值及最小經(jīng)修改INL 值除Whsum來(lái)計(jì)算最大I化值及最小I化值,其中經(jīng)計(jì)算最大及最小I化值符合IEEE文件 1241-2000?;谒写a直方圖的方法可在產(chǎn)生所有代碼直方圖之后計(jì)算代碼發(fā)生的總 次數(shù),而動(dòng)態(tài)地計(jì)算WL值的ADC線性度測(cè)試可包含校準(zhǔn)程序用于在進(jìn)行ADC樣本測(cè)試之前 估計(jì)代碼發(fā)生的總次數(shù)hs?。
[0056] 在實(shí)施例中,ADC線性度測(cè)試可通過(guò)計(jì)算小范圍(例如,小于約Ξ十二個(gè))ADC代碼 的直方圖且將直方圖移動(dòng)跨過(guò)ADC代碼跨度(例如,dlt)來(lái)測(cè)量ADC的面L及INL。因此,直方 圖可利用少量方格來(lái)計(jì)算,且方格數(shù)目可不與ADC輸出代碼的數(shù)目成比例增加。采用移動(dòng)直 方圖的ADC線性度測(cè)試可稱為基于移動(dòng)直方圖的方法。下表描述了可在基于移動(dòng)直方圖的 方法中采用的一些參數(shù):
[0057] 表1-ADC線性度測(cè)試參數(shù) [0化引
[0060]圖6示出了根據(jù)各個(gè)實(shí)施例的ADC線性度測(cè)試的ADC代碼范圍的圖表600。在圖表 600中,X軸可表示ADC輸出代碼,其中ADC輸出代碼可從最小ADC代碼Cl。改變?yōu)樽畲驛DC代碼 Chi、基于移動(dòng)直方圖的方法可排除兩個(gè)端點(diǎn)Cl。及Chi,因?yàn)槿魏蜛DC下溢、上溢及/或噪音均 可導(dǎo)致ADC產(chǎn)生最小代碼打。或最大代碼Chi,且因此可使面L及I化測(cè)量失真。因此,基于移動(dòng) 直方圖的方法可開(kāi)始于將ADC輸入電壓Vin設(shè)置為對(duì)應(yīng)于Cl。與Ciwi之間的邊界處的代碼轉(zhuǎn)變 611的電壓(例如,起始電壓)及將ADC輸入電壓Vin W Vstep階躍遞增直到ADC輸入電壓Vin達(dá)到 對(duì)應(yīng)于Chi-i與Chi之間的邊界處的代碼轉(zhuǎn)變612的電壓(例如,終止電壓)。
[0061] 電壓階躍Vstep可經(jīng)確定使得可在ADC代碼的電壓范圍中針對(duì)每一 ADC代碼收集足 夠多數(shù)量的ADC樣本(例如,約八個(gè)樣本),例如,ADC輸出代碼的電壓范圍可被劃分為八個(gè)相 等電壓階躍且可針對(duì)每一電壓階躍讀取一個(gè)ADC樣本。因此,ADC代碼發(fā)生的總次數(shù)hsum可對(duì) 應(yīng)于代碼跨度dlt 613(例如,dlt = Chi-Ci〇-l)中介于起始電壓與終止電壓之間的電壓階躍 的總數(shù)。然而,ADC裝置可歸因于程序變動(dòng)而改變,因此起始電壓及終止電壓可在一個(gè)裝置 與另一裝置之間改變。因此,當(dāng)應(yīng)用基于移動(dòng)直方圖的方法時(shí),每一ADC裝置可經(jīng)校準(zhǔn)W確 定線性度測(cè)量之前的起始電壓及終止電壓使得可精確地確定hsumDhsum的不精確估計(jì)可顯著 地影響I化計(jì)算(例如,沿ADC代碼的累加),運(yùn)可在下文更完整地討論。
[0062] 圖7示出了根據(jù)各個(gè)實(shí)施例的基于移動(dòng)直方圖的方法700的圖表表示?;谝苿?dòng)直 方圖的方法700可在BIST引擎(例如,BIST引擎322或400)上實(shí)施?;谝苿?dòng)直方圖的方法中 的步驟可大概被劃分為Ξ個(gè)高電平步驟、直方圖計(jì)算步驟、線性誤差計(jì)算步驟及直方圖移 位步驟。在方法700中,可采用具有八個(gè)方格(例如,Nbin = 8)的直方圖710(例如,h[Nbin])用 于對(duì)代碼發(fā)生次數(shù)進(jìn)行計(jì)數(shù)。方法700可開(kāi)始于ADC輸入電壓(例如,電壓源311)Vin是對(duì)應(yīng)于 Cl。與Ciwi之間的邊界處的代碼轉(zhuǎn)變的電壓721(例如,起始電壓)時(shí)。方法700可產(chǎn)生具有對(duì) 應(yīng)于代碼打。+1的最低方格(例如,h[0])及對(duì)應(yīng)于代碼打。+8的最高方格(例如,h[7])的直方圖 710。在直方圖計(jì)算期間,方法700可在每一電壓階躍Vstep723遞增(例如Vin = Vin+Vstep)之后 讀取ADC樣本且因此計(jì)算直方圖,例如將對(duì)應(yīng)于ADC樣本的值的方格的發(fā)生次數(shù)累加。
[00創(chuàng)當(dāng)ADC輸入電壓Vin達(dá)到對(duì)應(yīng)于約直方圖710中間處的ADC代碼(例如,Cio+4到Cl。巧) 的電壓時(shí),方法700可執(zhí)行線性度誤差計(jì)算。在線性度誤差計(jì)算期間,方法700可根據(jù)等式 (9)針對(duì)對(duì)應(yīng)于最低方格的ADC代碼(例如,Ch。)計(jì)算I化值。此外,方法700可比較最低方格的 代碼發(fā)生次數(shù)h[0]與最大代碼發(fā)生hmax及最小代碼發(fā)生hmin。例如,當(dāng)h[0]小于hmin時(shí)可將 hmin更新為h[0]。類似地,當(dāng)h[0]大于hmax時(shí)可將hmax更新為h[0]。最大代碼發(fā)生hmax可被初始 化為零值,且最小代碼發(fā)生hmin可在測(cè)試開(kāi)始時(shí)被初始化為大值(例如,大于代碼發(fā)生的總 次數(shù))。
[0064] 在針對(duì)對(duì)應(yīng)于直方圖中的最低方格的ADC輸出代碼計(jì)算線性度誤差之后,方法700 可將直方圖710移位一個(gè)ADC代碼,例如在將直方圖710移位之后,最低方格h [ 0 ]可對(duì)應(yīng)于代 碼Cio+2且最高方格h [ 7 ]可對(duì)應(yīng)于代碼Cio+9。
[0065] 隨后,方法700可繼續(xù)執(zhí)行直方圖計(jì)算且在每次代碼轉(zhuǎn)變時(shí)(例如,在接收約havg個(gè) ADC樣本之后)重復(fù)線性度誤差計(jì)算及直方圖移位直到ADC輸入電壓達(dá)到對(duì)應(yīng)于從Chi-i到Chi 的代碼轉(zhuǎn)變的電壓為止。因?yàn)榫€性度誤差計(jì)算及直方圖移位可使直方圖計(jì)算滯后,所W方 法700可繼續(xù)對(duì)剩余ADC輸出代碼執(zhí)行線性度誤差計(jì)算及直方圖移位直到如圖8中所示直方 圖710的最低方格(例如,h [ 0 ])對(duì)應(yīng)于ADC代碼Chi-i為止。
[0066] 圖9示出了根據(jù)各個(gè)實(shí)施例的ADC I化測(cè)量的圖表900"x軸可表示ADC代碼索引。y 軸可WLSB為單位表示I化值。曲線910、920及930可跨嵌入式裝置上的10位ADC的ADC代碼W LSB為單位表示I化值。I化值是通過(guò)采用基于移動(dòng)直方圖的方法(例如方法700)來(lái)測(cè)量。I化 值是根據(jù)等式(9)且接著除Whs?來(lái)計(jì)算。曲線910可表示當(dāng)hsum是在其中計(jì)算I化值的代碼 跨度dlt內(nèi)計(jì)算的代碼發(fā)生的總次數(shù)時(shí)的mL值。曲線920可表示當(dāng)hsum計(jì)算具有負(fù)3的誤差 時(shí)的1化值,且曲線920可表示當(dāng)hsum計(jì)算具有負(fù)10的誤差時(shí)的I化值。如可從曲線910、920及 930中觀察到,歸因于不精確的hsum的1化測(cè)量誤差是顯著的且可隨著ADC代碼增加而增加。 因此,根據(jù)基于移動(dòng)直方圖的方法測(cè)量的WL值可在很大程度上取決于hsum的精確度。噪音 也可W導(dǎo)致hsum不正確。例如,hsum可根據(jù)測(cè)量I化之前代碼跨度dlt的起始電壓及終止電壓 來(lái)計(jì)算。然而,一些ADC輸出代碼(例如,離群值)可歸因于噪音而落在代碼范圍dlt之外且無(wú) 法針對(duì)代碼發(fā)生進(jìn)行計(jì)數(shù)。因此,如果當(dāng)ADC輸入電壓接近起始電壓或終止電壓時(shí)檢測(cè)到離 群值,那么可因此調(diào)整hsum。
[0067]圖10示出了根據(jù)各個(gè)實(shí)施例的ADC線性度測(cè)試校準(zhǔn)方法1000的流程圖。方法1000 可在基本上類似于ADC測(cè)試設(shè)置300的測(cè)試設(shè)置中的測(cè)試器(例如,測(cè)試器310)上實(shí)施。方法 1000可用于確定起始電壓VTestStart及終止電壓VTestStop,其中VTestStart可對(duì)應(yīng)于導(dǎo)致從Clo到 打。+1的代碼轉(zhuǎn)變的電壓且VTestStop可對(duì)應(yīng)于導(dǎo)致從Chi-1到Chi的代碼轉(zhuǎn)變的電壓。方法1000可 開(kāi)始于在步驟1010處將測(cè)試配置參數(shù)發(fā)送到DUT(例如,DUT 320)。測(cè)試配置參數(shù)可包含兩 次代碼轉(zhuǎn)變CiD+i及Chi。
[006引在步驟1020中,方法1000可將電壓源(例如,電壓源311)的ADC輸入電壓Vin設(shè)置為 最小ADC輸入電壓VADemin。在步驟1030處,方法1000可將觸發(fā)信號(hào)發(fā)送到DUT。在發(fā)送觸發(fā)信 號(hào)之后,方法1000可在步驟1040處等待一定時(shí)段。在此時(shí)段期間,DUT可執(zhí)行ADC轉(zhuǎn)換且計(jì)算 ADC測(cè)量。當(dāng)時(shí)段期滿時(shí),方法1000可進(jìn)行到步驟1050。在步驟1050處,方法1000可將ADC輸 入電壓Vin增加一個(gè)電壓階躍Vstep(例如,Vin = Vin+Vstep)。在步驟1060處,方法1000可確定ADC 輸入電壓Vin是否為最大ADC輸入電壓VADCmax。如果ADC輸入電壓并非最大ADC輸入電壓VADCmax, 那么方法1000可進(jìn)行到步驟1030。方法1000可重復(fù)步驟1030到1060的循環(huán)直到ADC輸入電 壓Vin達(dá)到最大ADC輸入電壓VADCmax為止。
[0069] 在步驟1070處,方法1000可從DUT讀取數(shù)據(jù)。數(shù)據(jù)可包含起始電壓索引Vidxi。及終止 電壓索引Vidxhi,其中起始電壓索引Vidxio可指示檢測(cè)到從Cl。到Cio+I的代碼轉(zhuǎn)變時(shí)的電壓遞 增的次數(shù),且終止電壓索引Vidxhi指示檢測(cè)到從Chi-l到Chi的代碼轉(zhuǎn)變時(shí)的電壓遞增的次數(shù)。 方法1000可分別根據(jù)起始電壓索引Vidxl。(例如,VTestStart = VADCmin+Vstep X Vidxl。)及終止電壓 索引Vidxli(例女日,VTestStop = VADCmin+Vstep X Vidxhi)計(jì)算起始電壓VTestShrt及終止電壓VTestStop。 方法1000可采用某個(gè)替代電壓到索引或代碼映射,運(yùn)可取決于測(cè)試器及/或電壓源配置。
[0070] 圖11示出了根據(jù)各個(gè)實(shí)施例的另一ADC線性度測(cè)試校準(zhǔn)方法1100的流程圖。方法 1100可在基本上類似于ADC測(cè)試設(shè)置300的測(cè)試設(shè)置中的BIST引擎(例如,BIST引擎322及 400)上實(shí)施。方法1100可用于確定起始電壓VTestStart及終止電壓VTestStop,其中VTestStart可對(duì) 應(yīng)于導(dǎo)致從Cl。到打。+1的代碼轉(zhuǎn)變的電壓且VTestStop可對(duì)應(yīng)于導(dǎo)致從Chi-1到Chi的代碼轉(zhuǎn)變的 電壓。方法1100可開(kāi)始于在步驟1110處從測(cè)試器(例如,測(cè)試器310)接收初始化參數(shù)。初始 化參數(shù)可包第一 ADC輸出代碼(例如,CiD+i)及第二ADC輸出代碼(例如,Chi-i)用于線性度測(cè) 試。在步驟1120處,方法1100可將計(jì)數(shù)器初始化為零。
[0071] 在步驟1130處,方法1100可等待來(lái)自測(cè)試器的觸發(fā)信號(hào)。當(dāng)接收到觸發(fā)信號(hào)時(shí),方 法1100可進(jìn)行到步驟1131。在步驟1131處,方法1100可使計(jì)數(shù)器遞增。在步驟1132處,方法 1100可讀取ADC樣本。在步驟1133處,方法1100可確定ADC樣本值A(chǔ)DCvai是否等于第一 ADC輸 出代碼Cio+i。如果ADC樣本值A(chǔ)DCvai不超過(guò)第一 ADC輸出代碼Cio+i,那么方法1100可返回到步 驟1130且重復(fù)步驟1130到1133的循環(huán)。如果ADC樣本值A(chǔ)DCva姬過(guò)第一 ADC輸出代碼打。+1,那 么方法1100可進(jìn)行到步驟1140。在步驟1140處,方法1100可將計(jì)數(shù)器值存儲(chǔ)為起始電壓索 引 Vidxlo。
[0072] 在步驟1150處,方法1100可等待來(lái)自測(cè)試器的觸發(fā)信號(hào)。當(dāng)從測(cè)試器接收到觸發(fā) 信號(hào)時(shí),方法1100可進(jìn)行到步驟1151。在步驟1151處,方法1100可使計(jì)數(shù)器遞增。在步驟 1152處,方法1100可讀取ADC樣本。在步驟1153處,方法1100可確定ADC樣本值A(chǔ)DCvai是否等 于第二ADC輸出代碼Chi-i。如果ADC樣本值A(chǔ)DCva壞超過(guò)第二ADC輸出代碼Chi-i,那么方法1100 可返回到步驟1150且重復(fù)步驟1150到1153的循環(huán)。如果ADC樣本值A(chǔ)DCvai超過(guò)第二ADC輸出 代碼Chi-i,那么方法1100可進(jìn)行到步驟1160。在步驟1160處,方法1100可將計(jì)數(shù)器值存儲(chǔ)為 終止電壓索引Vidxhi。在步驟1170處,方法1100可將起始電壓索引Vidxio及終止電壓索引Vidxhi 發(fā)送到測(cè)試器。ADC線性度測(cè)試可每次電壓遞增讀取一個(gè)ADC樣本,因此Vidxio與Vidxhi之間的 差值可對(duì)應(yīng)于ADC線性度測(cè)試中的代碼發(fā)生的總次數(shù)hsum。
[0073] 圖12示出了根據(jù)各個(gè)實(shí)施例的ADC線性度測(cè)試方法1200的流程圖。方法1200可在 基本上類似于ADC測(cè)試設(shè)置300的測(cè)試設(shè)置中的測(cè)試器(例如,測(cè)試器310)上實(shí)施。方法1200 可用于測(cè)量DUT(例如,DUT 320)上的ADC(例如,ADC 321)的線性度參數(shù)。方法1200可開(kāi)始于 例如通過(guò)采用方法1000針對(duì)起始電壓VTestStart及終止電壓VTestStop校準(zhǔn)ADC之后。VTestStart可 對(duì)應(yīng)于導(dǎo)致從Cl。到打。+1的代碼轉(zhuǎn)變的電壓且VTestSt叩可對(duì)應(yīng)于導(dǎo)致從Chi-1到Chi的代碼轉(zhuǎn)變 的電壓。
[0074] 在方法1210處,方法1200可將電壓源(例如,電壓源311)的ADC輸入電壓Vin設(shè)置為 起始電壓VTestStart。在步驟1220處,方法1200可將觸發(fā)信號(hào)發(fā)送到DUI。在發(fā)送觸發(fā)信號(hào)之 后,方法1200可在步驟1230處等待一定時(shí)段。在此時(shí)段期間,DUT可執(zhí)行ADC轉(zhuǎn)換并計(jì)算ADC 測(cè)量。當(dāng)時(shí)段期滿時(shí),方法1200可進(jìn)行到步驟1240。在步驟1240處,方法1200可將ADC輸入電 壓Vin增加一個(gè)電壓階躍Vstep。在步驟1250處,方法1200可確定ADC輸入電壓Vin是否達(dá)到終止 電壓VTeststop。如果ADC輸入電壓并非終止電壓VTestst叩,那么方法1200可進(jìn)行到步驟1220。方 法1200可重復(fù)步驟1220到1250的循環(huán)直到ADC輸入電壓Vin達(dá)到終止電壓VTeststop為止。
[0075] 在步驟1260處,方法1200可從DUT讀取線性度測(cè)量。測(cè)量可包含最大代碼發(fā)生、最 小代碼發(fā)生、對(duì)應(yīng)于最大代碼發(fā)生的ADC輸出代碼及對(duì)應(yīng)于最小代碼發(fā)生的ADC輸出代碼、 最大縮放INL值、最小縮放INL值、對(duì)應(yīng)于最大縮放INL值的ADC輸出代碼、對(duì)應(yīng)于最小縮放 I化值的ADC輸出代碼,如表1中所述。此外,現(xiàn)慢可進(jìn)一步包含測(cè)試數(shù)據(jù),例如指示接收到 ADC樣本(其中值在測(cè)試代碼范圍dlt之外)的旗標(biāo)。
[0076] 在步驟1270處,方法1200可計(jì)算ADC的最小面L值、最大面L值、最小I化值及最大 I化值,如下所示:
[0083] 圖13示出了根據(jù)各個(gè)實(shí)施例的另一ADC線性度測(cè)試方法1300的流程圖。方法1300 可在位于基本上類似于ADC測(cè)試設(shè)置300的測(cè)試設(shè)置中的嵌入式裝置(例如,DUT 320)中的 BIST引擎(例如,BIST引擎322及400)上實(shí)施。方法1300可用于通過(guò)施加基于移動(dòng)直方圖的 方法測(cè)試忍片上ADC(例如,ADC 321)的線性度參數(shù),運(yùn)可W基本上類似于方法700。方法 1300可開(kāi)始于針對(duì)起始電壓VTestStart(例如,電壓增量計(jì)數(shù)Vidxlo)及終止電壓VTestStop(例如, 電壓增量計(jì)數(shù)Vidxhi)校準(zhǔn)ADC且例如通過(guò)采用方法1000估計(jì)總代碼發(fā)生hsum之后。
[0084] 在步驟1310處,方法1300可等待來(lái)自測(cè)試器(例如,測(cè)試器310)的觸發(fā)信號(hào),其中 觸發(fā)信號(hào)可指示ADC輸入處的輸入電壓(例如,電壓源311)增加階躍Vstep。當(dāng)接收到觸發(fā)信 號(hào)時(shí),方法1300可進(jìn)行到步驟1311。在步驟1311處,方法1300可讀取ADC樣本。在步驟1312 處,方法1300可針對(duì)小范圍(例如,Nbin =約八到Ξ十二)的ADC輸出代碼計(jì)算代碼發(fā)生h [化in]的直方圖(例如,直方圖710),其中直方圖的每一方格可對(duì)應(yīng)于一個(gè)ADC代碼。在步驟 1313處,方法1300可確定電壓源是否為可產(chǎn)生對(duì)應(yīng)于約直方圖中間的方格的ADC輸出代碼 的電壓。如果電壓不對(duì)應(yīng)于約中間方格,那么方法1300可返回到步驟1310且重復(fù)步驟1310 到1313的循環(huán)。否則,方法1300可在電壓Vin對(duì)應(yīng)于約中間方格時(shí)進(jìn)行到步驟1320。當(dāng)電壓 Vin對(duì)應(yīng)于約中間方格時(shí),方法1300可能已經(jīng)接收到對(duì)應(yīng)于最低方格h[0]的所有ADC代碼Ch。 (例如,最低方格是滿的)。
[0085] 在步驟1320處,方法1300可計(jì)算最低方格h[0]的線性度誤差。線性度誤差可包含 最大代碼發(fā)生、最小代碼發(fā)生、最大經(jīng)修改WL值及最大經(jīng)修改WL值。W下偽代碼可用于計(jì) 算最小代碼發(fā)生hmin及最大代碼發(fā)生hmax :
[00則對(duì)應(yīng)于最低方格h[0]的代碼Ch。的經(jīng)修改I化值INLscale可根據(jù)等式(9)計(jì)算。W下 偽代碼可用于計(jì)算最大經(jīng)修改I化值及最大經(jīng)修改I化值:
[0089]
[0090] 在計(jì)算線性度誤差之后,可舍棄最低方格h[0]。因此,在步驟1330處,方法1300可 在步驟1330處將直方圖移位一個(gè)ADC代碼。直方圖的移位可基本上類似于方法700。
[0091] 在將直方圖移位之后,方法1300可繼續(xù)在步驟1340到1342中讀取ADC樣本及更新 直方圖。在步驟1340處,方法1300可等待來(lái)自測(cè)試器的觸發(fā)信號(hào)。當(dāng)接收到觸發(fā)信號(hào)時(shí),方 法1300可進(jìn)行到步驟1341。在步驟1341處,方法1300可讀取ADC樣本。在步驟1342處,方法 1300可繼續(xù)針對(duì)對(duì)應(yīng)于ADC樣本值的方格更新代碼發(fā)生的次數(shù)。在步驟1343處,方法1300可 確定是否從測(cè)試器接收到所有ADC樣本(例如,根據(jù)最終電壓增量Vidxhi)。如果未讀取所有 ADC樣本,那么方法1300可繼續(xù)到步驟1344。在步驟1344處,方法1300可確定自從最終直方 圖移位W來(lái)是否已接收到havg個(gè)樣本。方法1300可在自從最終直方圖移位W來(lái)已接收到havg 個(gè)樣本時(shí)進(jìn)行到步驟1320。否則,方法1300可進(jìn)行到步驟1340。
[0092] 返回到步驟1343,方法1300可在接收到所有樣本時(shí)進(jìn)行到步驟1350。在步驟1350 處,方法1300可針對(duì)h[化in]中的所有方格計(jì)算線性度誤差,其中線性度誤差可在基本上類 似于步驟1320中的機(jī)制中計(jì)算。在步驟1360處,方法1300可將線性度測(cè)量發(fā)送到測(cè)試器。例 如,測(cè)量可包含最大代碼發(fā)生、最小代碼發(fā)生、對(duì)應(yīng)于最大代碼發(fā)生的ADC輸出代碼及對(duì)應(yīng) 于最小代碼發(fā)生的ADC輸出代碼、最大縮放1化值、最小縮放I化值、對(duì)應(yīng)于最大縮放I化值的 ADC輸出代碼、對(duì)應(yīng)于最小縮放I化值的ADC輸出代碼,如表1中所述。
[0093] 當(dāng)輸入電壓接近起始電壓VTestStart時(shí),ADC可產(chǎn)生歸因于噪音或運(yùn)行間變動(dòng)而低于 巧聯(lián)代碼跨度dlt中的最低代碼Cl。的ADC代碼。因此,方法1300可檢測(cè)到落在代碼范圍之外 的代碼(離群值)且可因此利用基于移動(dòng)直方圖的方法調(diào)整總代碼發(fā)生hsumW用于更精確的 慢。此外,方法1300可將旗標(biāo)設(shè)置為指示在電壓未接近VTestStart或VTestStDp的情況下ADC 代碼在代碼范圍dlt之外時(shí)的誤差。
[0094] 圖14示出了根據(jù)各個(gè)實(shí)施例的比較基于所有代碼的直方圖方法對(duì)基于移動(dòng)直方 圖的方法的ADC I化測(cè)量的兩個(gè)圖表。X軸可表示ADC代碼索引且y軸可WLSB為單位表示INL 值。圖表1410是根據(jù)基于所有代碼的直方圖方法計(jì)算的I化值,且圖表1420是根據(jù)基于移動(dòng) 直方圖的方法(例如,方法1000、1100、1200、1300)計(jì)算的I化值。如可觀察到,根據(jù)基于移動(dòng) 直方圖的方法計(jì)算的I化值可與根據(jù)基于所有代碼的直方圖方法計(jì)算的I化值相當(dāng)。
[0095] 可在所述實(shí)施例中進(jìn)行修改且其它實(shí)施例可在權(quán)利要求書的范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種測(cè)試模數(shù)轉(zhuǎn)換器ADC的線性度的方法,其包括: 接收指示ADC輸入電壓階躍調(diào)整的觸發(fā)信號(hào); 當(dāng)接收所述觸發(fā)信號(hào)時(shí)讀取ADC輸出樣本,其中所述ADC輸出樣本具有對(duì)應(yīng)于N個(gè)離散 ADC輸出代碼的N個(gè)整數(shù)值的值范圍; 針對(duì)Μ個(gè)連續(xù)ADC輸出代碼計(jì)算代碼發(fā)生的直方圖,其中所述直方圖包含對(duì)應(yīng)于所述Μ 個(gè)連續(xù)ADC輸出代碼的Μ個(gè)方格,且其中Μ小于Ν; 根據(jù)所述直方圖以Κ個(gè)ADC輸出樣本讀數(shù)的間隔更新微分非線性度DNL值及積分非線性 度INL值;及 在更新所述DNL值及所述INL值之后將所述直方圖移位一個(gè)ADC輸出代碼。2. 根據(jù)權(quán)利要求1所述的方法,其中所述電壓階躍調(diào)整是用于每一調(diào)整的恒定遞增,且 其中Κ個(gè)ADC輸出樣本讀數(shù)的所述間隔對(duì)應(yīng)于所述Ν個(gè)ADC輸出代碼中的每一者的發(fā)生的平 均次數(shù)。3. 根據(jù)權(quán)利要求1所述的方法,其中將所述直方圖移位開(kāi)始于所述ADC樣本值等于比所 述Ν個(gè)ADC輸出代碼中的最小代碼大約Μ/2個(gè)代碼的ADC輸出代碼時(shí)。4. 根據(jù)權(quán)利要求1所述的方法,其中更新所述DNL值包含: 比較最低直方圖方格的方格值與最小代碼發(fā)生及最大代碼發(fā)生,其中所述方格值是對(duì) 應(yīng)于所述最低直方圖方格的當(dāng)前ADC輸出代碼的代碼發(fā)生的次數(shù); 當(dāng)所述方格值小于所述最小代碼發(fā)生時(shí)將所述最小代碼發(fā)生設(shè)置為所述方格值; 當(dāng)所述方格值小于所述最小代碼發(fā)生時(shí)將最小DNL ADC代碼設(shè)置為所述當(dāng)前ADC輸出 代碼; 當(dāng)所述方格值大于所述最大代碼發(fā)生時(shí)將所述最大代碼發(fā)生設(shè)置為所述方格值;及 當(dāng)所述方格值大于所述最大代碼發(fā)生時(shí)將最大DNL ADC代碼設(shè)置為所述當(dāng)前ADC輸出 代碼。5. 根據(jù)權(quán)利要求1所述的方法,其中針對(duì)D個(gè)ADC輸出代碼更新所述DNL值及所述INL值, 所述更新開(kāi)始于第一 ADC輸出代碼處且終止于第二ADC輸出代碼處,其中所述第一 ADC輸出 代碼是大于所述Ν個(gè)ADC輸出代碼中的最小代碼的下一最小代碼,其中所述第二ADC輸出代 碼是小于所述Ν個(gè)ADC輸出代碼中的最大代碼的下一最大代碼,且其中D等于Ν-2的值。6. 根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包括在計(jì)算所述直方圖之前確定所述D個(gè)ADC 輸出代碼中的代碼發(fā)生的總次數(shù),其中確定代碼發(fā)生的所述總次數(shù)包含: 通過(guò)采用計(jì)數(shù)器對(duì)電壓階躍調(diào)整的數(shù)目進(jìn)行計(jì)數(shù); 當(dāng)?shù)谝幌惹癆DC樣本值等于所述Ν個(gè)ADC輸出代碼中的最小代碼且第一當(dāng)前ADC樣本值 等于大于所述最小代碼的所述下一最小代碼時(shí)讀取第一計(jì)數(shù)器值; 當(dāng)?shù)诙惹癆DC樣本值等于小于所述Ν個(gè)ADC輸出代碼中的最大代碼的所述下一最大代 碼且第二當(dāng)前ADC樣本值等于所述最大代碼時(shí)讀取第二計(jì)數(shù)器值; 通過(guò)計(jì)算所述第一計(jì)數(shù)器值與所述第二計(jì)數(shù)器值之間的差值來(lái)設(shè)置代碼發(fā)生的所述 總次數(shù);及 報(bào)告所述第一計(jì)數(shù)器值及所述第二計(jì)數(shù)器值。7. 根據(jù)權(quán)利要求6所述的方法,其中在確定代碼發(fā)生的所述總次數(shù)之后更新所述INL值 且其中更新所述INL值包含: 根據(jù)以下等式對(duì)對(duì)應(yīng)于最低直方圖方格的當(dāng)前ADC輸出代碼計(jì)算縮放DNL值: DNLhsum = h[〇] XD-hsum 其中11_是代碼發(fā)生的所述總次數(shù),且h[0]是所述當(dāng)前ADC輸出代碼的代碼發(fā)生的次 數(shù); 通過(guò)將所述縮放DNL值與先前縮放INL值相加來(lái)對(duì)所述當(dāng)前ADC輸出代碼計(jì)算當(dāng)前縮放 INL 值; 比較所述當(dāng)前縮放INL值與最小縮放INL值及最大縮放INL值; 當(dāng)所述當(dāng)前縮放INL值小于所述最小縮放INL值時(shí)將所述最小縮放INL值設(shè)置為所述當(dāng) 前縮放INL值; 當(dāng)所述當(dāng)前縮放INL值小于所述最小縮放INL值時(shí)將最小INL ADC代碼設(shè)置為所述當(dāng)前 ADC輸出代碼; 當(dāng)所述當(dāng)前縮放INL值大于所述最大縮放INL值時(shí)將所述最大縮放INL值設(shè)置為所述當(dāng) 前縮放INL值;及 當(dāng)所述當(dāng)前縮放INL值大于所述最大縮放INL值時(shí)將最大INL ADC代碼設(shè)置為所述當(dāng)前 ADC輸出代碼。8. 根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包括當(dāng)接收的ADC樣本值小于所述第一 ADC輸 出代碼或大于所述第二ADC輸出代碼時(shí)確定所述ADC的失敗結(jié)果。9. 根據(jù)權(quán)利要求6所述的方法,其進(jìn)一步包括在先前ADC樣本值等于所述第一 ADC輸出 代碼的情況下當(dāng)接收的ADC樣本值小于所述第一 ADC輸出代碼時(shí)將代碼發(fā)生的所述總次數(shù) 遞減1。10. 根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包括在對(duì)所述D個(gè)ADC輸出代碼更新所述INL 值及所述DNL值之后發(fā)送測(cè)試報(bào)告,其中所述測(cè)試報(bào)告包含: 最大代碼發(fā)生; 最小代碼發(fā)生; 對(duì)應(yīng)于所述最大代碼發(fā)生的第一 ADC輸出代碼; 對(duì)應(yīng)于所述最小代碼發(fā)生的第二ADC輸出代碼; 由代碼發(fā)生的總次數(shù)縮放的最大INL值; 由代碼發(fā)生的總次數(shù)縮放的最小INL值; 對(duì)應(yīng)于所述最大縮放INL值的第三ADC輸出代碼; 對(duì)應(yīng)于所述最小縮放INL值的第四ADC輸出代碼;及 所述D個(gè)ADC輸出代碼的代碼發(fā)生的所述總次數(shù)。11. 一種設(shè)備,其包括: 模數(shù)轉(zhuǎn)換器ADC,其經(jīng)配置以將模擬輸入信號(hào)轉(zhuǎn)換為N個(gè)離散ADC輸出代碼; 存儲(chǔ)器,其包含包括存儲(chǔ)Μ個(gè)連續(xù)ADC輸出代碼的發(fā)生次數(shù)的Μ個(gè)方格的直方圖,其中每 一方格對(duì)應(yīng)于所述Μ個(gè)ADC輸出代碼中的一者,且其中Μ小于Ν; 第一接口,其經(jīng)配置以接收指示ADC輸入處的電壓階躍遞增的觸發(fā)信號(hào),其中Κ個(gè)接收 的觸發(fā)信號(hào)的平均值對(duì)應(yīng)于ADC輸出代碼轉(zhuǎn)變;及 處理器,其耦合到所述ADC、所述存儲(chǔ)器和所述第一接口且經(jīng)配置以:當(dāng)接收所述觸發(fā) 信號(hào)時(shí)讀取ADC輸出樣本;通過(guò)將對(duì)應(yīng)于所述ADC樣本的值的方格中的發(fā)生次數(shù)遞增來(lái)計(jì)算 所述直方圖;根據(jù)所述直方圖以K個(gè)ADC輸出樣本讀數(shù)的間隔更新最大代碼發(fā)生、最小代碼 發(fā)生、最大積分非線性度INL值及最小INL,其中所述最大代碼發(fā)生與最大微分非線性度DNL 值成比例,且其中所述最小代碼發(fā)生與最小DNL值成比例;及在更新所述最大代碼發(fā)生、所 述最小代碼發(fā)生、所述最大INL值及所述最小INL值之后將所述直方圖移位一個(gè)ADC輸出代 碼。12. 根據(jù)權(quán)利要求11所述的設(shè)備,其中針對(duì)D個(gè)ADC輸出代碼更新所述最大代碼發(fā)生、所 述最小代碼發(fā)生、所述最大INL值及所述最小INL值,所述更新開(kāi)始于第一 ADC輸出代碼處且 終止于第二ADC輸出代碼處,所述第一 ADC輸出代碼是大于所述N個(gè)ADC輸出代碼中的最小代 碼的下一最小代碼,所述第二ADC輸出代碼是小于所述N個(gè)ADC輸出代碼中的最大代碼的下 一最大代碼,且其中D等于N-2的值。13. 根據(jù)權(quán)利要求11所述的設(shè)備,其中所述處理器經(jīng)配置以通過(guò)以下項(xiàng)來(lái)更新所述最 大代碼發(fā)生及所述最小代碼發(fā)生: 比較最低直方圖方格的方格值與最小代碼發(fā)生及最大代碼發(fā)生; 當(dāng)所述方格值小于所述最小代碼發(fā)生時(shí)將所述最小代碼發(fā)生設(shè)置為所述方格值; 當(dāng)所述方格值小于所述最小代碼發(fā)生時(shí)將最小DNL ADC代碼設(shè)置為對(duì)應(yīng)于所述最低直 方圖方格的ADC輸出代碼; 當(dāng)所述方格值大于所述最大代碼發(fā)生時(shí)將所述最大代碼發(fā)生設(shè)置為所述方格值;及 當(dāng)所述方格值大于所述最大代碼發(fā)生時(shí)將最大DNL ADC代碼設(shè)置為對(duì)應(yīng)于所述最低直 方圖方格的所述ADC輸出代碼。14. 根據(jù)權(quán)利要求11所述的設(shè)備,其中所述處理器進(jìn)一步經(jīng)配置以: 在接收每一觸發(fā)事件之后將計(jì)數(shù)器遞增1; 當(dāng)先前ADC樣本值對(duì)應(yīng)于所述N個(gè)離散ADC輸出代碼中的最小代碼且當(dāng)前ADC樣本值對(duì) 應(yīng)于大于所述最小代碼的下一最小代碼時(shí)記錄第一計(jì)數(shù)器值; 當(dāng)先前ADC樣本值對(duì)應(yīng)于小于所述N個(gè)離散ADC輸出代碼中的最大代碼的下一最大代碼 且當(dāng)前ADC樣本值對(duì)應(yīng)于所述最大代碼時(shí)記錄第二計(jì)數(shù)器值;及 通過(guò)計(jì)算所述第一計(jì)數(shù)器值與所述第二計(jì)數(shù)器值之間的差值來(lái)確定代碼發(fā)生的總次 數(shù),及 其中所述設(shè)備進(jìn)一步包括經(jīng)配置以發(fā)送所述第一計(jì)數(shù)器值及所述第二計(jì)數(shù)器值的第 二接口。15. 根據(jù)權(quán)利要求11所述的設(shè)備,其中所述處理器經(jīng)配置以通過(guò)以下項(xiàng)來(lái)更新所述最 大及最小INL值: 根據(jù)以下等式對(duì)對(duì)應(yīng)于最低直方圖方格的當(dāng)前ADC輸出代碼計(jì)算縮放DNL值: DNLhsum = h[〇] XD-hsum 其中11_是代碼發(fā)生的總次數(shù),且h[0]是所述當(dāng)前ADC輸出代碼的代碼發(fā)生的次數(shù); 通過(guò)將所述縮放DNL值與先前縮放INL值相加來(lái)對(duì)所述當(dāng)前ADC輸出代碼計(jì)算當(dāng)前縮放 INL 值; 比較所述當(dāng)前縮放INL值與最小縮放INL值及最大縮放INL值; 當(dāng)所述當(dāng)前縮放INL值小于所述最小縮放INL值時(shí)將所述最小縮放INL值設(shè)置為所述當(dāng) 前縮放INL值且將最小INL ADC代碼設(shè)置為所述當(dāng)前ADC輸出代碼;及 當(dāng)所述當(dāng)前縮放INL值大于所述最大縮放INL值時(shí)將所述最大縮放INL值設(shè)置為所述當(dāng) 前縮放INL值且將最大INL ADC代碼設(shè)置為所述當(dāng)前ADC輸出代碼。16.根據(jù)權(quán)利要求11所述的設(shè)備,其進(jìn)一步包括第二接口,所述第二接口經(jīng)配置以發(fā)送 所述最大代碼發(fā)生、所述最小代碼發(fā)生、所述最大INL值及所述最小INL值。
【文檔編號(hào)】H03M1/10GK106063132SQ201580009861
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2015年3月2日
【發(fā)明人】科馬克·哈林頓, 肯·穆舍吉安, 安德魯·阿勒曼
【申請(qǐng)人】德州儀器公司