突變測試中對突變、測試用例、隨機種子的組合排序的方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路測試平臺質(zhì)量的評估,更具體地,涉及一種突變測試中對突 變、測試用例、隨機種子的組合排序的方法和設(shè)備。
【背景技術(shù)】
[0002] 功能驗證(FunctionalVerification)是保證集成電路功能正確性的方法,在集成 電路設(shè)計流程中占據(jù)至關(guān)重要的地位。高質(zhì)量的功能驗證平臺是保證整個流程可信與可 靠,進而確保集成電路功能正確性的前提。突變測試(MutationTesting)可以對功能驗證 平臺的質(zhì)量進行評估,使得驗證工程師可以定量地給出評估標準。
[0003] 當前的突變測試的基本步驟分為三個部分:1)為編譯后的待測試集成電路的多 個邏輯門產(chǎn)生突變后,隨機選擇至少一個突變(Mutant)。這里待測試集成電路可以使用硬 件描述語言(HDLDesign)描述,可以使用諸如從^641〇8、從^!101^?〇竹&18等等之類的工具 進行編譯。這里突變是指改變待測試集成電路(DesignUnderTest)中某一邏輯門的功能, 例如,將"與"邏輯門的功能更改為"或/異或/同或"邏輯門,總之,只要功能和"與"不一 樣,即稱之為一個突變。為編譯后的待測試集成電路的多個邏輯門產(chǎn)生突變是現(xiàn)有技術(shù),可 以使用現(xiàn)有的改變邏輯門功能、改變邏輯門輸入輸出個數(shù)等方法實現(xiàn)。
[0004] 2)對待測試集成電路進行突變測試仿真。突變測試仿真和普通的電路仿真是很 類似的,唯一的區(qū)別就是在仿真過程中使能了突變。在每次突變測試仿真過程中,只能使能 一個突變和一個測試用例。這里的測試用例是指根據(jù)測試目標,給待測試集成電路加上一 系列的輸入,并通過檢查器觀察待測試集成電路的輸出是否符合預(yù)期狀態(tài),每一組輸入信 號加上相應(yīng)的檢查策略,稱之為一個測試用例。例如,如果要測試一個有兩個輸入信號的 "與"邏輯門的功能,需要給"與"邏輯門的兩個輸入信號加上不同的值,〈1,1> ;〈1,〇> ;〈〇, 1> ;〈0,0>,每一組輸入值有期望的輸出檢查,比如當輸入為〈1,1>時,期望輸出是1,當輸入 為〈1,〇>時,期望輸出是0,以此類推。在這里,每一組輸入值,就是一個針對"與"邏輯門的 測試用例。
[0005] 3)綜合一系列邏輯功能變化及其觀測結(jié)果,給出功能驗證平臺質(zhì)量的定量評估標 準。也就是循環(huán)執(zhí)行步驟1和2,得到一系列邏輯門的突變測試結(jié)果。根據(jù)獲得的結(jié)果,觀察 功能驗證平臺是否能夠正常檢查到待測試集成電路的邏輯功能變化。例如,在上述"與"門 例子中,如果輸入信號是〈〇,1>,那么本來"與"門的輸出結(jié)果應(yīng)該是0,功能驗證平臺也應(yīng) 該期望輸出結(jié)果是0。如果將"與"門的功能改變?yōu)榱?或",那么這個時候輸出就變成了 1, 這時要觀察功能驗證平臺是否能夠正常報錯,因為功能驗證平臺還以為邏輯功能是"與"。 如果功能驗證平臺沒有報錯,那么說明功能驗證平臺沒有正常檢查到邏輯功能的變化,那 么這個檢查器就有問題。
[0006] 在進行突變測試時,如果要精確觀察功能驗證平臺是否可檢測到所有邏輯功能 的變化,最好遍歷全部的突變和測試用例。假設(shè)存在1百萬個突變,使用50個測試用例, 4個隨機種子,每次仿真1小時,則要進行2億小時的突變測試仿真。隨機選擇突變時,若 在某次仿真中,由于使用的當前測試用例產(chǎn)生的測試激勵(Stimulus)無法將該突變激活 (Activation),則該次仿真的結(jié)果與無突變的仿真結(jié)果一致,該次仿真成為一次無效的仿 真,該突變被稱之為等價突變(EqualMutant)。等價突變原因是當前測試用例沒有給突變 加上可以導致其功能發(fā)生變化的輸入信號。還是以上述"與"邏輯門為例,如果將"與"突 變?yōu)?或",而測試用例僅僅有兩個,一個是給輸入信號〈1,1>,另一個是給輸入信號〈〇, 〇>, 那么這兩種輸入信號的對于"與"和"或"來說,輸出都是一樣的,功能沒有發(fā)生變化,因此 該突變沒有被激活。
[0007] 為了提高功能驗證平臺質(zhì)量評估的效率,需要減少等價突變。
【發(fā)明內(nèi)容】
[0008]等價突變與突變本身、測試用例甚至仿真時使用隨機種子都有關(guān)系。在現(xiàn)有技術(shù) 中,由于測試中對多個邏輯門生成的突變是隨機選擇的,可能選擇的突變?yōu)榈葍r突變的概 率比較大,造成無效仿真。本發(fā)明提出的方法和系統(tǒng)能夠?qū)ν蛔?、測試用例、隨機種子的組 合進行排序,從而可以減少選擇等價突變的概率,從而在有效的測試時間內(nèi),減少無效仿 真,提高功能驗證平臺質(zhì)量評估的效率。
[0009] 根據(jù)本發(fā)明的一個方面,提供了一種突變測試中對突變、測試用例、隨機種子的組 合排序的方法,包括:
[0010] 根據(jù)測試用例目標的信號,對編譯后的待測試集成電路獲得與該測試用例目標的 信號相關(guān)的邏輯門及相關(guān)的邏輯門上的突變;
[0011] 計算所述突變與所述測試用例目標的信號之間的距離;
[0012] 對編譯后的待測試集成電路進行電路仿真,獲得突變、測試用例、隨機種子的組合 對應(yīng)的激活周期數(shù);
[0013]獲得突變、測試用例的組合對應(yīng)的激活周期數(shù)方差;以及
[0014] 根據(jù)所述距離,所述激活周期數(shù),以及所述激活周期數(shù)方差,對突變、測試用例、隨 機種子的組合排序。
[0015] 根據(jù)本發(fā)明的另一個方面,提供了一種突變測試中對突變、測試用例、隨機種子的 組合排序的設(shè)備,包括:
[0016] 相關(guān)邏輯門及其上的突變獲得裝置,被配置為根據(jù)測試用例目標的信號,對編譯 后的待測試集成電路獲得與該測試用例目標的信號相關(guān)的邏輯門及相關(guān)的邏輯門上的突 變;
[0017] 距離計算裝置,被配置為計算所述突變與所述測試用例目標的信號之間的距離;
[0018] 激活周期數(shù)獲得裝置,被配置為對編譯后的待測試集成電路進行電路仿真,獲得 突變、測試用例、隨機種子的組合對應(yīng)的激活周期數(shù);
[0019] 激活周期數(shù)方差獲得裝置,被配置為獲得突變、測試用例的組合對應(yīng)的激活周期 數(shù)方差;以及所述激活周期數(shù),以及所述激活周期數(shù)方差,對突變、測試用例、隨機種子的組 合排序。
【附圖說明】
[0020] 通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0021] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖;
[0022] 圖2示出了根據(jù)本發(fā)明一種實施方式的一種突變測試中對突變排序的方法的流 程;
[0023] 圖3是根據(jù)三種不同測試用例目標的信號所確定的不同第一區(qū)域的示意圖;
[0024] 圖4示出了步驟S201的獲得相關(guān)的邏輯門的具體實現(xiàn)步驟;
[0025] 圖5示意性示出了對一個部分集成電路生成的控制數(shù)據(jù)流圖的示意圖;
[0026] 圖6示出了圖5所示出的控制數(shù)據(jù)流圖在給定測試用例目標的信號為輸出信號X 的情況下,與輸出信號X相關(guān)的所有邏輯門;以及
[0027] 圖7示出了一種突變測試中對突變、測試用例、隨機種子的組合排序的設(shè)備的結(jié) 構(gòu)框圖。
【具體實施方式】
[0028] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0029] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使 用范圍帶來任何限制。
[0030] 如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng) /服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0031] 總線18表示幾類總線結(jié)構(gòu)中的