專利名稱:存儲單元測試方法及測試系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種測試方法及其系統(tǒng),尤其是一種存儲單元測試方法及其系統(tǒng)。
背景技術:
存儲單元作為專用集成電路(Application Specific Integrated Circuit,ASIC)/現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)設計的數(shù)據(jù)存儲介質,用來存放或者暫時存放參與運算的數(shù)據(jù)和運算結果,在電子通訊產(chǎn)品中獲得了廣泛的應用。隨著ASIC設計技術的發(fā)展,已有越來越多的存儲單元內嵌或外掛到ASIC、FPGA芯片中使用。但是在ASIC與FPGA邏輯代碼設計中,存儲單元經(jīng)常出現(xiàn)一些故障,例如存儲單元讀寫功能不正確或者一個存儲單元的數(shù)據(jù)受到其它單元的數(shù)據(jù)或讀寫操作的影響而發(fā)生變化,即粘連現(xiàn)象。粘連現(xiàn)象分為地址粘連和Bit(比特)粘連。假設有N個存儲單元,每個存儲單元的數(shù)據(jù)有效位為n個,如果對N個存儲單元中的任何一個進行操作,會影響到其它任何一個存儲單元的內容,這種現(xiàn)象叫地址粘連;如果對于同一個存儲單元,對n個數(shù)據(jù)有效位的任何一個比特有效位進行操作會影響到其它任何一個有效位,這種現(xiàn)象叫Bit粘連。存儲單元的讀寫功能、是否存在粘連現(xiàn)象影響到整個邏輯設計的功能的正確性,因此對存儲單元的讀寫功能和粘連測試是項目驗證的重點。
傳統(tǒng)的測試方法是對一個存儲單元寫操作以后,讀取該存儲單元的數(shù)據(jù)判斷是否與寫入的數(shù)據(jù)一致,從而測試該存儲單元讀寫功能是否正確,然后再讀取所有其它存儲單元的數(shù)據(jù)判斷是否存在粘連現(xiàn)象。該測試方法每次操作一個存儲單元,需要讀取其它所有存儲單元的數(shù)據(jù)進行判斷,如此一來,假如有N個存儲單元,對所有存儲單元測試一遍則需要N×(N+1)次存儲單元讀取操作,然而目前ASIC設計中一般有幾十萬個存儲單元,按照這種傳統(tǒng)的測試方法,測試效率較低。另外,傳統(tǒng)的測試方法對所有存儲單元沒有統(tǒng)一進行清“0”,如果對某個存儲單元寫入數(shù)據(jù),與其它存儲單元的缺省值相同,則無法區(qū)分是否存在地址粘連現(xiàn)象。
發(fā)明內容
本發(fā)明要解決的問題在于提供一種測試效率較高的存儲單元測試方法及其系統(tǒng)。
為解決上述技術問題,本發(fā)明的目的是通過以下技術方案實現(xiàn)的本發(fā)明提供了一種存儲單元測試方法,所述方法包括選擇存儲單元測試類型;根據(jù)所選擇的測試類型產(chǎn)生相應的測試激勵信號并發(fā)送至待測模塊;根據(jù)所述測試激勵信號,對待測模塊的存儲單元索引表進行讀寫操作;對進行所述讀寫操作后的存儲單元索引表的數(shù)據(jù)進行分析,生成相應的測試結果。
本發(fā)明還提供了一種存儲單元測試系統(tǒng),用于測試待測模塊的性能,所述待測模塊包括至少一個存儲單元以及與存儲單元地址相對應的存儲單元索引表,所述存儲單元測試系統(tǒng)包括仿真機制選擇單元、測試激勵產(chǎn)生單元以及測試結果分析單元,所述仿真機制選擇單元用于選擇測試類型;所述測試激勵產(chǎn)生單元根據(jù)選擇的測試類型產(chǎn)生相應的測試激勵信號發(fā)送給待測模塊和測試結果分析模塊;所述測試結果分析模塊從所述待測模塊的存儲單元索引表讀取數(shù)據(jù)生成測試結果。
本發(fā)明提供的存儲單元測試方法及其系統(tǒng),對于存儲單元的地址粘連、Bit粘連以及讀寫功能等問題都采用統(tǒng)一的測試方法以及測試系統(tǒng)進行測試,測試系統(tǒng)結構簡單,便于在各個項目開發(fā)中進行移植和共享,因此不僅能對存儲單元進行全面的測試,而且減低了ASIC設計開發(fā)成本;即使存儲單元進行頻繁增減,也只需維護一張存儲單元索引表即可,因此較大地提高了測試效率。
圖1為本發(fā)明存儲單元測試系統(tǒng)的結構示意圖;圖2為本發(fā)明存儲單元測試方法的流程圖;圖3為本發(fā)明存儲單元測試方法用于地址粘連測試的流程圖;圖4為本發(fā)明存儲單元測試方法用于Bit粘連測試的流程圖;圖5為本發(fā)明存儲單元測試方法用于讀寫功能測試的流程圖。
具體實施例方式
本發(fā)明提供了一種存儲單元測試方法及其系統(tǒng)。為使本發(fā)明更加清楚明了,以下結合附圖對本發(fā)明進行詳細描述。
請參照圖1,為本發(fā)明存儲單元測試系統(tǒng)的結構示意圖。所述存儲單元測試系統(tǒng)包括仿真平臺10和待測試模塊20,所述仿真平臺10包括顯示單元11、仿真機制選擇單元12、測試激勵產(chǎn)生單元13以及測試結果分析單元14。
所述顯示單元11用于將從仿真平臺10外部輸入的信息輸出給仿真機制選擇單元12,并顯示測試結果分析單元14輸入的信息。所述顯示單元11一般為人機界面,從仿真平臺10外部輸入的信息通常是測試人員根據(jù)不同的存儲文件輸入的信息,或是用于控制仿真機制選擇單元12的信息。
所述仿真機制選擇單元12用于接收結果顯示單元11輸入的信息,根據(jù)接收的信息選擇仿真機制,并將選擇的仿真機制分別輸出給測試激勵產(chǎn)生單元13和測試結果分析單元14。所述仿真機制是用來表征對存儲單元進行測試的類型,比如是存儲單元的讀寫功能測試、地址粘連測試還是Bit粘連測試。存儲單元的讀寫功能測試是測試當存儲單元的讀寫使能信號有效時對應地址的數(shù)據(jù)是否能夠正常寫入和讀出,存儲單元的讀寫使能信號無效時存儲單元的數(shù)據(jù)線是否保持不變或高阻;地址粘連測試是測試存儲單元之間是否出現(xiàn)相互影響制約;Bit粘連測試是測試同一存儲單元數(shù)據(jù)位之間是否相互影響。
所述測試激勵產(chǎn)生單元13用于接收仿真機制選擇單元12輸入的仿真機制,根據(jù)接收的仿真機制產(chǎn)生各種測試激勵信號,并將產(chǎn)生的測試激勵信號分別輸出給待測試模塊20和測試結果分析單元14。所述測試激勵信號至少包括寫數(shù)據(jù)信號、寫使能信號、寫地址信號、讀使能信號、讀地址信號和時鐘信號,這些信號由仿真機制選擇單元12所選擇的仿真機制決定。測試激勵產(chǎn)生單元13根據(jù)所述測試激勵信號中的寫使能信號、寫地址信號和時鐘信號,將寫數(shù)據(jù)信號寫入對應的存儲單元;再將讀使能信號、讀地址信號和時鐘信號輸出給測試結果分析單元14,由測試結果分析單元14從待測試模塊20讀出結果。
所述測試結果分析單元14對從待測模塊20讀出的結果進行分析,并將分析后的測試結果輸入顯示單元11顯示給用戶。
所述待測試模塊20包括一個存儲單元索引表21和若干存儲單元22,所述索引表21與存儲單元地址相對應,可以從高到底也可以從低到高進行排列,其內容包括存儲單元的地址值、有效位和缺省值。每次對存儲單元進行讀寫操作檢查時,只需要從存儲單元索引表讀取即可,下面用一個結構體說明索引表中存儲單元包含的內容struct memory{addr--存儲單元的地址data--存儲單元對應的數(shù)據(jù)reset value--存儲單元數(shù)據(jù)的復位值或者缺省值rfu mask--存儲單元數(shù)據(jù)的保留位,“1”表示其對應的數(shù)據(jù)bit位是保留位valid bit--存儲單元數(shù)據(jù)的有效位}請參閱圖2,為本發(fā)明存儲單元測試方法的流程圖,本發(fā)明存儲單元測試方法包括以下步驟步驟101選擇對存儲單元進行測試的類型。
步驟102根據(jù)所選擇的測試類型產(chǎn)生與測試類型對應的測試激勵信號,并將所述測試激勵信號發(fā)送至待測模塊。
步驟103根據(jù)所述測試激勵信號,對待測模塊的存儲單元索引表進行對應的讀寫操作。
步驟104對進行所述讀寫操作后的存儲單元索引表的數(shù)據(jù)進行分析,生成相應的測試結果。
請參閱圖3,為本發(fā)明用于存儲單元地址粘連測試流程圖,具體測試過程包括以下步驟步驟201選擇仿真機制為地址粘連測試機制,產(chǎn)生與地址粘連測試對應的測試激勵信號,并將測試激勵信號發(fā)送至待測試模塊。
所述測試激勵信號包括寫數(shù)據(jù)信號、寫使能信號、寫地址信號、讀使能信號、讀地址信號和時鐘信號。
步驟202對待測試模塊進行上電復位(主要是對芯片進行初始化)。
步驟203在復位過程中讀取存儲單元是否為缺省值,如果是,進行步驟205;如果否,進行步驟204。
步驟204顯示該存儲單元缺省值不正確。
步驟205將待測試模塊的所有存儲單元進行清“0”操作,即對所有存儲單元進行寫“0”,這樣便于對所有存儲單元按照統(tǒng)一規(guī)則進行測試。
步驟206從待測試模塊的存儲單元索引表依次彈出一個地址,讀取該地址的值,檢查是否為“0”,如果是,進行步驟208;如果否,進行步驟207。
步驟207顯示該存儲單元清“0”功能不正確。
步驟208根據(jù)步驟201中產(chǎn)生的測試激勵信號中的寫使能信號、寫地址信號,將寫數(shù)據(jù)信號寫入存儲單元,即向步驟206中存儲單元索引表彈出的地址對應的存儲單元所有有效位寫入“1”,然后根據(jù)所述測試激勵信號中的讀使能信號、讀地址信號以及時鐘信號對該地址對應的存儲單元進行回讀,根據(jù)該地址的存儲單元的有效位個數(shù)檢查回讀數(shù)據(jù)是否也包含與有效位個數(shù)相同數(shù)目的“1”,如果是,進行步驟210;如果否,進行步驟209。
步驟209顯示該存儲單元寫功能不正確。
步驟210將該地址加1,進行相應地址的存儲單元讀操作,檢查回讀值是否為“0”,如果是,進行步驟212;如果否,進行步驟211。
步驟211顯示存在地址粘連,即與當前地址相鄰存儲單元受到當前地址單元數(shù)據(jù)的影響。
步驟212存儲單元索引表是否為空,即是否遍歷存儲單元索引表中所有地址,如果是,進行步驟213,如果否,回到步驟206。
步驟213地址粘連測試結束。
上述地址粘連測試方法每次只對相鄰的兩個地址進行是否存在地址粘連的判斷,對于N個存儲單元只需N×(N-1)/2次讀取操作即可進行依次地址粘連遍歷測試。
另外,上述地址粘連測試方法在步驟210中是將存儲單元地址加1后進行讀操作,即地址指針從低到高,也可以采用地址指針從高到低的方法,其它過程相同,只需在步驟210中將存儲單元地址減1后進行后續(xù)操作即可。
請參閱圖4,為本發(fā)明用于存儲單元Bit粘連測試流程圖,具體測試過程包括以下步驟步驟301選擇仿真機制為Bit粘連測試機制,產(chǎn)生與Bit粘連測試對應的測試激勵信號,并將測試激勵信號發(fā)送至待測試模塊。
所述測試激勵信號包括寫數(shù)據(jù)信號、寫使能信號、寫地址信號、讀使能信號、讀地址信號和時鐘信號。
步驟302對待測試模塊進行上電復位(主要是對芯片進行初始化)。
步驟303在復位過程中讀取存儲單元是否為缺省值,如果是,進行步驟305;如果否,進行步驟304。
步驟304顯示該存儲單元缺省值不正確。
步驟305將待測試模塊的所有存儲單元進行清“0”操作,即對所有存儲單元進行寫“0”,這樣便于對所有存儲單元按照統(tǒng)一規(guī)則進行測試。
步驟306從待測試模塊的存儲單元索引表依次彈出一個地址,讀取該地址對應的存儲單元的數(shù)值是否為“0”,如果是,進行步驟308;如果否,進行步驟307。
步驟307顯示該存儲單元清“0”功能不正確。
步驟308根據(jù)步驟301產(chǎn)生的測試激勵信號中的寫使能信號、寫地址信號以及時鐘信號,將寫數(shù)據(jù)信號寫入存儲單元,即從該地址的存儲單最低有效位開始寫“1”,然后根據(jù)所述測試激勵信號中的讀使能信號、讀地址信號以及時鐘信號對該地址對應的存儲單元進行回讀,檢查讀出和寫入是否一致,如果是,進行步驟310;如果否,進行步驟309。
步驟309顯示該存儲單元存在Bit粘連。
步驟310該存儲單元左移一位的有效位寫入“1”,然后回讀,檢查讀出和寫入是否一致,如果是,進行步驟311;如果否,進行步驟309。
步驟311是否已遍歷該存儲單元所有有效Bit位,如果是,進行步驟312;如果否,進行步驟310。
步驟312存儲單元索引表是否為空,即是否遍歷存儲單元索引表中所有地址,如果是,進行步驟313,如果否,回到步驟306。
步驟313Bit粘連測試結束。
下面以有效位為16Bit的寄存器為例對步“1”法進行具體說明,其測試激勵信號為16’b0000000000000001。首先,對此寄存器寫入16’b0000 0000 00000001,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 00000000 0010,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b00000000 0000 0100,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0000 0000 1000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0000 0001 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0000 0010 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0000 0100 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0000 1000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0001 0000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0010 0000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 0100 0000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0000 1000 0000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0001 0000 0000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0010 0000 0000 0000,然后讀出檢查是否與寫入一致;其次,對此寄存器寫入16’b0100 0000 0000 0000,然后讀出檢查是否與寫入一致;最后,對此寄存器寫入16’b1000 0000 0000 0000,然后讀出檢查是否與寫入一致。這樣對有效位為16Bit的地址存儲器就可以遍歷檢查Bit位是否存在粘連問題。
另外,上述Bit粘連測試方法是從該存儲單元最低位開始寫“1”,然后依次左移寫“1”,即地址指針從低到高,也可以采用地址指針從高到低的方法,只需從最高位開始寫“1”,然后依次右移寫“1”即可。
請參閱圖5,為本發(fā)明用于存儲單元讀寫功能測試流程圖,具體測試過程包括以下步驟步驟401選擇仿真機制為讀寫功能測試機制,產(chǎn)生與讀寫功能測試對應的測試激勵信號,并將測試激勵信號發(fā)送至待測試模塊。
所述測試激勵信號包括寫數(shù)據(jù)信號、寫使能信號、寫地址信號、讀使能信號、讀地址信號和時鐘信號。
步驟402對待測試模塊進行上電復位(主要是對芯片進行初始化)。
步驟403在復位過程中讀取存儲單元是否為缺省值,如果是,進行步驟405;如果否,進行步驟404。
步驟404顯示該存儲單元缺省值不正確。
步驟405將待測試模塊的所有存儲單元進行清“0”操作,即對所有存儲單元進行寫“0”,這樣便于對所有存儲單元按照統(tǒng)一規(guī)則進行測試。
步驟406從待測試模塊的存儲單元索引表依次彈出一個地址,讀取該地址的值,檢查是否為“0”,如果是,進行步驟408;如果否,進行步驟407。
步驟407顯示該存儲單元清“0”功能不正確。
步驟408根據(jù)步驟401產(chǎn)生的測試激勵信號中的寫使能信號、寫地址信號以及時鐘信號,將寫數(shù)據(jù)信號寫入存儲單元,即向該存儲單元寫入相應數(shù)據(jù),然后根據(jù)所述測試激勵信號中的讀使能信號、讀地址信號以及時鐘信號對該地址對應的存儲單元進行讀出,判斷讀出數(shù)據(jù)是否與寫入數(shù)據(jù)一致,如果是,則進行步驟410;如果否,進行步驟409。
步驟409顯示該存儲單元讀寫功能不正確。
步驟410存儲單元索引表是否為空,即是否遍歷存儲單元索引表中所有地址,如果是,進行步驟411,如果否,回到步驟406。
步驟411讀寫功能測試結束。
通過本發(fā)明提供的存儲單元測試方法及其系統(tǒng),對于存儲單元的地址粘連、Bit粘連以及讀寫功能等問題都采用統(tǒng)一的測試方法以及測試系統(tǒng)進行測試,測試系統(tǒng)結構簡單,便于在各個項目開發(fā)中進行移植和共享,因此不僅能對存儲單元進行全面的測試,而且減低了ASIC設計開發(fā)成本;即使存儲單元進行頻繁增減,也只需維護一張存儲單元索引表即可,因此大大減少了工作量。
以上對本發(fā)明所提供的存儲單元測試方法及其系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種存儲單元測試方法,其特征在于,所述方法包括選擇存儲單元測試類型;根據(jù)所選擇的測試類型產(chǎn)生相應的測試激勵信號并發(fā)送至待測模塊;根據(jù)所述測試激勵信號,對待測模塊的存儲單元索引表進行讀寫操作;對進行所述讀寫操作后的存儲單元索引表的數(shù)據(jù)進行分析,生成相應的測試結果。
2.根據(jù)權利要求1所述的存儲單元測試方法,其特征在于,所述選擇的存儲單元測試的類型為地址粘連測試,所述根據(jù)所述測試激勵信號對待測模塊的存儲單元索引表進行讀寫操作具體包括依次向所述存儲單元索引表中每個地址所對應的存儲單元內寫入數(shù)據(jù),將被寫入數(shù)據(jù)的存儲單元的地址值加1或減1,判斷地址值加1或減1后的地址所對應的存儲單元的數(shù)據(jù)是否發(fā)生變化,如果是,所述被寫入數(shù)據(jù)的存儲單元存在地址粘連問題。
3.根據(jù)權利要求2所述的存儲單元測試方法,其特征在于,所述依次向所述存儲單元索引表中每個地址所對應的存儲單元內寫入數(shù)據(jù)后,還包括步驟判斷所述被寫入數(shù)據(jù)的存儲單元的讀出數(shù)據(jù)與寫入數(shù)據(jù)是否相同,如果否,所述存儲單元寫功能不正確。
4.根據(jù)權利要求1所述的存儲單元測試方法,其特征在于,所述選擇存儲單元測試的類型為比特粘連測試,所述根據(jù)所述測試激勵信號對待測模塊的存儲單元索引表進行讀寫操作具體包括向所述存儲單元索引表中每個地址所對應的存儲單元中的每個有效位依次寫入數(shù)據(jù),判斷從被寫入數(shù)據(jù)的存儲單元所讀出的數(shù)據(jù)和寫入的數(shù)據(jù)是否一致,如果否,所述被寫入數(shù)據(jù)的存儲單元存在比特粘連問題。
5.根據(jù)權利要求1所述的存儲單元測試方法,其特征在于,所述選擇存儲單元測試的類型為讀寫功能測試,所述根據(jù)所述測試激勵信號對待測模塊的存儲單元索引表進行讀寫操作具體包括依次向所述存儲單元索引表中每個地址所對應的存儲單元寫入數(shù)據(jù),判斷從被寫入數(shù)據(jù)的存儲單元所讀出的數(shù)據(jù)是否與寫入的數(shù)據(jù)一致,如果否,所述被寫入數(shù)據(jù)的存儲單元讀寫功能不正常。
6.根據(jù)權利要求1至5中任一權利要求所述的存儲單元測試方法,其特征在于,在選擇存儲單元測試類型之前,進一步包括對待測模塊進行上電復位,在復位過程中判斷待測模塊所包含的存儲單元的值是否為缺省值,如果否,則確定所述存儲單元缺省值不正確。
7.一種存儲單元測試系統(tǒng),用于測試待測模塊的性能,所述待測模塊包括至少一個存儲單元,其特征在于,所述待測模塊還包括與存儲單元地址相對應的存儲單元索引表,所述存儲單元測試系統(tǒng)包括仿真機制選擇單元、測試激勵產(chǎn)生單元以及測試結果分析單元,所述仿真機制選擇單元用于選擇測試類型;所述測試激勵產(chǎn)生單元根據(jù)選擇的測試類型產(chǎn)生相應的測試激勵信號發(fā)送給待測模塊和測試結果分析模塊;所述測試結果分析模塊從所述待測模塊的存儲單元索引表讀取數(shù)據(jù)生成測試結果。
8.根據(jù)權利要求7所述的存儲單元測試系統(tǒng),其特征在于,進一步包括顯示單元,用于將所述存儲單元測試系統(tǒng)外部輸入的信息輸出給所述仿真機制選擇單元,并將所述測試結果分析單元生成的測試結果進行顯示。
9根據(jù)權利要求7所述的存儲單元測試系統(tǒng),其特征在于,所述存儲單元索引表的內容包括存儲單元的地址、有效位以及缺省值。
10.根據(jù)權利要求7所述的存儲單元測試系統(tǒng),其特征在于,所述仿真機制選擇單元選擇的測試類型為地址粘連測試或比特粘連測試或讀寫功能測試。
11.根據(jù)權利要求7所述的存儲單元測試系統(tǒng),其特征在于,所述測試激勵信號單元生成的測試激勵信號包括寫數(shù)據(jù)信號、寫使能信號、寫地址信號、讀使能信號、讀地址信號或時鐘信號。
全文摘要
本發(fā)明提供了一種存儲單元測試方法及其系統(tǒng),所述測試方法包括選擇存儲單元測試類型;根據(jù)所選擇的測試類型產(chǎn)生相應的測試激勵信號并發(fā)送至待測模塊;根據(jù)所述測試激勵信號,對待測模塊的存儲單元索引表進行讀寫操作;生成相應的測試結果。本發(fā)明提供的存儲單元測試方法及其系統(tǒng)測試功能較全面且能有效減少工作量以及降低成本。
文檔編號G11C29/04GK1945747SQ20061015068
公開日2007年4月11日 申請日期2006年10月23日 優(yōu)先權日2006年10月23日
發(fā)明者徐善鋒 申請人:華為技術有限公司