專利名稱:NandFlash控制器中錯誤校正碼模塊的測試方法及系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及芯片測試技術(shù)領域,更具體地說,涉及一種NandFlash控制器中錯誤校正碼模塊的測試方法及系統(tǒng)。
背景技術(shù):
芯片驗證是保證芯片功能的必要環(huán)節(jié),對于芯片驗證過程中,有些涉及到較多復雜邏輯的模塊,需要特別的方法來覆蓋到其所包括的邏輯。Flash存儲器又稱閃存,是存儲芯片的一種,它結(jié)合了 ROM和RAM的長處,不僅具備電子可擦除可編程的性能,還不會斷電丟失數(shù)據(jù)同時可以快速讀取數(shù)據(jù)。NandFlash內(nèi)存是flash內(nèi)存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實現(xiàn)提供了廉價有效的解決方案。NandFlash存儲器具有容量較大、改寫速度快等優(yōu)點,適用于大量數(shù)據(jù)的存儲,因而在業(yè)界得到了越來越廣泛的應用,如嵌入式產(chǎn)品中包括數(shù)碼相機、MP3隨身聽記憶卡、體積小巧的U盤等。NandFlash的控制邏輯比較復雜,對時序要求也十分嚴格,而且最重要的是NandFlash中允許存在一定的壞塊,而且壞塊在使用過程中還可能增加,這就給判斷壞塊、給壞塊做標記和擦除等操作帶來很大的難度,于是就要求有一個控制器,即NandFlash控制器,使系統(tǒng)用戶能夠方便地使用NandFlash。在現(xiàn)有的NandFlash控制器中,通常帶有ECC(Error Correction Code,錯誤校正碼)模塊,用來對NandFlash中的數(shù)據(jù)進行校驗修正,現(xiàn)在大部分NandFlash支持4bit/8bit/12bit/24bit/32bit的ECC糾錯模式。通常芯片內(nèi)部的ECC糾錯邏輯較為復雜,所以需要針對芯片內(nèi)部的ECC功能進行詳細地驗證,以保證其功能正確無誤,進而保證NandFlash讀寫數(shù)據(jù)的正確。但現(xiàn)有技術(shù)中還沒有對ECC模塊糾錯邏輯是否正確進行驗證的有效方案。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種NandFlash控制器中錯誤校正碼模塊的測試方法及系統(tǒng),實現(xiàn)對ECC模塊的驗證,保證其邏輯功能的正確性。為此,本發(fā)明實施例提供如下技術(shù)方案一種NandFlash控制器中錯誤校正碼模塊的測試方法,包括產(chǎn)生預定個數(shù)的隨機數(shù)據(jù);獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù);根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù);在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫入NandFlash ;在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù);如果ECC模塊報錯,則確定所述ECC模塊功能正常;否則確定所述ECC模塊功能異
堂
巾o
優(yōu)選地,所述獲取所述隨機數(shù)據(jù)的ECC數(shù)據(jù)包括在開啟ECC功能的模式下將所述隨機數(shù)據(jù)寫入NandFlash ;在關閉ECC功能的模式下從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)據(jù)。優(yōu)選地,所述方法還包括在從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)時,從所述NandFlash中讀出寫入的隨機數(shù)據(jù);比較讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù);
如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)相同,則執(zhí)行所述根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)的步驟。優(yōu)選地,所述根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)包括選取所述隨機數(shù)據(jù)中的一個或多個比特進行取反操作,將包含翻轉(zhuǎn)后比特的隨機數(shù)據(jù)作為測試數(shù)據(jù)。優(yōu)選地,所述選取所述隨機數(shù)據(jù)中的一個或多個比特進行取反操作包括隨機選取所述隨機數(shù)據(jù)中的I至32比特進行取反操作。一種NandFlash控制器中錯誤校正碼模塊的測試系統(tǒng),包括隨機數(shù)發(fā)生器,用于產(chǎn)生預定個數(shù)的隨機數(shù)據(jù);校驗數(shù)據(jù)獲取單元,用于獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù);測試數(shù)據(jù)生成單元,用于根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù);測試單元,用于在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫A NandFlash ;在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù);驗證單元,用于在所述測試單元從所述NandFlash中讀取寫入的測試數(shù)據(jù)過程中,監(jiān)測所述ECC模塊是否報錯,如果ECC模塊報錯,則確定所述ECC模塊功能正常;否則確定所述ECC模塊功能異常。優(yōu)選地,所述校驗數(shù)據(jù)獲取單元,具體用于在開啟ECC功能的模式下將所述隨機數(shù)據(jù)寫入NandFlash ;在關閉ECC功能的模式下從所述NandFlash中讀出所述ECC模塊產(chǎn)生的所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。優(yōu)選地,所述校驗數(shù)據(jù)獲取單元,還用于在從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)時,從所述NandFlash中讀出寫入的隨機數(shù)據(jù);相應地,所述系統(tǒng)還包括比較單元,用于比較所述校驗數(shù)據(jù)獲取單元讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù);如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)相同,則通知所述測試單元根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)。優(yōu)選地,所述測試數(shù)據(jù)生成單元包括比特選取子單元,用于選取所述隨機數(shù)據(jù)中的一個或多個比特;翻轉(zhuǎn)子單元,用于對所述比特選取子單元選取的比特進行取反操作,將包含翻轉(zhuǎn)后比特的隨機數(shù)據(jù)作為測試數(shù)據(jù)。優(yōu)選地,所述比特選取子單元,具體用于隨機選取所述隨機數(shù)據(jù)中的I至32比特進行取反操作。
本發(fā)明實施例NandFlash控制器中錯誤校正碼模塊的測試方法及系統(tǒng),通過產(chǎn)生預定個數(shù)的隨機數(shù)據(jù),并將其作為正確的原始數(shù)據(jù),獲取這些數(shù)據(jù)的ECC校驗數(shù)據(jù),然后再利用所述隨機數(shù)據(jù)生成與原始數(shù)據(jù)不同的測試數(shù)據(jù),這樣,就可以將所述測試數(shù)據(jù)作為相對于正確的原始數(shù)據(jù)的錯誤數(shù)據(jù),利用ECC模塊的邏輯功能對所述測試數(shù)據(jù)和針對正確的原始數(shù)據(jù)生成的ECC校驗數(shù)據(jù)進行校驗,如果ECC模塊報錯,則表示ECC模塊功能正常;否則表示ECC模塊功能異常,從而可以充分地驗證ECC模塊的功能,保證其邏輯功能的正確性,進而保證NandFlash芯片讀寫數(shù)據(jù)的正確性。
圖I是本發(fā)明實施例NandFlash控制器中錯誤校正碼模塊的測試方法的流程圖;圖2是本發(fā)明實施例NandFlash控制器中錯誤校正碼模塊的測試系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式為了使本技術(shù)領域的人員更好地理解本發(fā)明實施例的方案,下面結(jié)合附圖和實施方式對本發(fā)明實施例作進一步的詳細說明。下面首先對NandFlash控制器中ECC模塊對數(shù)據(jù)進行校驗的原理進行簡單說明。ECC 一般每256字節(jié)原始數(shù)據(jù)生成3字節(jié)ECC校驗數(shù)據(jù),這3字節(jié)共24比特分成兩部分6比特的列校驗和16比特的行校驗,多余的兩個比特置I。當向NandFlash的page中寫入數(shù)據(jù)的時候,每256字節(jié)生成一個ECC校驗和,稱之為原ECC校驗和,保存到page的OOB (out-of-band)數(shù)據(jù)區(qū)中。當從NandFlash中讀取數(shù)據(jù)的時候,每256字節(jié)生成一個ECC校驗和,稱之為新ECC校驗和。ECC模塊將從OOB區(qū)中讀出的原ECC校驗和新ECC校驗和按位異或,若結(jié)果為0,則表示不存在錯(或是出現(xiàn)了 ECC無法檢測的錯誤);若3個字節(jié)異或結(jié)果中存在11個比特位為1,表示存在一個比特錯誤,且可糾正;若3個字節(jié)異或結(jié)果中只存在I個比特位為1,表示OOB區(qū)出錯;其他情況均表示出現(xiàn)了無法糾正的錯誤。對于檢測結(jié)果,ECC模塊通常會給出相應的錯誤提示,即報錯。基于上述原理,本發(fā)明實施例NandFlash控制器中錯誤校正碼模塊的測試方法及系統(tǒng),通過產(chǎn)生預定個數(shù)的隨機數(shù)據(jù),并將其作為正確的原始數(shù)據(jù),獲取這些數(shù)據(jù)的ECC校驗數(shù)據(jù),然后再利用所述隨機數(shù)據(jù)生成與原始數(shù)據(jù)不同的測試數(shù)據(jù),這樣,就可以將所述測試數(shù)據(jù)作為相對于正確的原始數(shù)據(jù)的錯誤數(shù)據(jù),利用ECC模塊的邏輯功能對所述測試數(shù)據(jù)和針對正確的原始數(shù)據(jù)生成的ECC校驗數(shù)據(jù)進行校驗,如果ECC模塊報錯,則表示ECC模塊功能正常;否則表示ECC模塊功能異常,從而可以充分地驗證ECC模塊的功能,保證其邏輯功能的正確性,進而保證NandFlash芯片讀寫數(shù)據(jù)的正確性。在對NandFlash控制器中ECC模塊邏輯功能進行測試之前,需要完成對NandFlash的驅(qū)動程序,以便對NandFlash進行正常的擦除、讀寫等操作,還要完成對ECC模塊的驅(qū)動程序,以便驅(qū)動ECC模塊進行糾錯的功能。這些驅(qū)動程序可以由NandFlash及ECC開發(fā)商來提供,對于不同型號的NandFlash及ECC模式,可以有不同的應用程序,對此本發(fā)明實施例不做限定,只要保證能對NandFlash和ECC模塊進行正常的操作即可。、
如圖I所示,是本發(fā)明實施例NandFlash控制器中ECC模塊的測試方法的流程圖,包括以下步驟步驟101,產(chǎn)生預定個數(shù)的隨機數(shù)據(jù),比如產(chǎn)生IK個數(shù)據(jù)。產(chǎn)生隨機數(shù)據(jù)的具體實現(xiàn)方式可以采用現(xiàn)有的一些隨機數(shù)發(fā)生器產(chǎn)生所述預定個數(shù)的隨機數(shù)據(jù)。步驟102,獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。在本發(fā)明實施例中,需要將所述隨機數(shù)據(jù)作為正確的原始數(shù)據(jù),因此,還需獲取這 些隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。前面提到,ECC的邏輯功能是當向NandFlash的page中寫入數(shù)據(jù)的時候,每256字節(jié)生成一個ECC校驗和,稱之為原ECC校驗和,保存到page的OOB (out-of-band)數(shù)據(jù)區(qū)中。當從NandFlash中讀取數(shù)據(jù)的時候,每256字節(jié)生成一個ECC校驗和,稱之為新ECC校驗和。因此,可以按以下方式來得到所述ECC校驗數(shù)據(jù)首先,在開啟ECC功能的模式下將所述隨機數(shù)據(jù)寫入NandFlash,然后,在關閉ECC功能的模式下從所述NandFlashA的OOB數(shù)據(jù)區(qū)就可以讀出所述ECC模塊生成的ECC校驗數(shù)據(jù)。當然,本發(fā)明實施例并不僅限于上述方式,還可以采用其他方式獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù),比如,根據(jù)ECC功能邏輯直接計算得到所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。步驟103,根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)。在本發(fā)明實施例中,需要利用錯誤的數(shù)據(jù)及正確的ECC校驗數(shù)據(jù),如果ECC模塊邏輯正確,則ECC模塊應該識別出數(shù)據(jù)錯誤,進而報錯;如果ECC模塊對其沒有報錯,則說明ECC模塊邏輯異常。所述的錯誤的數(shù)據(jù)可以由正確的原始數(shù)據(jù)來產(chǎn)生,在本發(fā)明實施例中,可以對所述預定個數(shù)的隨機數(shù)據(jù)進行隨機比特的翻轉(zhuǎn)操作,比如對于上述IK的隨機數(shù)據(jù),隨機選取其中的一個或多個比特進行取反操作,比如,對于支持4比特ECC糾錯模式的ECC模塊,可以隨機選取I至4個比特位置的數(shù)據(jù)進行取反操作;對于支持8比特ECC糾錯模式的ECC模塊,可以隨機選取I至8個比特位置的數(shù)據(jù)進行取反操作;依此類推,本發(fā)明實施例可以針對支持不同模式的ECC模塊進行驗證。經(jīng)過上述翻轉(zhuǎn)操作后,IK的隨機數(shù)據(jù)就會被改變,然后將這包含翻轉(zhuǎn)后比特的IK隨機數(shù)據(jù)作為測試數(shù)據(jù)。當然,也可以采用其他方式生成測試數(shù)據(jù),只需保證生成的測試數(shù)據(jù)與原始的隨機數(shù)據(jù)不同即可,對此本發(fā)明實施例不做限定。步驟104,在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫入NandFlash。這樣,NandFlash中就存儲了錯誤的數(shù)據(jù)和正確的ECC校驗數(shù)據(jù),并且不會產(chǎn)生新的ECC校驗數(shù)據(jù)。當然,所述ECC校驗數(shù)據(jù)需要寫入page的OOB數(shù)據(jù)區(qū)。也就是說,將開啟ECC模式下向NandFlash中寫入數(shù)據(jù)時自動生成ECC校驗數(shù)據(jù)并保存到page的OOB數(shù)據(jù)區(qū)的過程,轉(zhuǎn)為人工控制,以達到向NandFlash中寫入了錯誤的數(shù)據(jù)和與其對應的正確的ECC校驗數(shù)據(jù)的目的。
步驟105,在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù)。步驟106,判斷ECC是否報錯;如果是,則執(zhí)行步驟107 ;否則執(zhí)行步驟108。步驟107,確定所述ECC模塊功能正常。步驟108,確定所述ECC模塊功能異常。前面提到,ECC邏輯功能的原理是當向NandFlash的page中寫入數(shù)據(jù)的時候,每256字節(jié)生成一個ECC校驗和,稱之為原ECC校驗和,保存到page的OOB數(shù)據(jù)區(qū)中。當從NandFlash中讀取數(shù)據(jù)的時候,每256字節(jié)生成一個ECC校驗和,稱之為新ECC校驗和。ECC模塊將從OOB區(qū)中讀出的原ECC校驗和新ECC校驗和按位異或,若結(jié)果為0,則表示不存在錯(或是出現(xiàn)了 ECC無法檢測的錯誤);若結(jié)果為1,則ECC模塊會報錯。
因此,在開啟ECC功能的模式下從所述NandFlash中讀出寫入的測試數(shù)據(jù)時,會產(chǎn)生新的ECC校驗數(shù)據(jù),該新的ECC校驗數(shù)據(jù)是對應所述測試數(shù)據(jù)的,而NandFlash中存儲的ECC校驗數(shù)據(jù)是對應原始隨機數(shù)據(jù)的。從NandFlash中讀出的ECC校驗數(shù)據(jù)應與所述新的ECC校驗數(shù)據(jù)是不同的。因此,如果ECC模塊報錯,則表明所述ECC模塊檢測到了該錯誤,可以確定其功能正常;否則,表明所述ECC模塊未檢測到該錯誤,在這種情況下,所述ECC模塊功能一定是不正常的。利用本發(fā)明實施例NandFlash控制器中ECC模塊的測試方法,可以充分驗證ECC模塊的功能,保證其邏輯功能的正確性,進而保證NandFlash芯片讀寫數(shù)據(jù)的正確性。需要說明的是,在本發(fā)明實施例中,為了進一步保證驗證結(jié)果的可靠性,在上述步驟102和步驟103之間還可包括以下步驟在從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)時,從所述NandFlash中讀出寫入的隨機數(shù)據(jù);比較讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù);如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)相同,則執(zhí)行步驟103;否則表明NandFlash存在讀寫錯誤。本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁碟、光盤等。相應地,本發(fā)明實施例還提供一種NandFlash控制器中錯誤校正碼模塊的測試系統(tǒng),如圖2所示,是該系統(tǒng)的一種結(jié)構(gòu)示意圖。在該實施例中,所述系統(tǒng)包括隨機數(shù)發(fā)生器201,用于產(chǎn)生預定個數(shù)的隨機數(shù)據(jù);校驗數(shù)據(jù)獲取單元202,用于獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù);測試數(shù)據(jù)生成單元203,用于根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù);測試單元204,用于在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫入NandFlash ;在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù);驗證單元205,用于在所述測試單元204從所述NandFlash中讀取寫入的測試數(shù)據(jù)過程中,監(jiān)測所述ECC模塊是否報錯,如果ECC模塊報錯,則確定所述ECC模塊功能正常;否則確定所述ECC模塊功能異常。在本發(fā)明實施例中,所述校驗數(shù)據(jù)獲取單元202可以按以下方式獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)在開啟ECC功能的模式下將所述隨機數(shù)據(jù)寫入NandFlash ;在關閉ECC功能的模式下從所述NandFlash中讀出所述ECC模塊產(chǎn)生的所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。當然,所述校驗數(shù)據(jù)獲取單元202還可以采用其他方式獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù),比如,根據(jù)ECC功能邏輯直接計算所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。對此本發(fā)明實施例不做限定。在本發(fā)明實施例中,所述測試數(shù)據(jù)生成單元203的一種優(yōu)選實施方式包括比特選取子單元和翻轉(zhuǎn)子單元,其中所述比特選取子單元,用于選取所述隨機數(shù)據(jù)中的一個或多個比特,比如,可以隨機選取所述隨機數(shù)據(jù)中的I至32比特進行取反操作;所述翻轉(zhuǎn)子單元,用于對所述比特選取子單元選取的比特進行取反操作,將包含翻轉(zhuǎn)后比特的隨機數(shù)據(jù)作為測試數(shù)據(jù)。當然,所述測試數(shù)據(jù)生成單元203也可以采用其他方式生成測試數(shù)據(jù),只需保證生成的測試數(shù)據(jù)與原始的隨機數(shù)據(jù)不同即可。利用本發(fā)明實施例NandFlash控制器中ECC模塊的測試系統(tǒng),可以充分驗證ECC模塊的功能,保證其邏輯功能的正確性,進而保證NandFlash芯片讀寫數(shù)據(jù)的正確性。需要說明的是,在本發(fā)明實施例中,所述校驗數(shù)據(jù)獲取單元202,還可進一步用于在從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)時,從所述NandFlash中讀出寫入的隨機數(shù)據(jù)。相應地,所述系統(tǒng)還包括比較單元(未圖示),用于比較所述校驗數(shù)據(jù)獲取單元202讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù);如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)相同,則通知所述測試單元204根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)。如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)不同,則表明NandFlash存在讀寫錯誤,此時,可以由所述比較單元直接給出錯誤提示。這樣,可以進一步保證對ECC功能驗證結(jié)果的可靠性。本說明書中的各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。 以上公開的僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明并非局限于此,任何本領域的技術(shù)人員能思之的沒有創(chuàng)造性的變化,以及在不脫離本發(fā)明原理前提下所作的若干改進和潤飾,都應落在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種NandFlash控制器中錯誤校正碼模塊的測試方法,其特征在于,包括 產(chǎn)生預定個數(shù)的隨機數(shù)據(jù); 獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù); 根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù); 在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫入NandFlash ; 在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù); 如果ECC模塊報錯,則確定所述ECC模塊功能正常;否則確定所述ECC模塊功能異常。
2.如權(quán)利要求I所述的方法,其特征在于,所述獲取所述隨機數(shù)據(jù)的ECC數(shù)據(jù)包括 在開啟ECC功能的模式下將所述隨機數(shù)據(jù)寫入NandFlash ; 在關閉ECC功能的模式下從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述方法還包括 在從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)時,從所述NandFlash中讀出寫入的隨機數(shù)據(jù); 比較讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù); 如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)相同,則執(zhí)行所述根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)的步驟。
4.如權(quán)利要求I所述的方法,其特征在于,所述根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)包括 選取所述隨機數(shù)據(jù)中的一個或多個比特進行取反操作,將包含翻轉(zhuǎn)后比特的隨機數(shù)據(jù)作為測試數(shù)據(jù)。
5.如權(quán)利要求4所述的方法,其特征在于,所述選取所述隨機數(shù)據(jù)中的一個或多個比特進行取反操作包括 隨機選取所述隨機數(shù)據(jù)中的I至32比特進行取反操作。
6.一種NandFlash控制器中錯誤校正碼模塊的測試系統(tǒng),其特征在于,包括 隨機數(shù)發(fā)生器,用于產(chǎn)生預定個數(shù)的隨機數(shù)據(jù); 校驗數(shù)據(jù)獲取單元,用于獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù); 測試數(shù)據(jù)生成單元,用于根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù); 測試單元,用于在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫入NandFlash ;在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù); 驗證單元,用于在所述測試單元從所述NandFlash中讀取寫入的測試數(shù)據(jù)過程中,監(jiān)測所述ECC模塊是否報錯,如果ECC模塊報錯,則確定所述ECC模塊功能正常;否則確定所述ECC模塊功能異常。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述校驗數(shù)據(jù)獲取單元,具體用于在開啟ECC功能的模式下將所述隨機數(shù)據(jù)寫入NandFlash ;在關閉ECC功能的模式下從所述NandFlash中讀出所述ECC模塊產(chǎn)生的所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于, 所述校驗數(shù)據(jù)獲取單元,還用于在從所述NandFlash中讀出所述ECC模塊生成的ECC校驗數(shù)時,從所述NandFlash中讀出寫入的隨機數(shù)據(jù); 所述系統(tǒng)還包括比較單元,用于比較所述校驗數(shù)據(jù)獲取單元讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù);如果讀出的隨機數(shù)據(jù)與寫入的隨機數(shù)據(jù)相同,則通知所述測試單元根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù)。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述測試數(shù)據(jù)生成單元包括 比特選取子單元,用于選取所述隨機數(shù)據(jù)中的一個或多個比特; 翻轉(zhuǎn)子單元,用于對所述比特選取子單元選取的比特進行取反操作,將包含翻轉(zhuǎn)后比特的隨機數(shù)據(jù)作為測試數(shù)據(jù)。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于, 所述比特選取子單元,具體用于隨機選取所述隨機數(shù)據(jù)中的I至32比特進行取反操作。
全文摘要
本發(fā)明涉及芯片測試技術(shù)領域,公開了一種NandFlash控制器中錯誤校正碼模塊的測試方法及系統(tǒng),所述方法包括產(chǎn)生預定個數(shù)的隨機數(shù)據(jù);獲取所述隨機數(shù)據(jù)的ECC校驗數(shù)據(jù);根據(jù)所述隨機數(shù)據(jù)生成測試數(shù)據(jù);在關閉ECC功能的模式下將所述測試數(shù)據(jù)和所述ECC校驗數(shù)據(jù)寫入NandFlash;在開啟ECC功能的模式下從所述NandFlash中讀取寫入的測試數(shù)據(jù);如果ECC模塊報錯,則確定所述ECC模塊功能正常;否則確定所述ECC模塊功能異常。利用本發(fā)明,可以實現(xiàn)對ECC模塊的驗證,保證其邏輯功能的正確性。
文檔編號G11C29/42GK102646453SQ20111004083
公開日2012年8月22日 申請日期2011年2月18日 優(yōu)先權(quán)日2011年2月18日
發(fā)明者張宇, 操冬華, 胡勝發(fā), 葛保建, 謝樹, 黃杰成 申請人:安凱(廣州)微電子技術(shù)有限公司