郭斌
(山西省稷山廣播電視服務(wù)中心,043200)
內(nèi)建自測(cè)試(Built-In-Self-Test,BIST)技術(shù)是可測(cè)性設(shè)計(jì)(Design for Test, DFT)的一種。內(nèi)建自測(cè)試方法主要通過在芯片上集成測(cè)試結(jié)構(gòu)完成測(cè)試圖形的生成和測(cè)試響應(yīng)的分析,這樣在很大程度上緩解了對(duì)外部自動(dòng)測(cè)試儀器(Automatic Test Equipment, ATE)的依賴,從而降低了測(cè)試成本[1-2]。
BIST的測(cè)試結(jié)構(gòu)主要包括測(cè)試圖形生成器(TPG)、輸出響應(yīng)分析器(ORA)和BIST控制單元(BCU),如圖1所示。測(cè)試圖形生成器(TPG)的一般結(jié)構(gòu)包括存儲(chǔ)有測(cè)試圖形的ROM和線性反饋移位寄存器(LFSR)。測(cè)試響應(yīng)分析器(ORA)的典型結(jié)構(gòu)包括存有測(cè)試響應(yīng)的壓縮器和用LFSR組成的特征分析器(Signature Analyzer)。控制單元(BCU)用來控制測(cè)試和響應(yīng)分析。
圖1 典型內(nèi)建自測(cè)試結(jié)構(gòu)
內(nèi)建自測(cè)試的優(yōu)點(diǎn)主要體現(xiàn)在:
(1) 測(cè)試生成和測(cè)試響應(yīng)分析都在片上進(jìn)行,減少了測(cè)試對(duì)昂貴測(cè)試儀器的依賴性;
(2) 由于測(cè)試在片上進(jìn)行,可以工作速度測(cè)試集成電路,因此縮短了測(cè)試時(shí)間,并且可以檢測(cè)實(shí)際條件下的故障;
(3) 可以實(shí)現(xiàn)在系統(tǒng)經(jīng)常性測(cè)試,這對(duì)可靠性要求較高的系統(tǒng)很有意義。
目前,對(duì)BIST研究主要集中在測(cè)試生成方法上,研究目標(biāo)在于減小硬件開銷,提高故障覆蓋率,降低測(cè)試功耗和縮短測(cè)試時(shí)間等。本文即介紹了自BIST方法產(chǎn)生以來幾種不同的測(cè)試生成方法,分析比較它們各自的特點(diǎn),并討論將來有待解決和改善的主要問題。
傳統(tǒng)BIST的測(cè)試生成方法有窮舉測(cè)試生成法、偽窮舉測(cè)試生成法、偽隨機(jī)測(cè)試生成法和確定性測(cè)試生成法等。
窮舉測(cè)試,顧名思義就是指測(cè)試圖形包含了原始輸入所有可能的排列組合,即所謂的窮舉測(cè)試集。窮舉測(cè)試的優(yōu)點(diǎn)在于易生成測(cè)試向量和100%的故障覆蓋率,但這樣的方法只對(duì)小規(guī)模的純組合電路有效。對(duì)于原始輸入較多的電路來說,窮舉測(cè)試所帶來的測(cè)試時(shí)間是不可接受的[1]。而對(duì)于時(shí)序電路,窮舉法并不適合,因?yàn)闇y(cè)試圖形的時(shí)序?qū)Ρ粶y(cè)電路有非常大的影響。
偽窮舉測(cè)試通過對(duì)被測(cè)電路進(jìn)行分塊[3],然后對(duì)每個(gè)分塊電路進(jìn)行窮舉測(cè)試。這樣既實(shí)現(xiàn)了每個(gè)分塊電路的完全測(cè)試,又使得測(cè)試圖形長(zhǎng)度比窮舉測(cè)試大大降低。但是這種方法在電路分塊方面存在較大困難。
偽隨機(jī)測(cè)試采用的測(cè)試圖形具有隨機(jī)特性。常用線性反饋移位寄存器(LFSR)來實(shí)現(xiàn),這種方式產(chǎn)生的偽隨機(jī)測(cè)試向量所需成本小。LFSR作為測(cè)試圖形生成器生成測(cè)試向量已經(jīng)成為內(nèi)建自測(cè)試(BIST)中測(cè)試生成方法的主要結(jié)構(gòu)。
偽隨機(jī)測(cè)試既適用于組合電路測(cè)試,也適用于時(shí)序電路測(cè)試。但偽隨機(jī)測(cè)試在可以接受的測(cè)試時(shí)間內(nèi)不能得到足夠的故障覆蓋率。如果想提高故障覆蓋率就必須增大測(cè)試圖形的長(zhǎng)度,但這同時(shí)也這大大增加了測(cè)試施加時(shí)間。
圖2顯示了故障覆蓋率和測(cè)試圖形長(zhǎng)度的關(guān)系,從圖中可以看出:隨著偽隨機(jī)測(cè)試碼序列長(zhǎng)度L的增加,故障覆蓋率曲線接近飽和。所以隨著故障覆蓋率的提高,相同長(zhǎng)度的偽隨機(jī)測(cè)試碼序列檢測(cè)到的故障數(shù)越來越少,冗余偽隨機(jī)測(cè)試碼越來越多。這些冗余偽隨機(jī)測(cè)試碼檢測(cè)不出任何故障,不僅不能提高故障覆蓋率,而且會(huì)增加測(cè)試施加時(shí)間和測(cè)試功耗。
圖2 偽隨機(jī)測(cè)試故障覆蓋率和測(cè)試向量數(shù)關(guān)系
確定性測(cè)試是用專門的算法,如D算法、PODEM算法等,完成測(cè)試圖形的生成,是對(duì)待定的故障類型生成測(cè)試圖形。這是一個(gè)NP-complete問題,需要迭代法來加速生成過程。利用此方法生成的測(cè)試圖形非常短,測(cè)試施加時(shí)間最短,但測(cè)試生成方法非常復(fù)雜,測(cè)試生成時(shí)間非常長(zhǎng)。當(dāng)和BIST相結(jié)合時(shí),ATPG(Automatic Test Pattern Generation)生成的測(cè)試圖形存儲(chǔ)在ROM中。這種方法可以獲得理想的故障覆蓋率,但是測(cè)試開銷太大,成本太高。
傳統(tǒng)的測(cè)試生成方法雖然結(jié)構(gòu)簡(jiǎn)單,硬件開銷小,但是這些方法都存在各種各樣的問題,如測(cè)試施加時(shí)間比較長(zhǎng),故障覆蓋率不高等。為了解決這些問題,如今主要從兩個(gè)方面對(duì)測(cè)試生成方法進(jìn)行改進(jìn):(1)修改被測(cè)電路;(2)修改測(cè)試圖形生成器結(jié)構(gòu)。修改被測(cè)電路結(jié)構(gòu)可通過在電路中插入測(cè)試點(diǎn),提高可觀察點(diǎn)和可控制點(diǎn)的數(shù)目以實(shí)現(xiàn)少的測(cè)試圖形獲得高的測(cè)試覆蓋率,但這種方法是以大的面積開銷和性能損失為代價(jià)的。因此比較有效的方法是對(duì)以LFSR為基礎(chǔ)的測(cè)試圖形生長(zhǎng)器結(jié)構(gòu)進(jìn)行適當(dāng)修改。修改測(cè)試圖形生成器結(jié)構(gòu)比較常用的有兩種方法:(1)加權(quán)測(cè)試。(2)混合測(cè)試生成法。
因?yàn)橛肔FSR產(chǎn)生的測(cè)試圖形中每一位上0和1的概率基本相等,但為了用盡可能少的測(cè)試圖形取得盡可能高的故障覆蓋率,許多電路的測(cè)試圖形中0和1的分布概率應(yīng)不同。加權(quán)測(cè)試生成方法就是使得生成的測(cè)試圖形具有不同的0和1的概率,可采用LFSR和組合邏輯電路構(gòu)成,但這種方法需要存儲(chǔ)數(shù)量較大的加權(quán)集,使得測(cè)試面積開銷增大。
基本原理是用偽隨機(jī)測(cè)試法檢測(cè)電路中的易測(cè)故障,同時(shí)用確定性測(cè)試生成法對(duì)電路中的難測(cè)故障進(jìn)行測(cè)試,以實(shí)現(xiàn)在較短的時(shí)間內(nèi)達(dá)到較高的故障覆蓋率。主要特點(diǎn)是它可以通過改變偽隨機(jī)測(cè)試圖形和確定性測(cè)試圖形的比率在測(cè)試時(shí)間和測(cè)試數(shù)據(jù)存儲(chǔ)量之間進(jìn)行平衡。如圖3所示。其中L表示偽隨機(jī)測(cè)試序列的長(zhǎng)度,S表示確定性測(cè)試圖形的長(zhǎng)度。從圖中可看出偽隨機(jī)測(cè)試的長(zhǎng)度是一個(gè)非常重要的參數(shù)。偽隨機(jī)測(cè)試長(zhǎng)度短,則需要較大的確定性測(cè)試集,這就需要較大的存儲(chǔ)空間來存儲(chǔ)確定性測(cè)試圖形,但同時(shí)也使得測(cè)試時(shí)間縮短。相反,偽隨機(jī)測(cè)試長(zhǎng)度長(zhǎng),則測(cè)試施加時(shí)間長(zhǎng),但所需的確定性測(cè)試集小,需要的存儲(chǔ)空間也?。娣e開銷就小)。
圖3 混合測(cè)試生成法測(cè)試時(shí)間與故障覆蓋率關(guān)系
2.2.1 映射測(cè)試圖形法
映射測(cè)試圖形法[4-5]是把LFSR的狀態(tài)映射成確定性測(cè)試圖形的一種方法[6-7]。這種方法可以通過增加額外電路以產(chǎn)生控制信號(hào)來控制某些LFSR的位翻轉(zhuǎn)或者使其固定0或1來實(shí)現(xiàn)。這種方法的開銷主要來自產(chǎn)生控制信號(hào)的硬件電路,因?yàn)閷?duì)于給定的被測(cè)電路和LFSR,這些額外電路需要全定制來實(shí)現(xiàn)。一種有效的方法是把LFSR生成的測(cè)試圖形轉(zhuǎn)換成新的測(cè)試圖形以得到高的故障覆蓋率。這種轉(zhuǎn)換可以通過在TPG和被測(cè)電路之間插入映射邏輯來實(shí)現(xiàn)。映射邏輯把無效測(cè)試集(不能檢測(cè)到故障的測(cè)試集)轉(zhuǎn)換成可以檢測(cè)難測(cè)故障的測(cè)試向量。然而,大多數(shù)情況下,這種控制LFSR偽隨機(jī)序列位的方法并不能完全解決難測(cè)故障的問題。
2.2.2 重復(fù)播種法
重復(fù)播種法[8-11]先對(duì)電路施加一定數(shù)量的偽隨機(jī)測(cè)試圖形,用以測(cè)試電路中的易測(cè)故障,而對(duì)于確定性測(cè)試圖形則將其編碼為“種子”,將其重復(fù)播種到測(cè)試生成器中,用以測(cè)試難測(cè)故障。由于這種方法重復(fù)用新的種子初始化偽隨機(jī)測(cè)試圖形生成器,因此這種方法不僅能達(dá)到非常高的測(cè)試覆蓋率,而且可以在測(cè)試時(shí)間和測(cè)試開銷上進(jìn)行均衡,并使測(cè)試具有較大的靈活性和可預(yù)見性。現(xiàn)已成為BIST中研究最多的測(cè)試生成方法。
常用的重復(fù)播種法主要包括:(1)多多項(xiàng)式LFSR重復(fù)播種方法。此方法利用了多多項(xiàng)式線形反饋移位寄存器(MP-LFSR)來實(shí)現(xiàn),所謂的MP-LFSR是指同一電路結(jié)構(gòu)可以實(shí)現(xiàn)一個(gè)給定長(zhǎng)度LFSR的不同本原多項(xiàng)式,這樣保證了一個(gè)測(cè)試向量可以被成功的編碼成功。通過理論和實(shí)踐證明,采用多多項(xiàng)式LFSR重復(fù)播種方法,種子的位數(shù)只需要達(dá)到Smax+4(參數(shù)Smax是測(cè)試集中所有測(cè)試向量所含確定位的最大數(shù)目),就可以把測(cè)試向量不能被編碼成功的概率降低到10~6以下。這比單個(gè)多項(xiàng)式LFSR重復(fù)播種方法所需要的Smax+20的種子長(zhǎng)度明顯優(yōu)越得多,從而提高種子的編碼效率和數(shù)據(jù)壓縮率。但這種方法的設(shè)計(jì)比較復(fù)雜,增加了硬件開銷。(2)變長(zhǎng)種子LFSR重復(fù)播種方法。此方法也是基于MP-LFSR的重復(fù)播種方發(fā),不同的是這種方法在對(duì)種子進(jìn)行編碼的時(shí)候,選用的種子要盡可能短,使得種子的長(zhǎng)度存在差異,不同的測(cè)試向量經(jīng)過編碼可能得到不同長(zhǎng)度的種子,這種方法進(jìn)一步提高了編碼的效率和測(cè)試壓縮率。但這種方法需要對(duì)種子進(jìn)行長(zhǎng)度篩選,電路設(shè)計(jì)難度增大,測(cè)試過程較復(fù)雜。(3)部分動(dòng)態(tài)LFSR重復(fù)播種方法。所謂的動(dòng)態(tài)重復(fù)播種是指在測(cè)試過程中不斷的變換種子,保證測(cè)試向量的編碼自由度被保留下來,用于求解接下來的測(cè)試向量,這樣編碼效率得到了提高。部分動(dòng)態(tài)LFSR重復(fù)播種的方法最大特點(diǎn)是動(dòng)態(tài)重復(fù)播種與掃描鏈裝載是同時(shí)進(jìn)行的,減少了測(cè)試生成時(shí)間,降低了測(cè)試開銷。但求解種子的方程組規(guī)模較大,增加了求解種子的復(fù)雜度。
以上的新興測(cè)試方法雖然相比較傳統(tǒng)的測(cè)試生成方法在一定程度上提高了測(cè)試效率,但如果直接存儲(chǔ)用于測(cè)試難測(cè)故障的測(cè)試向量需要較大的存儲(chǔ)空間,因而會(huì)增加硬件的開銷,從而增加了測(cè)試開銷。因此在使用新興的測(cè)試方法,特別是重復(fù)播種方法時(shí)如果能對(duì)測(cè)試數(shù)據(jù)進(jìn)行壓縮,則可以減小測(cè)試數(shù)據(jù)的存儲(chǔ)空間,達(dá)到降低測(cè)試開銷的目的。
近年來人們對(duì)測(cè)試數(shù)據(jù)壓縮主要分:(1)縱向壓縮,即主要壓縮種子的數(shù)目;(2)橫向壓縮,即壓縮測(cè)試向量的位數(shù)。但這兩種方法都沒有最大限度的利用種子,種子的利用率是可以進(jìn)一步挖掘的,也就是說同一個(gè)種子實(shí)際上可以檢測(cè)出更多的故障,提高種子的利用率必然也會(huì)降低種子的數(shù)目,降低測(cè)試開銷。因此如果能夠同時(shí)對(duì)種子進(jìn)行橫向和縱向的壓縮,則會(huì)實(shí)現(xiàn)對(duì)測(cè)試數(shù)據(jù)最大限度的壓縮,提高種子的利用率。
另外,對(duì)于現(xiàn)在的SoC電路大多采用IP復(fù)用的方法來設(shè)計(jì),這些內(nèi)嵌式的IP都有著自己固定的測(cè)試方法,如果利用內(nèi)建自測(cè)試測(cè)試生成方法對(duì)這些電路進(jìn)行測(cè)試,并使得測(cè)試成本降到最低也是一個(gè)重要的研究方向。
[1] H. Fujiwara, Lo gic Testing and Design for Testability[M], MIT Press, Cambridge, MA, 1986.
[2] 雷紹充, 邵志標(biāo), 梁峰, VLSI 測(cè)試方法學(xué)和可測(cè)試性設(shè)計(jì)[M], 北京:電子工業(yè)出版社, 2005.
[3] Nur A. Touba and Edward J. McCluskey, Test Point Insertion Based on Path Tracing[C], IEEE Proceedings of 14th VLSI Test Symposium, pp. 2-8, 1996.
[4] Touba, N.A. and E.J. McCluskey, Transformed Pseudo-Random Patterns for BIST[C], Proceedings of VLSI Test Symposium, pp. 410-416, 1995.
[5] Touba, N.A. and E.J. McCluskey, Synthesis of Mapping Logic for Generating Transformed Pseudo-Random Patterns for BIST[C], Proceeding of International Test Conference, pp. 674-682.
[6] N. A. Touba and E. J. McCluskey, Synthesis of Mapping Logic for Generating Transformed Pseudo-Random Patterns for BIST[C], IEEE VLSI Test Symposium,pp.674-682, 1995.
[7] H.-J. Wunderlich and G. Kanchan, Bit-Flipping BIST[C], IEEE International Conference on CAD-96,pp. 337-343, 1996.
[8] Bernd Konemann, LFSR-Coded Test Patterns for Scan Designs[C], Proceedings of European Test Conference,pp. 237-242, 1991.
[9] S. J. Venkataramann, Rajski, S. Hellebrand and S.Tarnick, An Efficient BIST Scheme Based on Reseeding of Multiple Polynomial Linear Feedback Shift Registers[C], Proceedings of International Conference on Computer-Aided Design (ICCAD), pp. 572-577,1993.
[10] A. A. Al-Yamani, E. J. McCluskey, Built-In Reseeding for Serial BIST[C], Proceedings of VLSI Test Symposium, Apr. 2003.
[11] D. Kagaris, Multiple Seed TPG Structures[J], IEEE Transactions on Computers, Vol. 52, No. 12, pp. 1633-1639, Dec. 2003.