用于嵌入式快閃存儲器的內(nèi)建自測試方法及裝置制造方法
【專利摘要】一種用于嵌入式快閃存儲器的內(nèi)建自測試方法及裝置,所述方法包括:第一探查步驟、模擬老化步驟、第二探查步驟,其中,所述第一探查步驟包括:生成原始測試數(shù)據(jù);獲取測試數(shù)據(jù)變換規(guī)則;根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù);將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第0行和第1行;所述第二探查步驟包括:分別讀取所述閃存模塊中nvr陣列的第0行和第1行的數(shù)據(jù);基于從第0行和第1行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。本發(fā)明在對nvr陣列的第0行進(jìn)行測試的同時,也同步對第1行進(jìn)行了測試,提高了內(nèi)建自測試的檢測覆蓋率,進(jìn)而也就提高了測試準(zhǔn)確率。
【專利說明】用于嵌入式快閃存儲器的內(nèi)建自測試方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式快閃存儲器【技術(shù)領(lǐng)域】,特別是涉及一種用于嵌入式快閃存儲器的內(nèi)建自測試方法及裝置。
【背景技術(shù)】
[0002]嵌入式快閃存儲器(又稱“嵌入式閃存”,英文:Flash Memory或E-flash)是嵌入式芯片自帶(內(nèi)嵌)的存儲器。諸如身份識別卡芯片(SIM卡芯片)、單片機(jī)芯片(MCU芯片)或單芯片系統(tǒng)(SOC)等嵌入式芯片中往往會帶有嵌入式快閃存儲器。
[0003]嵌入式芯片經(jīng)制造完成后,在出廠前需要先對其質(zhì)量進(jìn)行檢測,該檢測工作可以通過多種方式來完成,例如可以直接測試、用嵌入式CPU進(jìn)行測試或采用內(nèi)建自測試技術(shù)(MBIST)等。其中,內(nèi)建自測試是一種可測性設(shè)計(DFT)技術(shù),在此技術(shù)中測試是通過內(nèi)建的硬件功能完成的,可以快速而有效地完成上述檢測工作。
[0004]嵌入式快閃存儲器通常包括nvr陣列(nvr array)和main陣列(main array),其中,nvr陣列用于保存配置信息,main陣列用于供用戶實際使用。對嵌入式快閃存儲器進(jìn)行的內(nèi)建自測試通常是針對其中的nvr陣列。
[0005]內(nèi)建自測試通常依次包括第一探查步驟(CP1)、模擬老化步驟(又稱“烘烤步驟”,BAKE)和第二探查步驟(CP2)。第一探查步驟的工作是:對芯片的嵌入式快閃存儲器模塊(后簡稱“閃存模塊”)進(jìn)行寫入、讀取及擦除操作;模擬老化步驟的工作是:對閃存模塊進(jìn)行烘烤,以模擬出閃存模塊經(jīng)過一段時間使用后的狀況;第二探查步驟的工作是:從閃存模塊中讀取數(shù)據(jù),并與第一探查步驟中寫入的數(shù)據(jù)進(jìn)行比對,判斷該芯片是否因老化的原因而丟失數(shù)據(jù)。
[0006]然而,現(xiàn)有技術(shù)在對芯片的閃存模塊進(jìn)行內(nèi)建自測試時,僅僅只在其部分的存儲空間內(nèi)寫入數(shù)據(jù)。以nvr陣列為例,nvr陣列通常包括兩行(row),分別為第O行(rowO)和第I行(rowl)。現(xiàn)有技術(shù)在第一探查步驟中僅在第O行中寫入測試數(shù)據(jù),而不會在第I行中寫入數(shù)據(jù),此后,在第二探查步驟中,也僅僅只讀取第O行中的數(shù)據(jù)并比對。
[0007]由此可見,現(xiàn)有技術(shù)中內(nèi)建自測試的方法其檢測覆蓋率較低,從而測試準(zhǔn)確率也較低。
[0008]由于芯片的閃存模塊在進(jìn)行內(nèi)建自測試時(采用MBIST M0DE),其時序/電壓/頻率的設(shè)置與用戶實際使用時(采用CPU MODE)所采用的有所不同,因此,內(nèi)建自測試并不能保證所有的質(zhì)量問題都能在測試過程中被發(fā)現(xiàn),產(chǎn)品在通過了內(nèi)建自測試之后,仍有可能在用戶實際使用時出現(xiàn)質(zhì)量問題。因此,如何提高內(nèi)建自測試的檢測覆蓋率以及測試準(zhǔn)確率,是一個亟需解決的問題。
【發(fā)明內(nèi)容】
[0009]本發(fā)明解決的是現(xiàn)有技術(shù)中用于嵌入式快閃存儲器的內(nèi)建自測試方法測試準(zhǔn)確率較低的技術(shù)問題。[0010]為了解決上述問題,本發(fā)明實施例提供一種用于嵌入式快閃存儲器的內(nèi)建自測試方法,包括:第一探查步驟、模擬老化步驟、第二探查步驟,所述第一探查步驟包括:
[0011]生成原始測試數(shù)據(jù);
[0012]獲取測試數(shù)據(jù)變換規(guī)則;
[0013]根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù);
[0014]將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行;
[0015]所述第二探查步驟包括:
[0016]分別讀取所述閃存模塊中nvr陣列的第O行和第I行的數(shù)據(jù);
[0017]基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。
[0018]可選的,所述變換規(guī)則具體為:
[0019]變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù)
[0020]其中,Oxff為全I(xiàn)序列。
[0021]可選的,所述基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試具體是:
[0022]將從第O行和第I行讀取的數(shù)據(jù)相加;
[0023]若相加后結(jié)果為OxfT,則測試通過,若相加后結(jié)果為OxfT以外的任何值,則測試未通過。
[0024]可選的,所述基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試具體是:
[0025]將寫入第O行的數(shù)據(jù)與從第O行讀取的數(shù)據(jù)進(jìn)行比對,將寫入第I行的數(shù)據(jù)與從第I行讀取的數(shù)據(jù)進(jìn)行比對;
[0026]若兩次比對結(jié)果均顯示相同,則測試通過,若兩次比對結(jié)果中任意一次顯示不同,則測試未通過。
[0027]可選的,所述nvr陣列為nvrl陣列或nvr2陣列,所述nvr陣列包括第O行和第I行,所述第O行和所述第I行的容量均為256字節(jié)或128字節(jié)。
[0028]為了解決上述問題,本發(fā)明實施例還提供一種用于嵌入式快閃存儲器的內(nèi)建自測試裝置,包括:第一探查模塊、模擬老化模塊、第二探查模塊,所述第一探查模塊包括:第一數(shù)據(jù)生成子模塊、變換規(guī)則獲取子模塊、第二數(shù)據(jù)生成子模塊、數(shù)據(jù)寫入子模塊;所述第二探查模塊包括:數(shù)據(jù)讀取子模塊、判斷子模塊,其中:
[0029]所述第一數(shù)據(jù)生成子模塊,用于生成原始測試數(shù)據(jù);
[0030]所述變換規(guī)則獲取子模塊,用于獲取變換規(guī)則;
[0031]所述第二數(shù)據(jù)生成子模塊,用于在所述第一數(shù)據(jù)生成子模塊和所述變換規(guī)則獲取子模塊執(zhí)行操作之后,根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù);
[0032]所述數(shù)據(jù)寫入子模塊,用于在所述第二數(shù)據(jù)生成子模塊執(zhí)行操作之后,將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行;
[0033]所述數(shù)據(jù)讀取子模塊,用于在所述模擬老化模塊執(zhí)行操作之后,分別讀取所述閃存模塊中nvr陣列的第O行和第I行的數(shù)據(jù);
[0034]所述判斷子模塊,用于在所述數(shù)據(jù)讀取子模塊執(zhí)行操作之后,基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。
[0035]可選的,所述變換規(guī)則獲取子模塊所獲取的變換規(guī)則具體為:
[0036]變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù)
[0037]其中,Oxff為全I(xiàn)序列。
[0038]可選的,所述判斷子模塊具體通過以下方式來判斷所述閃存模塊是否通過測試:
[0039]將從第O行和第I行讀取的數(shù)據(jù)相加;
[0040]若相加后結(jié)果為OxfT,則測試通過,若相加后結(jié)果為OxfT以外的任何值,則測試未通過。
[0041]可選的,所述判斷子模塊具體通過以下方式來判斷所述閃存模塊是否通過測試:
[0042]將寫入第O行的數(shù)據(jù)與從第O行讀取的數(shù)據(jù)進(jìn)行比對,將寫入第I行的數(shù)據(jù)與從第I行讀取的數(shù)據(jù)進(jìn)行比對;
[0043]若兩次比對結(jié)果均顯示相同,則測試通過,若兩次比對結(jié)果中任意一次顯示不同,則測試未通過。
[0044]可選的,所述nvr陣列為nvrl陣列或nvr2陣列,所述nvr陣列包括第O行和第I行,所述第O行和所述第I行的容量均為256字節(jié)或128字節(jié)。
[0045]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下有益效果:
[0046]在第一探查步驟中將原始測試數(shù)據(jù)按照一定的變換規(guī)則進(jìn)行變換,以獲得變換后數(shù)據(jù),將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行,在第二探查步驟中基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試,從而在對nvr陣列的第O行進(jìn)行測試的同時,也同步對第I行進(jìn)行了測試,提高了內(nèi)建自測試的檢測覆蓋率,進(jìn)而也就提高了測試準(zhǔn)確率。
[0047]進(jìn)一步地,以取反碼作為變換規(guī)則,無需將讀取的數(shù)據(jù)與寫入的數(shù)據(jù)進(jìn)行比對即可得出判斷出所述閃存模塊是否通過測試,也不必保存寫入的數(shù)據(jù),只需根據(jù)讀取的數(shù)據(jù)即可完成判斷,簡化了算法,提高了測試的效率。
【專利附圖】
【附圖說明】
[0048]圖1是本發(fā)明實施例中對芯片的閃存模塊進(jìn)行內(nèi)建自測試示意圖;
[0049]圖2是本發(fā)明實施例一中用于嵌入式快閃存儲器的內(nèi)建自測試方法流程圖;
[0050]圖3是本發(fā)明實施例二中用于嵌入式快閃存儲器的內(nèi)建自測試裝置結(jié)構(gòu)框圖。
【具體實施方式】
[0051]正如【背景技術(shù)】部分所分析的,現(xiàn)有技術(shù)中用于嵌入式快閃存儲器的內(nèi)建自測試方法其測試準(zhǔn)確率較低,產(chǎn)品在通過了內(nèi)建自測試之后,仍有可能在用戶實際使用時出現(xiàn)質(zhì)量問題。
[0052]為此,本發(fā)明提供了一種用于嵌入式快閃存儲器的內(nèi)建自測試方法。在第一探查步驟中將原始測試數(shù)據(jù)按照一定的變換規(guī)則進(jìn)行變換,以獲得變換后數(shù)據(jù),將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行,在第二探查步驟中基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試,從而在對nvr陣列的第O行進(jìn)行測試的同時,也同步對第I行進(jìn)行了測試,提高了內(nèi)建自測試的檢測覆蓋率,進(jìn)而也就提高了測試準(zhǔn)確率。
[0053]如圖1所示,在對芯片的閃存模塊進(jìn)行內(nèi)建自測試時,計算機(jī)101連接燒錄器102,燒錄器102連接待測的閃存模塊103。操作者通過計算機(jī)101來控制燒錄器102,從而實現(xiàn)對閃存模塊103的寫入、擦除、讀取等操作??梢岳斫獾氖?,每次測試不限于單個閃存模塊103,所述計算機(jī)101可以同時控制多個燒錄器102,同時對多個閃存模塊103進(jìn)行相關(guān)操作。此外,可以通過程序來取代操作者,從而實現(xiàn)測試的自動化。
[0054]為使本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,以下參照附圖,通過具體實施例進(jìn)行詳細(xì)說明。
[0055]實施例一
[0056]參照圖2所示的用于嵌入式快閃存儲器的內(nèi)建自測試方法流程圖,以下通過具體步驟進(jìn)行詳細(xì)說明:
[0057]首先,對待測的閃存模塊進(jìn)行第一探查步驟,所述第一探查步驟包括:
[0058]S211,生成原始測試數(shù)據(jù)。
[0059]所述原始測試數(shù)據(jù)用于在后續(xù)的步驟中寫入所述閃存模塊中。
[0060]所述原始測試數(shù)據(jù)可以是任意數(shù)據(jù)。在具體實施中,所述原始測試數(shù)據(jù)可以包括與所述閃存模塊相關(guān)聯(lián)的配置數(shù)據(jù)。所述配置數(shù)據(jù)可以取自參數(shù)調(diào)整信息(trimminginformation)、追蹤信息(die tracing information)、固件信息(firmware information)中的一種或幾種,例如用于標(biāo)識閃存模塊所屬芯片的序列號等等。
[0061]所述閃存模塊可以包括nvr陣列(nvr array)和main陣列(main array),其中,nvr陣列用于保存配置信息,main陣列用于供用戶實際使用。本實施中內(nèi)建自測試針對的是其中的nvr陣列。所述nvr陣列具體可以是nvrl陣列或nvr2陣列。
[0062]所述nvr陣列包括兩行,分別為第O行(rowO)和第I行(rowl),每行的容量可以是256字節(jié)或128字節(jié),當(dāng)然也可以是其它合適的容量。
[0063]配置數(shù)據(jù)所占用的字節(jié)數(shù)可以小于或等于每行的容量,以容量為每行256字節(jié)的nvr陣列為例,寫入的數(shù)據(jù)所占用的字節(jié)數(shù)只需要滿足任意小于等于256字節(jié)即可,例如可以50字節(jié)或100字節(jié)等。所占用的字節(jié)既可以是連續(xù)的,也可以是離散的,將配置數(shù)據(jù)寫入哪些字節(jié),可以由操作者通過計算機(jī)來控制。
[0064]所述原始測試數(shù)據(jù)的長度與所述nvr陣列中每行的容量相等。當(dāng)配置數(shù)據(jù)所占用的字節(jié)數(shù)小于每行的容量時,可以默認(rèn)其余字節(jié)的數(shù)據(jù)為1,當(dāng)然,也可以默認(rèn)其余字節(jié)的數(shù)據(jù)為O。
[0065]S212,獲取測試數(shù)據(jù)變換規(guī)則。
[0066]所述變換規(guī)則可以是任意預(yù)設(shè)的變換規(guī)則,預(yù)先存儲在計算機(jī)內(nèi)。
[0067]在具體實施中,所述變換規(guī)則可以是取反碼,具體是:變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù),即采用全I(xiàn)序列減去原始測試數(shù)據(jù)來得到變換后數(shù)據(jù),以下通過具體的實例對此作進(jìn)一步說明:
[0068]以字節(jié)為單位進(jìn)行說明,每個字節(jié)包括8個比特位。例如:若原始測試數(shù)據(jù)為01100010,則對該原始測試數(shù)據(jù)取反碼的結(jié)果為:11111111-01100010=10011101,變換后數(shù)據(jù)即為:10011101。又如:若原始測試數(shù)據(jù)為10100001,則對該原始測試數(shù)據(jù)取反碼的結(jié)果為:11111111-10100001=01011110,變換后數(shù)據(jù)即為:01011110o[0069]當(dāng)“取反碼”的概念存在多種定義時,本發(fā)明所涉及的“取反碼”,其含義以以上定義為準(zhǔn),即:變換后數(shù)據(jù)=OxfT-原始測試數(shù)據(jù)。
[0070]可以理解的是,所述變換規(guī)則也可以其它的變換規(guī)則。例如可以是奇偶變換,即改變原始測試數(shù)據(jù)中的奇數(shù)位數(shù)字,而偶數(shù)位數(shù)字保持不變,反之亦可。又如變換規(guī)則還可以采用循環(huán)冗余校驗(CRC校驗)中所生成的多項式。
[0071]寫入的數(shù)據(jù)可以是多個字節(jié),各個字節(jié)可以采用相同的變換規(guī)則,當(dāng)然,也可以采用不同的變換規(guī)則。
[0072]可以理解的是,步驟S211與步驟S212之間不存在必然的先后的關(guān)系。
[0073]S213,根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù)。
[0074]所述變換后數(shù)據(jù)用于在后續(xù)的步驟中寫入所述閃存模塊中。
[0075]S214,將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入所述閃存模塊中nvr陣列的第O行和第I行。
[0076]本實施例中,將所述原始測試數(shù)據(jù)寫入nvr陣列的第O行,將所述變換后數(shù)據(jù)寫入nvr陣列的第I行??梢岳斫獾氖?,也可以將所述原始測試數(shù)據(jù)寫入nvr陣列的第I行,將所述變換后數(shù)據(jù)寫入nvr陣列的第O行。
[0077]可以理解的是,所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)既可以同時寫入所述閃存模塊中nvr陣列的第O行和第I行,也可以在不同的步驟中寫入。例如:可以在步驟S211之后先將所述原始測試數(shù)據(jù)寫入閃存模塊,而后在步驟S213之后再將所述變換后數(shù)據(jù)寫入閃存模塊。
[0078]而后,對待測的閃存模塊進(jìn)行模擬老化步驟,即:
[0079]S221,對所述閃存模塊進(jìn)行模擬老化步驟。
[0080]所述模擬老化步驟具體是:對所述閃存模塊進(jìn)行預(yù)定時長的烘烤,以模擬出閃存模塊經(jīng)過一段時間使用后的狀況。
[0081]由于閃存模塊在實際使用的過程中溫度會升高,為了測試閃存模塊是否會因為溫度的升高而導(dǎo)致數(shù)據(jù)丟失,因而設(shè)置了此步驟。
[0082]再后,對待測的閃存模塊進(jìn)行第二探查步驟,所述第二探查步驟包括:
[0083]S231,分別讀取所述閃存模塊中nvr陣列的第O行和第I行的數(shù)據(jù)。
[0084]讀取的數(shù)據(jù)用于在后續(xù)的步驟中判斷所述閃存模塊是否通過測試。
[0085]為了描述方便,將從第O行中讀取的數(shù)據(jù)稱為“第O行數(shù)據(jù)”,將從第I行中讀取的數(shù)據(jù)稱為“第I行數(shù)據(jù)”。
[0086]S232,基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。
[0087]可以有多種方式判斷所述閃存模塊是否通過測試,例如:
[0088]可以將步驟S214中寫入第O行的數(shù)據(jù)與步驟S231中從第O行讀取的數(shù)據(jù)進(jìn)行比對,將步驟S214中寫入第I行的數(shù)據(jù)與步驟S231中從第I行讀取的數(shù)據(jù)進(jìn)行比對。若兩次比對結(jié)果均顯示相同,則測試通過,若兩次比對結(jié)果中任意一次顯示不同,則測試未通過。
[0089]通過上述方案可以看出,在第一探查步驟中將原始測試數(shù)據(jù)按照一定的變換規(guī)則進(jìn)行變換,以獲得變換后數(shù)據(jù),將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行,在第二探查步驟中基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試,從而在對nvr陣列的第O行進(jìn)行測試的同時,也同步對第I行進(jìn)行了測試,提高了內(nèi)建自測試的檢測覆蓋率,進(jìn)而也就提高了測試準(zhǔn)確率。
[0090]在所述變換規(guī)則為:變換后數(shù)據(jù)=OxfT-原始測試數(shù)據(jù)的情況下(取反碼),可以通過以下方式來判斷所述閃存模塊是否通過測試,具體是:
[0091]將步驟231中從第O行讀取的數(shù)據(jù)與從第I行讀取的數(shù)據(jù)相加,即:相加后結(jié)果=第O行數(shù)據(jù)+第I行數(shù)據(jù)。由于數(shù)據(jù)寫入時:變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù),因此,此時只需要判斷相加后結(jié)果是否為Oxff即可(其中,Oxff為8比特位的全I(xiàn)序列,S卩11111111)。若相加后結(jié)果=Oxff,則測試通過;
[0092]若相加后結(jié)果為OxfT以外的任何值,則測試未通過。
[0093]通過上述方案可以看出,以取反碼作為變換規(guī)則,無需將讀取的數(shù)據(jù)與寫入的數(shù)據(jù)進(jìn)行比對即可得出判斷出所述閃存模塊是否通過測試,也不必保存寫入的數(shù)據(jù),只需根據(jù)讀取的數(shù)據(jù)即可完成判斷,簡化了算法,提高了測試的效率。
[0094]實施例二
[0095]參照圖3所示的用于嵌入式快閃存儲器的內(nèi)建自測試裝置結(jié)構(gòu)框圖,所述裝置包括:第一探查模塊310、模擬老化模塊320、第二探查模塊330,所述第一探查模塊310包括:第一數(shù)據(jù)生成子模塊311、變換規(guī)則獲取子模塊312、第二數(shù)據(jù)生成子模塊313、數(shù)據(jù)寫入子模塊314 ;所述第二探查模塊包括:數(shù)據(jù)讀取子模塊331、判斷子模塊332,其中:
[0096]所述第一數(shù)據(jù)生成子模塊311,用于生成原始測試數(shù)據(jù);
[0097]所述變換規(guī)則獲取子模塊312,用于獲取變換規(guī)則;
[0098]所述第二數(shù)據(jù)生成子模塊313,用于在所述第一數(shù)據(jù)生成子模塊311和所述變換規(guī)則獲取子模塊312執(zhí)行操作之后,根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù);
[0099]所述數(shù)據(jù)寫入子模塊314,用于在所述第二數(shù)據(jù)生成子模塊313執(zhí)行操作之后,將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行;
[0100]所述數(shù)據(jù)讀取子模塊331,用于在所述模擬老化模塊320執(zhí)行操作之后,分別讀取所述閃存模塊中nvr陣列的第O行和第I行的數(shù)據(jù);
[0101]所述判斷子模塊332,用于在所述數(shù)據(jù)讀取子模塊331執(zhí)行操作之后,基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。
[0102]本實施例中,在第一探查步驟中將原始測試數(shù)據(jù)按照一定的變換規(guī)則進(jìn)行變換,以獲得變換后數(shù)據(jù),將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行,在第二探查步驟中基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試,從而在對nvr陣列的第O行進(jìn)行測試的同時,也同步對第I行進(jìn)行了測試,提高了內(nèi)建自測試的檢測覆蓋率,進(jìn)而也就提高了測試準(zhǔn)確率。
[0103]在具體實施中,所述變換規(guī)則獲取子模塊所獲取的變換規(guī)則具體可以是:
[0104]變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù)
[0105]其中,Oxff為全I(xiàn)序列。
[0106]所述判斷子模塊具體通過以下方式來判斷所述閃存模塊是否通過測試:
[0107]將從第O行和第I行讀取的數(shù)據(jù)相加;
[0108]若相加后結(jié)果為OxfT,則測試通過,若相加后結(jié)果為OxfT以外的任何值,則測試未通過。[0109]從上述方案可以看出,以取反碼作為變換規(guī)則,無需將讀取的數(shù)據(jù)與寫入的數(shù)據(jù)進(jìn)行比對即可得出判斷出所述閃存模塊是否通過測試,也不必保存寫入的數(shù)據(jù),只需根據(jù)讀取的數(shù)據(jù)即可完成判斷,簡化了算法,提高了測試的效率。
[0110]在具體實施中,所述判斷子模塊具體通過以下方式來判斷所述閃存模塊是否通過測試:
[0111]將寫入第O行的數(shù)據(jù)與從第O行讀取的數(shù)據(jù)進(jìn)行比對,將寫入第I行的數(shù)據(jù)與從第I行讀取的數(shù)據(jù)進(jìn)行比對;
[0112]若兩次比對結(jié)果均顯示相同,則測試通過,若兩次比對結(jié)果中任意一次顯示不同,則測試未通過。
[0113]所述nvr陣列為nvrl陣列或nvr2陣列,所述nvr陣列包括第O行和第I行,所述第O行和所述第I行的容量均為256字節(jié)或128字節(jié)。
[0114]本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:R0M、RAM、磁盤或光盤等。
[0115]雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種用于嵌入式快閃存儲器的內(nèi)建自測試方法,包括:第一探查步驟、模擬老化步驟、第二探查步驟,其特征在于,所述第一探查步驟包括: 生成原始測試數(shù)據(jù); 獲取測試數(shù)據(jù)變換規(guī)則; 根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù); 將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行; 所述第二探查步驟包括: 分別讀取所述閃存模塊中nvr陣列的第O行和第I行的數(shù)據(jù); 基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。
2.如權(quán)利要求1所述的用于嵌入式快閃存儲器的內(nèi)建自測試方法,其特征在于,所述變換規(guī)則具體為: 變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù) 其中,Oxff為全I(xiàn)序列。
3.如權(quán)利要求1或2所述的用于嵌入式快閃存儲器的內(nèi)建自測試方法,其特征在于,所述基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試具體是: 將從第O行和第I行讀取的數(shù)據(jù)相加; 若相加后結(jié)果為OxfT,則測試通過,若相加后結(jié)果為OxfT以外的任何值,則測試未通過。
4.如權(quán)利要求1所述的用于嵌入式快閃存儲器的內(nèi)建自測試方法,其特征在于,所述基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試具體是: 將寫入第O行的數(shù)據(jù)與從第O行讀取的數(shù)據(jù)進(jìn)行比對,將寫入第I行的數(shù)據(jù)與從第I行讀取的數(shù)據(jù)進(jìn)行比對; 若兩次比對結(jié)果均顯示相同,則測試通過,若兩次比對結(jié)果中任意一次顯示不同,則測試未通過。
5.如權(quán)利要求1所述的用于嵌入式快閃存儲器的內(nèi)建自測試方法,其特征在于,所述nvr陣列為nvrl陣列或nvr2陣列,所述nvr陣列包括第O行和第I行,所述第O行和所述第I行的容量均為256字節(jié)或128字節(jié)。
6.一種用于嵌入式快閃存儲器的內(nèi)建自測試裝置,包括:第一探查模塊、模擬老化模塊、第二探查模塊,其特征在于,所述第一探查模塊包括:第一數(shù)據(jù)生成子模塊、變換規(guī)則獲取子模塊、第二數(shù)據(jù)生成子模塊、數(shù)據(jù)寫入子模塊;所述第二探查模塊包括:數(shù)據(jù)讀取子模塊、判斷子模塊,其中: 所述第一數(shù)據(jù)生成子模塊,用于生成原始測試數(shù)據(jù); 所述變換規(guī)則獲取子模塊,用于獲取變換規(guī)則; 所述第二數(shù)據(jù)生成子模塊,用于在所述第一數(shù)據(jù)生成子模塊和所述變換規(guī)則獲取子模塊執(zhí)行操作之后,根據(jù)所述原始測試數(shù)據(jù)和所述變換規(guī)則,生成變換后數(shù)據(jù); 所述數(shù)據(jù)寫入子模塊,用于在所述第二數(shù)據(jù)生成子模塊執(zhí)行操作之后,將所述原始測試數(shù)據(jù)和所述變換后數(shù)據(jù)分別寫入閃存模塊中nvr陣列的第O行和第I行; 所述數(shù)據(jù)讀取子模塊,用于在所述模擬老化模塊執(zhí)行操作之后,分別讀取所述閃存模塊中nvr陣列的第O行和第I行的數(shù)據(jù); 所述判斷子模塊,用于在所述數(shù)據(jù)讀取子模塊執(zhí)行操作之后,基于從第O行和第I行讀取的數(shù)據(jù),判斷所述閃存模塊是否通過測試。
7.如權(quán)利要求6所述的用于嵌入式快閃存儲器的內(nèi)建自測試裝置,其特征在于,所述變換規(guī)則獲取子模塊所獲取的變換規(guī)則具體為: 變換后數(shù)據(jù)=Oxff-原始測試數(shù)據(jù) 其中,Oxff為全1序列。
8.如權(quán)利要求6或7所述的用于嵌入式快閃存儲器的內(nèi)建自測試裝置,其特征在于,所述判斷子模塊具體通過以下方式來判斷所述閃存模塊是否通過測試: 將從第O行和第I行讀取的數(shù)據(jù)相加; 若相加后結(jié)果為OxfT,則測試通過,若相加后結(jié)果為OxfT以外的任何值,則測試未通過。
9.如權(quán)利要求6所述的用于嵌入式快閃存儲器的內(nèi)建自測試裝置,其特征在于,所述判斷子模塊具體通過以下方式來判斷所述閃存模塊是否通過測試: 將寫入第O行的數(shù)據(jù)與從第O行讀取的數(shù)據(jù)進(jìn)行比對,將寫入第I行的數(shù)據(jù)與從第I行讀取的數(shù)據(jù)進(jìn)行比對; 若兩次比對結(jié)果均顯示相同,則測試通過,若兩次比對結(jié)果中任意一次顯示不同,則測試未通過。
10.如權(quán)利要求6所述的用于嵌入式快閃存儲器的內(nèi)建自測試裝置,其特征在于,所述nvr陣列為nvrl陣列或nvr2陣列,所述nvr陣列包括第O行和第I行,所述第O行和所述第I行的容量均為256字節(jié)或128字節(jié)。
【文檔編號】G11C29/12GK103839592SQ201410078732
【公開日】2014年6月4日 申請日期:2014年3月5日 優(yōu)先權(quán)日:2014年3月5日
【發(fā)明者】任棟梁, 錢亮 申請人:上海華虹宏力半導(dǎo)體制造有限公司