魏淑華 禚 永
(北方工業(yè)大學(xué)信息工程學(xué)院,北京 100144)
基于內(nèi)建自測試的測試向量生成方法
魏淑華 禚 永
(北方工業(yè)大學(xué)信息工程學(xué)院,北京 100144)
內(nèi)建自測試(BIST)方法是目前可測性設(shè)計(DFT)中最具應(yīng)用前景的一種方法。BIST能顯著提高電路的可測性,而測試向量的生成是關(guān)系BIST性能好壞的重要方面。測試生成的目的在于,生成可能少的測試向量并用以獲得足夠高的故障覆蓋率,同時使得用于測試的硬件電路面積開銷盡可能低,測試時間盡可能短。本文對幾種內(nèi)建自測試中測試向量生成方法進(jìn)行了簡單的介紹和對比研究,分析各自的優(yōu)缺點(diǎn),并在此基礎(chǔ)上探討了BIST面臨的主要問題和發(fā)展方向。
可測性設(shè)計;內(nèi)建自測試;測試向量生成;線性反饋移位寄存器
近年來,集成電路設(shè)計方法和產(chǎn)品制造工藝發(fā)展迅速,然而,隨之而來的集成電路的可測性問題,已成為提高產(chǎn)品可靠性和成品合格率的一個關(guān)鍵[1]。合理的可測性設(shè)計可以有效地降低測試生成的難度,提高故障覆蓋率,縮短測試周期,降低測試成本,因此,可測性設(shè)計在集成電路測試中變得尤為重要[2]。內(nèi)建自測試是近些年比較熱門的一種可測性設(shè)計方法,它能較便捷地生成測試向量,并且可以保證較高的故障覆蓋率和較短的測試周期,從而大大降低集成電路的測試成本。隨著芯片集成度的提高,內(nèi)建自測試已經(jīng)在現(xiàn)代集成電路的測試中得到廣泛的應(yīng)用。
內(nèi)建自測試電路一般包括測試圖形生成器(激勵),被測電路(circuits under Test,CUT),輸出響應(yīng)分析器和內(nèi)建自測試控制單元。如圖1所示。其測試原理為;TPG生成的測試信號加到CUT中,ORA對測試輸出結(jié)果進(jìn)行壓縮,然后與理想結(jié)果進(jìn)行比對分析,給出通過或不通過的結(jié)果,所有測試操作由BIST控制單元(BCU)控制[3]。
圖1 典型內(nèi)建自測試結(jié)構(gòu)
目前應(yīng)用于集成電路測試的測試向量生成方法,大體可分為兩大類:一類是針對故障的確定性測試向量生成,這種測試向量生成方法需要使用專門的算法,如D算法,F(xiàn)AN算法,由于算法是基于故障來生成測試向量,并沒有冗余的測試向量,故而測試向量長度很短,然而,因?yàn)闇y試向量生成需要專門的算法,所以測試向量生成比較困難。另一類是用采用特定的測試向量生成電路生成隨機(jī)的或是偽隨機(jī)的測試向量,對于生成的隨機(jī)或偽隨機(jī)測試向量,可以用足夠長度的測試圖形來保證故障覆蓋率。
3.1 確定性測試向量生成
確定性測試向量生成的算法中,常見的有D算法,F(xiàn)AN算法等,都可以完成測試向量的生成。在此簡單介紹D算法測試生成。
D算法的基本思路是:為了測試故障,必須使故障點(diǎn)的正常值與故障值產(chǎn)生差異,并將它們傳送到輸出端。另外,要先建立被測電路故障元件的原始D立方;再進(jìn)行D驅(qū)趕,直到輸出出現(xiàn)D或D非就表示已將故障點(diǎn)的故障傳送到輸出。驅(qū)趕成功之后,對電路中非敏化路徑上的邏輯門進(jìn)行蘊(yùn)涵操作。之后進(jìn)行一致性檢查,判斷某些線在各個過程中所賦予的值是否一致,若成功則確定測試圖形,否則無測試生成。如圖2所示的被測電路,為四輸入但輸出組合邏輯電路,用C語言編寫D算法程序流程圖如圖3所示。
圖2 被測電路圖
內(nèi)建自測試在集成電路測試中有諸多優(yōu)點(diǎn),比如:不用依賴專門的測試儀器即可在電路內(nèi)部生成測試向量;可以縮短測試周期;可以大幅度降低測試成本;能實(shí)現(xiàn)在系統(tǒng)測試等[4]。
圖3流程圖
此向量生成法的優(yōu)點(diǎn)有:測試向量長度較短,與其它測試生成法生成的圖形相比,測試施加時間最短,并可以保證很高的故障覆蓋率。缺點(diǎn)是測試生成方法非常復(fù)雜,測試生成時間非常長,測試開銷太大,成本太高。
3.2 偽隨機(jī)測試向量生成
偽隨機(jī)測試生成是用無輸入的線性反饋移位寄存器(LFSR)構(gòu)成偽隨機(jī)序列生成電路,所生成的序列只與寄存器的初始狀態(tài)和反饋方式有關(guān)[5]。圖4和圖5是線性反饋移位寄存器生成測試向量的兩種反饋連接方式。圖4為外部異或的LFSR,圖5為內(nèi)部異或的LFSR。
圖4外部異或的LFSR
圖5內(nèi)部異或的LFSR
對于圖4和圖5,ai(i=1,2,……m)表示寄存器,ci(i=1,2……m)表示此處的異或門反饋,ci=1有異或門反饋連接,ci= 0則無異或門反饋連接,兩種不同的反饋連接方式所產(chǎn)生的函數(shù)都可以表示為:
圖6 偽隨機(jī)測試故障覆蓋率與測試向量數(shù)關(guān)系
偽隨機(jī)測試向量生成的優(yōu)點(diǎn)在于,既用于組合邏輯電路,也適用于時序邏輯電路,而且不需要專門的算法,測試生成較簡單。用LFSR生成測試向量,是目前BIST中應(yīng)用最廣的測試向量生成方法。然而這種測試向量生成法也存在難以解決的問題,如果測試向量長度太短,則測試時間也就很短,但是不能保證較高的故障覆蓋率,如果想通過增加測試向量長度來保證足夠的故障覆蓋率,又大大增加了測試時間,即很難用較短的測試向量保證足夠高的故障覆蓋率。從圖6中我們可以看出,剛開始時,隨著偽隨機(jī)測試向量數(shù)的增加,故障覆蓋率會提高,但是偽隨機(jī)測試向量數(shù)增加到一定程度,故障覆蓋率不再有明顯地提高。這就意味著,增加相同長度的測試向量數(shù),能檢測到的故障數(shù)越來越少,出現(xiàn)很多冗余的測試向量,這些多余的測試向量,不僅不能檢測到任何故障,還會延長測試時間。另外,從整體性能上看,采用混合連接型構(gòu)成的測試向量生成電路的性能要更好些[6]。
3.3 混合測試向量生成
混合測試向量生成方法,結(jié)合利用了以上兩種測試向量生成方法。首先用偽隨機(jī)測試法進(jìn)行測試,這樣被測電路中的很多容易檢測到的故障會被檢測出來,然后,用確定性測試向量測試難測故障,既可以實(shí)現(xiàn)快速測試,又可以保證故障覆蓋率。這種測試方法主要是通過調(diào)節(jié)偽隨機(jī)測試向量和確定性測試向量的長度,來平衡測試時間和故障覆蓋率。如圖7所示,L是偽隨機(jī)測試向量長度,S是確定性測試向量長度。
圖7 偽隨機(jī)測試向量個數(shù)與故障覆蓋率的關(guān)系圖
混合測試向量測試方法的優(yōu)點(diǎn)是,對于不同的實(shí)際需要,可以通過調(diào)節(jié)兩種測試向量的比率,來調(diào)整測試時間和故障覆蓋率。缺點(diǎn)是,若想進(jìn)行快速測試,則不能保證較高故障覆蓋率,若想提高故障覆蓋率,必須增加偽隨機(jī)測試向量的長度,從而增加了測試施加時間。
3.4 加權(quán)偽隨機(jī)測試向量生成
加權(quán)偽隨機(jī)測試向量生成方法,可以通過調(diào)節(jié)每個輸入產(chǎn)生0或1的概率,使產(chǎn)生的測試代碼更可能檢測到難檢測故障。圖8是一個加權(quán)偽隨機(jī)測試向量生成器,它由一個4選1數(shù)據(jù)選擇器,控制兩個輸入,進(jìn)行權(quán)重概率的選擇。在偽隨機(jī)測試向量生成方法中,每個輸入產(chǎn)生0或1的概率都是0.5。在加權(quán)偽隨機(jī)測試向量生成中,產(chǎn)生0或1的概率可以調(diào)整。
圖8加權(quán)偽隨機(jī)測試向量生成器
加權(quán)偽隨機(jī)測試向量生成的優(yōu)點(diǎn)在于,測試代碼較短,故測試時間較短,并且能保證較高的故障覆蓋率。缺點(diǎn)是為了保證盡可能高的故障覆蓋率,要選擇多個不同的權(quán)重,多個權(quán)重集合會生成很多多余的隨機(jī)測試代碼,從而導(dǎo)致了過多的硬件開銷,增加了測試成本。
3.5 自反饋測試向量生成
以上幾種測試生成方法都是由專門的電路生成測試向量,測試向量與被測電路無關(guān),這些專門的測試向量生成電路須或多或少要占用一些芯片面積?,F(xiàn)在有這么一種設(shè)計思想,選取被測電路的一些內(nèi)部節(jié)點(diǎn)作為反饋,通過觸發(fā)器,作為測試向量連接到被測電路輸入端,無需專門的測試向量生成電路,而是從被測電路內(nèi)部節(jié)點(diǎn)通過觸發(fā)器生成測試向量,自反饋測試向量生成方法就是在這種思想下產(chǎn)生的。
以圖9為例,簡單說明自反饋測試生成方法。
圖9 c17電路的一種自反饋測試生成
圖9中陰影部分的c17電路為被測電路(可任選其他電路作為被測電路,此處選擇較為簡單的c17電路是為了便于說明這種測試生成方法)。C17電路有5個輸入端,6個內(nèi)部節(jié)點(diǎn)(包括兩個輸出端)。從6個節(jié)點(diǎn)中任意找出5個,選擇合適的順序通過觸發(fā)器連接到c17的輸入端。在P11,P12,P13,P14,P15處導(dǎo)入一組原始輸入作為種子,從而對c17電路施加了初始激勵,在初始激勵的作用下,被測電路中被選擇的5個內(nèi)部節(jié)點(diǎn)的狀態(tài)作為第二組向量,通過觸發(fā)器反饋被測電路的輸入端,一個時鐘信號周期后,被測電路內(nèi)部節(jié)點(diǎn)狀態(tài)會改變,再選取這5個節(jié)點(diǎn)的狀態(tài)作為第三組向量,以此類推。被選取的5個內(nèi)部節(jié)點(diǎn),每經(jīng)過一個時鐘信號周期后,狀態(tài)都會改變,改變后的5個內(nèi)部節(jié)點(diǎn)狀態(tài),再次通過觸發(fā)器反饋到被測電路,作為下一組測試向量??梢钥闯?,這種測試向量是通過被測電路自身產(chǎn)生的,無需專門設(shè)計測試向量生成電路。然而,這種自反饋測試生成方法所面臨的問題是,怎樣選取內(nèi)部節(jié)點(diǎn),并以何種順序反饋到被測電路的原始輸入端,才能使產(chǎn)生的測試向量能更好更快地完成電路的測試。被測電路有6個內(nèi)部節(jié)點(diǎn),由排列組合可得,共有720種反饋方式,如果被測電路很復(fù)雜,則反饋方式更多,不可能一一嘗試,故這種方法有待進(jìn)一步完善。按照圖9所示的反饋方式,并把(01100)作為種子向量施加到原始輸入端,用modelsim仿真得到如圖10所示的結(jié)果。
圖10 c17自反饋測試仿真圖
圖10中的G1,G2,G3,G4,G5即選取的5個內(nèi)部節(jié)點(diǎn)。從仿真結(jié)果中可以看出,4個時鐘信號周期后,測試向量開始循環(huán),即有4組有效測試向量。
這種測試向量生成方法的優(yōu)點(diǎn)很明顯,它可以減少BIST的面積開銷,并實(shí)現(xiàn)全速測試。缺點(diǎn)是很難對故障進(jìn)行診斷,即只能檢測被測電路是否存在故障,而不能確定故障具體所在的位置。此外,這種測試生成很難保證較高的故障覆蓋率。
本文主要介紹了幾種BIST的測試向量生成方法,分析了幾種方法的優(yōu)缺點(diǎn)。從上面的介紹可知,所有的測試向量生成方法都不是萬能的,都有自己的適用條件,每種測試向量生成方法都有自己的優(yōu)點(diǎn)和不足。針對特定的被測電路,要仔細(xì)分析被測電路的特點(diǎn), 權(quán)衡各種測試向量生成方法的利弊,從而得到最合適的測試生成方法。
[1]汪昱.基于非確定門延時的瞬態(tài)電流測試生成算法研究及BIST測試產(chǎn)生器設(shè)計[D].長沙:湖南大學(xué),2004.
[2]路思安,史崢,嚴(yán)曉浪.面向系統(tǒng)芯片的可測性設(shè)計[J].微電子學(xué),2001,31(6):440-442.
[3]Wey C L.Built-in self-test(BIST)structure for analog circuit fault diagnosis[J].IEEE Transactions on Instrumentation and Measurement,1990,39(3):517-521.
[4]李立健,趙瑞蓮.減少多種子內(nèi)建自測試方法硬件開銷的有效途徑[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2003,15(6):662-666.
[5]雷紹沖,邵志標(biāo),梁峰.VLSI測試方法學(xué)和可測性設(shè)計[M].北京:電子工業(yè)出版社,2005.
[6]Wang S M.DS-LFSR:A BIST TPG for Low Switching Activity [J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2002,21(7):842-851.
Test Vector Generation Methods Based on BIST
Wei Shuhua Zhuo Yong
(North China University of Technology,Beijing 100144)
BIST is the most promising method in DFT.BIST can significantly improve the testability of the circuits,and test vector generation is one of the most important parts of BIST.The focus of test vector generation is how to generate new vectors as few as possible that can achieve fault coverage sufficiently while test circuits area overhead and the testing time should be as little as possible.In this paper,many methods for test vector generation are analyzed and contrasted.In the end,we discuss issues to be resolved and its development direction.
Design for Test(DFT);Built in Self Test(BIST);test vector generation;linear feedback shift register
魏淑華,女,山東聊城人,博士,講師。研究方向:集成電路設(shè)計,集成電路測試。
北京市教委科研計劃,項(xiàng)目編號:KM201410009005。