專利名稱:一種基于廣義折疊集的自動測試向量生成方法
一種基于廣義折疊集的自動測試向量生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路測試方法,特別是自動測試向量生成方法。背景技術(shù):
自有集成電路產(chǎn)業(yè)以來,如何以最經(jīng)濟、最快捷的方法測試集成電路,而且獲得不錯的測試品質(zhì),一直是非常重要的課題。隨著集成電路制造工藝的不斷發(fā)展,集成電路的規(guī)模日益增大、復雜度日益增加,使對其測試也變得越來越困難,測試成本在總成本中所占的比例不斷上升。測試已經(jīng)成為集成電路發(fā)展的瓶頸,是設計周期中最昂貴、問題最多的環(huán)節(jié)之一。測試成本與許多因素有關(guān),其中日益增加的龐大的測試數(shù)據(jù)量是與測試成本相關(guān)的重要因素之一。測試數(shù)據(jù)逐年呈指數(shù)規(guī)律增長,到2014年測試數(shù)據(jù)量將達到120( ,這么龐大的數(shù)據(jù)導致了以下問題(1)硬盤和自動測試設備(Automatic Test Equipment, ATE) 之間帶寬有限,使得測試數(shù)據(jù)從硬盤傳輸?shù)紸TE的時間大于測試數(shù)據(jù)從ATE傳輸?shù)奖粶y電路(Circuit Under Test,⑶Τ)的時間,會導致浪費在等待測試數(shù)據(jù)從硬盤到ATE之間的加載時間加長。O)ATE的存儲容量有限,使得必須裁剪或分批加載測試數(shù)據(jù)。如果裁剪測試數(shù)據(jù)就會導致測試質(zhì)量降低;如果分次加載測試數(shù)據(jù),就會增加測試時間。(3)ΑΤΕ與CUT之間的帶寬有限,使得不能降低測試數(shù)據(jù)從ATE的存儲器到CUT的加載時間。雖然更換高檔次的ATE可以在一定程度上緩解上述問題,但這勢必會增加測試成本(ATE價格在50-120 美元/臺)。上述問題是由于測試數(shù)據(jù)量增加帶來的,顯然,如果在測試質(zhì)量不變的情況下減少測試數(shù)據(jù)量,同樣也能解決上述問題。因此迫切需要研究測試數(shù)據(jù)量減少技術(shù)。關(guān)于測試數(shù)據(jù)量減少技術(shù)的研究,主要集中在四個方面(1)測試集緊縮(Test Set Compaction)。該技術(shù)主要通過緊縮部分帶有無關(guān)位 (Don’ t Care Bits)的測試立方(Test Tubes),在故障覆蓋率不變的情況下減少測試向量的個數(shù)來減少測試數(shù)據(jù)量,其優(yōu)點是不需要投入附加的硬件開銷,其缺點是其非模型故障的故障覆蓋率要受到影響。另外,緊縮后的測試集的數(shù)據(jù)量仍然非常龐大,并不能直接存儲和傳輸。(2)內(nèi)建自測試(Built-in Self-Test,BIST)。BIST的基本思想是利用芯片本身所帶有的測試模式生成器(Test Pattern Generator, TPG),在片上直接生成測試向量,以降低對ATE的要求,甚至可以擺脫ATE。由于BIST生成的多是偽隨機測試向量,測試時通常存在著抗隨機故障(Random Resistant Fault,RRF),故BIST存在故障覆蓋率不高、測試序列較長的弊端。雖然可以通過加權(quán)或采用混合模式的BIST等方法來進一步提高測試效率, 但隨著電路規(guī)模的擴大,RRF的增多,所需要的硬件開銷將顯著增加。(3)測試數(shù)據(jù)壓縮(Test Data Compression, TDC)。TDC主要采用的是無損數(shù)據(jù)壓縮的方法,來壓縮預先計算的測試數(shù)據(jù),然后通過片上解壓器進行解壓。它將一些測試資源從ATE移入到芯片中,以達到減少測試數(shù)據(jù)量、縮短測試時間的目的,并能允許使用低速 ATE而不降低測試質(zhì)量。該方法不需要了解CUT的具體內(nèi)部結(jié)構(gòu),可以很好的保護知識產(chǎn)權(quán),因而得到了廣泛地研究。但是,由于在CUT與ATE之間數(shù)據(jù)傳輸存在著信號難以同步的缺點,不解決好同步問題,將會嚴重影響測試效率,改進通訊方式,又將會增加通訊協(xié)議的復雜性。另外,基于編碼的測試數(shù)據(jù)壓縮技術(shù)對多掃描鏈結(jié)構(gòu)并不能很好的相容,需要對每一條掃描鏈都提供一個獨立的解壓電路才能使解壓效率最高。正是由于這些原因,對基于編碼的測試數(shù)據(jù)壓縮技術(shù)的研究僅停留在學術(shù)界,到目前為止還沒有實用的相關(guān)EDA工具出現(xiàn)。(4) 二維測試數(shù)據(jù)壓縮,是一種相容于標準掃描設計的BIST新技術(shù),它有效地組合折疊計數(shù)器以及LFSR編碼技術(shù),利用LFSR編碼折疊計數(shù)器的種子作為LFSR的種子,顯著地壓縮確定測試集的模式數(shù)和模式寬度。由于無需調(diào)整任何掃描鏈,這一方案完全相容標準掃描設計,而不需要任何額外開銷,從整體上來看,此方案是一種具有最佳柔性的BIST方案。從解決問題的方式來看,測試集緊縮技術(shù)可以得到精簡的測試集,由于精簡后的測試集仍然很龐大,因此可以將其與其它測試數(shù)據(jù)減少技術(shù)結(jié)合起來使用。內(nèi)建自測試將 ATE的功能移到芯片上用硬件來產(chǎn)生,因此可以擺脫ATE,在業(yè)界得到廣泛的應用。對于基于編碼的測試數(shù)據(jù)壓縮技術(shù),選擇合適的代碼字,可以提高編碼效率,減少測試數(shù)據(jù)體積。 但對于確定的測試數(shù)據(jù),其數(shù)據(jù)分布是確定的,即其理論極限(熵)是確定的,因此其編碼所能達到的壓縮極限必然是一定的,即無論怎么選擇代碼字,其壓縮效果都不會超過該理論極限(熵)。從各技術(shù)的壓縮效果來看,二維測試壓縮采用兩維的壓縮方法,其有效地組合折疊計數(shù)器以及LFSR編碼技術(shù),是一種非常優(yōu)秀的方案,目前其能達到的壓縮效果在所有同類技術(shù)中最好。但其需要的測試時間比較長,有時很難被接受。另外,該方案中的折疊技術(shù)的翻轉(zhuǎn)規(guī)律比較單一,其很難將壓縮效果發(fā)揮到極致,因此需要對該方案進行改進和完善。對ISCAS89標準電路的Mintest測試集研究發(fā)現(xiàn)用3到4個折疊集就可以達到 60%左右的故障覆蓋率,然而剩下的部分測試向量卻很難嵌入到少量的折疊集中。由于通常一條測試向量可能測了幾個故障點,因此用前面提到的3到4個折疊集所覆蓋的測試向量可能會測到剩下部分測試向量所能測到的全部或部分故障,那么剩下部分測試向量就可以少測一些故障而不影響總的故障覆蓋率,即剩下部分測試向量中某些向量的確定位可以減少,相應的無關(guān)位可以增加,這樣這些剩下的部分測試向量就有可能嵌入到原始的折疊集或較少的幾個新的折疊集中。另外,由于敏化路徑不同,對于同一個故障點可能會產(chǎn)生幾個測試向量,而這幾個測試向量之中可能有的更容易嵌入到前面的折疊集中。即調(diào)整無關(guān)位或更換測試同一故障點的不同測試向量可以讓更多的測試向量嵌入到折疊集中。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種基于廣義折疊集的自動測試向量生成方法,是一種非侵入式的測試數(shù)據(jù)壓縮方法,無需改變被測試的電路結(jié)構(gòu),尤其是電路中掃描鏈的結(jié)構(gòu)。在測試生成時就考慮測試數(shù)據(jù)壓縮,從而使測試生成的數(shù)據(jù)滿足廣義折疊規(guī)律。本發(fā)明是通過以下技術(shù)方案解決上述技術(shù)問題的一種基于廣義折疊集的自動測試向量生成方法,包括下述步驟a、根據(jù)電路結(jié)構(gòu),生成故障列表;b、進行偽隨機測試,將故障分離成易測故障和難測故障;C、對難測故障進行合并,分三個原則來執(zhí)行①如果兩個故障沒有相同的結(jié)構(gòu)輸入核,這兩個向量是可以合并的,基于這兩個故障產(chǎn)生一個測試向量;②如果兩個故障的結(jié)構(gòu)輸入核有交叉,但是它們的影響范圍沒有交叉,仍然基于這兩個故障產(chǎn)生一個測試向量; ③如果上述兩個情況都有交叉,不能判斷他們是否可以直接合并成一個測試向量,在這種情況下,通過已經(jīng)量化的影響范圍指標來判斷兩個故障影響范圍的交叉程度,優(yōu)先選取影響范圍交叉小的故障進行;d、對難測故障按可以合并難測故障數(shù)進行分組;e、選擇可以合并難測故障數(shù)最多的兩組故障產(chǎn)生兩個對應的測試向量;f、由該兩個測試向量確定廣義折疊集;g、用該廣義折疊集進行故障模擬,生成該廣義折疊集可以測試的故障列表;h、對剩下的用該廣義折疊集不能測的故障,重復步驟b_g,一直到所有故障均能被廣義折疊集測試。本發(fā)明進一步具體為上述步驟c中所述影響范圍的判定方法如下對每一個信號線取確定值受影響的基本輸入(PI)或偽基本輸入(PPI)的集合記錄下來,在回溯的過程中進行選擇。信號線1的可控性RCi(I)被定義為使信號線1的值成為i,其中i e {0,1},所需最小的賦確定值的偽基本輸入集合,對于一根信號線,Ci(I)表示最小使1的值為i的有確定值的偽基本輸入集合的個數(shù),它們有如下關(guān)系=Ci(I) = RCi(I);如果1是一個基本輸入或者偽基本輸入的時候,用1 (0)和1 (1)分別代表信號線 1被賦值為0和1,有如下關(guān)系RC1(I) = {1(1)}, RC0(I) = {1(0)} (1)C1(I) = C0(I) = 1(2)對于一個與門來說,假設它的輸入是A和B,它們之間的關(guān)系如下RC1(I) = RC1 (A) U RC1 (B) (3)C1(I) = C1 (A)+C1 (B) + Δ C (4)為了區(qū)分基本輸入和偽基本輸入,因為我們的目標是讓賦值向盡量少的偽基本輸入的方向回溯。如果對于兩個都是基本輸入的情況,C取值為10,作為一個懲罰值;對于同樣的與門,它們的可控度之間的關(guān)系如下
^qc1\RCM) if C0(A) < C0(B)RCn (I) - <(5)
° [RC0(B) if C0(A) > C0(B)
fC0(J) i/C0(A) < C0(B)C0(/) = ^ 0^jj oK j 。、“(6)
° [C0(S) if CM) > CM使一個與門的值為0,只需要一個輸入為0,在多種選擇的時候,只需要選擇一個最小代價的進行回溯;對于一個輸入為A或B的或門,有如下關(guān)系
權(quán)利要求
1.一種基于廣義折疊集的自動測試向量生成方法,其特征在于包括下述步驟a、根據(jù)電路結(jié)構(gòu),生成故障列表;b、進行偽隨機測試,將故障分離成易測故障和難測故障;C、對難測故障進行合并,分三個原則來執(zhí)行①如果兩個故障沒有相同的結(jié)構(gòu)輸入核, 這兩個向量是可以合并的,基于這兩個故障產(chǎn)生一個測試向量;②如果兩個故障的結(jié)構(gòu)輸入核有交叉,但是它們的影響范圍沒有交叉,仍然基于這兩個故障產(chǎn)生一個測試向量;③如果上述兩個情況都有交叉,不能判斷他們是否可以直接合并成一個測試向量,在這種情況下,通過已經(jīng)量化的影響范圍指標來判斷兩個故障影響范圍的交叉程度,優(yōu)先選取影響范圍交叉小的故障進行;d、對難測故障按可以合并難測故障數(shù)進行分組;e、選擇可以合并難測故障數(shù)最多的兩組故障,產(chǎn)生兩個對應的測試向量;f、由該兩個測試向量確定廣義折疊集;g、用該廣義折疊集進行故障模擬,生成該廣義折疊集可以測試的故障列表;h、對剩下的用該廣義折疊集不能測的故障,重復步驟b-g,一直到所有故障均能被廣義折疊集測試。
2.如權(quán)利要求1所述的一種基于廣義折疊集的自動測試向量生成方法,其特征在于 上述步驟c中所述影響范圍的判定方法如下對每一個信號線取確定值受影響的基本輸入(PI)或偽基本輸入(PPI)的集合記錄下來,在回溯的過程中進行選擇。信號線1的可控性RCi(I)被定義為使信號線1的值成為i,其中i e {0,1},所需最小的賦確定值的偽基本輸入集合,對于一根信號線,Ci(I)表示最小使1的值為i的有確定值的偽基本輸入集合的個數(shù),它們有如下關(guān)系=Ci(I) = RCi(I) I ;如果1是一個基本輸入或者偽基本輸入的時候,用1(0)和1(1)分別代表信號線1被賦值為0和1,有如下關(guān)系RC1(I) = {1(1)}, RC0(I) = {1(0)} (1)C1(I) = C0(I) = 1(2)對于一個與門來說,假設它的輸入是A和B,它們之間的關(guān)系如下RC1 (1) = RC1 (A) U RC1 (B) (3)C1(I) = C1(A)+C1(B) + AC (4)為了區(qū)分基本輸入和偽基本輸入,因為我們的目標是讓賦值向盡量少的偽基本輸入的方向回溯。如果對于兩個都是基本輸入的情況,C取值為10,作為一個懲罰值; 對于同樣的與門,它們的可控度之間的關(guān)系如下 RC JRCΜ) if C0(A) < C0(B) [RC0(B) if C0(A) > C0(B) C(l) = [C0(A) IfC0(A)^C0(B) oU~ [C0(B) if C0(A) > C0(B)使一個與門的值為0,只需要一個輸入為0,在多種選擇的時候,只需要選擇一個最小代價的進行回溯;對于一個輸入為A或B的或門,有如下關(guān)系RC0(I) = RC0(A) U RC0(B) (7)C0(I) = C0(A)+C0(B) + AC (8) RC1(A) if CAA) < CAB)...RCAl) = \ } J ' lV ;(9)[RC1(B) if C1(A) > C1(B)Cl(I)Jc^ 伊賽·(10)if C1(A) > C1(B)對于一個輸入是A的非門,它有如下關(guān)系 RC1 (B) = RC0 (A),C1 (B) = I RC1 (B) | (11) RC0 (B) = RC1 (A),C0 (B) = I RC0 (B) | (12)對于一個多扇出的信號線s,如果它的扇出是B1,化,…,Bk,它們之間有如下關(guān)系 Ci(Bj)=Ci(S) (13)對于與非門和或非門來說,是與門、非門和或門的復合,再用上面的公式復合; 對于每個信號線的故障傳播的輸出的可觀測性RO(I)被定義為將信號線1上的故障傳播到輸出,所需的最小的需要賦確定值的偽基本輸入集合,集合的大小用0(1)來表示; 對于電路的原始輸入端P0,有 RO(PO) = Φ,O(PO) = 0 (14)對于非門,其中A為其輸入信號線,B為其輸出信號線,則有 RO (A) = RO (B) (15) O(A) = Iro(A) (16)對于兩輸入與門,其中Α,B為其輸入信號線,1為其輸出信號線,則有 RO (A) = RO(I) U RC1(B) (17) O(A) = Iro(A)(18)對于兩輸入或門,其中Α,B為其輸入信號線,1為其輸出信號線,則有 RO (A) = RO(I) U RC0 (B) (19) O(A) = Iro(A)(20)對于扇出S,設B1, B2,…,Bk為其扇出分支,則有如下關(guān)系0 (S) = min (0 (B1),0 (B2),…, O(Bk)由以上運算,得出信號線1的可觀測性是det(l/i) = CRj-(1' ) U CRj(I) U R0(1' ) 01)。
3.如權(quán)利要求1所述的一種基于廣義折疊集的自動測試向量生成方法其特征在于所述步驟b中,使用傳統(tǒng)的ATPG算法,基于兩個故障產(chǎn)生一個測試向量,所述步驟e中,使用傳統(tǒng)的ATPG算法,產(chǎn)生兩個對應的測試向量。
全文摘要
一種基于廣義折疊集的自動測試向量生成方法,首先通過隨機測試將故障分成易測和難測故障,將難測故障合并,將可以用同一個測試向量測試的難測故障個數(shù)分組,選擇可以合并故障數(shù)最多的兩組故障,采用影響范圍技術(shù)來判斷每個信號線在回退過程中產(chǎn)生影響的原始輸入,指導測試向量的生成過程,產(chǎn)生對應的兩個測試向量,由該兩個測試向量來確定對應的廣義折疊集,用該廣義折疊集的每一個測試向量進行故障模擬,檢查該廣義折疊集所能測的所有故障;對剩下的故障再按上述方法產(chǎn)生完整廣義折疊集,一直到所有故障都能全部檢測,最終得到若干個確定的廣義折疊集。本發(fā)明的優(yōu)點在于可以根據(jù)廣義折疊規(guī)律來壓縮測試數(shù)據(jù),即生成的數(shù)據(jù)更易于壓縮。
文檔編號G01R31/28GK102262209SQ201110095648
公開日2011年11月30日 申請日期2011年4月15日 優(yōu)先權(quán)日2011年4月15日
發(fā)明者孫秀芳, 方曉珍, 詹文法, 韓建華, 馬俊 申請人:詹文法