高紫俊, 許 晶
( 1. 哈爾濱理工大學(xué) 榮成學(xué)院,山東 榮成 264300; 2. 大慶電力集團(tuán) 油田熱電廠,黑龍江 大慶 163314 )
隨著深亞微米技術(shù)的發(fā)展,集成電路進(jìn)入片上系統(tǒng)(SoC)時(shí)代.復(fù)雜的SoC設(shè)計(jì)導(dǎo)致測(cè)試變得越來越復(fù)雜.傳統(tǒng)的基于ATE的測(cè)試方法很難滿足測(cè)試成本方面的需求.內(nèi)建自測(cè)試(Built-in Self-Test,BIST)是一種極具吸引力的解決SoC測(cè)試問題的測(cè)試方法[1-5].BIST通過將測(cè)試向量生成器(Test Pattern Generator,TPG)、測(cè)試響應(yīng)分析器(Output Response Analyzer,ORA)和測(cè)試控制邏輯(Test Control Logic,TCL)設(shè)計(jì)在被測(cè)電路(Circuit Under Test,CUT)上,從而擺脫對(duì)ATE的依賴[1-2].依據(jù)測(cè)試向量生成方法的不同,BIST被分為偽隨機(jī)BIST和確定性BIST.偽隨機(jī)BIST通常采用偽隨機(jī)測(cè)試向量電路,如線性反饋移位寄存器(Linear-Feedback Shift-Register,LFSR)和細(xì)胞自動(dòng)機(jī)(Cellular Automaton,CA)等,生成測(cè)試向量.采用偽隨機(jī)測(cè)試向量方案具有電路結(jié)構(gòu)簡單、硬件開銷小等優(yōu)點(diǎn),但也存在測(cè)試序列長、某些故障難以測(cè)試等不足.在確定性BIST方案中,一般將由ATPG生成的測(cè)試集存儲(chǔ)在被測(cè)電路(Circuit under Test,CUT)的ROM中,測(cè)試時(shí)通過控制邏輯再加載到被測(cè)電路上.確定性BIST方案具有測(cè)試時(shí)間短、故障覆蓋率高等優(yōu)點(diǎn),也具有測(cè)試數(shù)據(jù)大、測(cè)試控制邏輯復(fù)雜等缺點(diǎn)[3-6].
周彬等[6]采用“壓縮-存儲(chǔ)-生成”方案降低測(cè)試數(shù)據(jù),測(cè)試數(shù)據(jù)的壓縮方式可分為水平壓縮和垂直壓縮.水平壓縮是減少測(cè)試集中每個(gè)測(cè)試向量的位數(shù)的方法,主要包括輸入精簡壓縮技術(shù)和編碼壓縮技術(shù).輸入精簡壓縮技術(shù)通過分析被測(cè)電路的各個(gè)輸入端的相容性,并將相容的輸入端合并,從而達(dá)到壓縮測(cè)試數(shù)據(jù)的目的[7-8],該方法的優(yōu)點(diǎn)是壓縮效率高;缺點(diǎn)是必須重新設(shè)計(jì)掃描鏈結(jié)構(gòu),進(jìn)而干擾傳統(tǒng)的設(shè)計(jì)流程.編碼壓縮技術(shù)包括統(tǒng)計(jì)碼[9]、FDR碼[10]、Golomb碼[11]、VIHC碼[12]、LFSR編碼[13]等.垂直壓縮是減少測(cè)試集中測(cè)試向量個(gè)數(shù)的方法,主要包括相容測(cè)試向量的合并技術(shù)和測(cè)試集嵌入技術(shù).相容測(cè)試向量的合并技術(shù)通過分析測(cè)試集中測(cè)試向量的相容性,并將相容進(jìn)行合并,從而達(dá)到減少測(cè)試向量個(gè)數(shù)的目的.測(cè)試集嵌入技術(shù)通常是利用重播種技術(shù)改變測(cè)試向量產(chǎn)生器的狀態(tài),進(jìn)而將確定性的測(cè)試向量嵌入在定制計(jì)數(shù)器或LFSR生成的一個(gè)長序列中,如基于折疊計(jì)數(shù)器的確定性測(cè)試集的嵌入技術(shù)[3-5]和基于扭環(huán)計(jì)數(shù)器(Twisting Ring Counter,TRC)的測(cè)試集嵌入技術(shù)[14-18].
筆者給出一種基于扭環(huán)計(jì)數(shù)器(TRC)和Golomb編碼相結(jié)合的二維測(cè)試數(shù)據(jù)壓縮方案.首先,采用基于TRC的測(cè)試集嵌入技術(shù)對(duì)由ATPG工具生成的測(cè)試集進(jìn)行垂直壓縮;其次,利用TRC種子可以任意移位的特性對(duì)所得到種子集進(jìn)行有效的Golomb編碼壓縮;最后,使用很少的種子位將這個(gè)確定測(cè)試集嵌入到扭環(huán)計(jì)數(shù)器所有生成的向量中,并獲得100%的故障覆蓋率.由于無需調(diào)整任何掃描鏈,該方案完全與標(biāo)準(zhǔn)設(shè)計(jì)流相容.另外,對(duì)于不同的被測(cè)試電路,提出方案的測(cè)試控制邏輯都是相同的,不需要進(jìn)行專門的硬件設(shè)計(jì).
采用與文獻(xiàn)[6]相似的種子選擇算法對(duì)測(cè)試集進(jìn)行垂直壓縮.在算法中,除定義相容百分?jǐn)?shù)(Percentage of Compatibility,PC)外,還定義一個(gè)最大確定位個(gè)數(shù)Max_SB控制種子中確定位的個(gè)數(shù),使后續(xù)的基于Golomb編碼的水平壓縮獲得更大的壓縮效率.
種子選擇算法步驟:
(1)計(jì)算測(cè)試集中每個(gè)測(cè)試向量中含有無關(guān)項(xiàng)X的數(shù)量,并且根據(jù)無關(guān)項(xiàng)的數(shù)量,對(duì)測(cè)試集中的測(cè)試向量由小到大進(jìn)行排序.
(2)在經(jīng)排序后的測(cè)試集中,第1個(gè)測(cè)試向量集將被選作為算法的候選種子(初始種子),并且根據(jù)TRC的特性,利用該候選種子生成2n2+n個(gè)TRC狀態(tài),該候選種子中包含有無關(guān)項(xiàng)X.
(3)在經(jīng)排序后的測(cè)試集中,取出一個(gè)測(cè)試向量Tj(除種子向量之外),如果在長為2n2+n的TRC狀態(tài)中,找到某一個(gè)狀態(tài)TRCi,使得在XORNEW(TRCi,Tj)的結(jié)果中,不存在 ‘1’,并且‘0’的個(gè)數(shù)大于等于相容數(shù)(NCSB(Tj))時(shí),根據(jù)Tj指定候選種子中相應(yīng)的無關(guān)項(xiàng),如果指定之后的候選種子所含確定位的個(gè)數(shù)小于Max—SB,將Tj從原確定性測(cè)試集中刪除,否則恢復(fù)候選種子到未指定之前的狀態(tài);然后再在經(jīng)排序后的測(cè)試集中選取下一個(gè)測(cè)試向量Tj+1,直至所有測(cè)試向量都被遍歷為止.XORNEW函數(shù)是原始異或函數(shù)的擴(kuò)展,功能與原始異或函數(shù)類似,唯一的區(qū)別在于XORNEW函數(shù)可以對(duì)包含無關(guān)項(xiàng)X的操作數(shù)進(jìn)行處理,如XORNEW(10x,001)等于10x.
(4)當(dāng)測(cè)試集中仍包含有測(cè)試向量時(shí),算法就再次跳轉(zhuǎn)到第2步;當(dāng)測(cè)試集中不包含有測(cè)試向量時(shí),算法結(jié)束.
由種子選擇算法的步驟可知,通過引入最大確定位個(gè)數(shù)Max—SB,算法所得到種子中包含有大量的無關(guān)項(xiàng),為實(shí)現(xiàn)高效的基于Golomb編碼的水平壓縮提供便利條件.
表1 Golomb編碼實(shí)例(m=4)
選用Golomb碼對(duì)種子集進(jìn)行編碼,其原因?yàn)镚olomb碼屬于無失真編碼,不僅具有較高的編碼效率,而且易于用硬件解碼.m=4時(shí)所對(duì)應(yīng)的Golomb編碼見表1.其中:m為分組的大小,第1列表示編碼的分組信息,第2列為0游程的長度,第3列為編碼前綴,第4列為編碼尾綴,最后一列為對(duì)應(yīng)的編碼碼字.如待壓縮序列Sd為001001001000000001時(shí),編碼后的序列Se為01001001011000.當(dāng)待壓縮序列Sd給定時(shí),隨著Golomb編碼參數(shù)m值的不同,所得的壓縮增益是不同的,因此參數(shù)m的選取非常關(guān)鍵.采用實(shí)驗(yàn)方法確定最佳的m值.
基于Golomb編碼和扭環(huán)計(jì)數(shù)器的重播種結(jié)構(gòu)見圖1.其中,在被測(cè)電路的原始輸入端上增加一個(gè)掃描觸發(fā)器,并與被測(cè)電路內(nèi)部的掃描鏈構(gòu)成一個(gè)長的掃描鏈,稱之為輸入寄存器.測(cè)試時(shí),通過該輸入寄存器對(duì)被測(cè)電路進(jìn)行激勵(lì)的加載.ROM中存儲(chǔ)的是重播種所需要的種子差分向量序列經(jīng)過Golomb編碼之后的測(cè)試數(shù)據(jù).整個(gè)電路的工作過程:首先,被測(cè)電路的輸入寄存器形成一個(gè)移位寄存器,在n個(gè)時(shí)鐘周期內(nèi),通過種子差分向量與移位寄存器中上一個(gè)種子向量的結(jié)束向量相異或,產(chǎn)生一個(gè)TRC種子向量;利用該TRC種子向量,在2n2+n時(shí)鐘周期內(nèi)產(chǎn)生2n2+nTRC狀態(tài),并加載至被測(cè)電路的輸入端,同時(shí)在被測(cè)電路的輸出端得到相應(yīng)的響應(yīng);接著,ROM計(jì)數(shù)器加1,下一個(gè)TRC種子被裝載到輸入寄存器中,并產(chǎn)生測(cè)試向量序列,重復(fù)進(jìn)行上述過程,直到測(cè)試完成.
圖1 基于Golomb編碼和扭環(huán)計(jì)數(shù)器的播種結(jié)構(gòu)
BIST控制邏輯結(jié)構(gòu)見圖1被虛線包圍的區(qū)域.提出方案的BIST控制邏輯主要包含具有3個(gè)狀態(tài)的有限狀態(tài)機(jī)、2個(gè)計(jì)數(shù)器和組合控制邏輯電路.其中,移位計(jì)數(shù)器是用來計(jì)數(shù)每個(gè)TRC種子所需要的n次移位操作,在測(cè)試生成的過程中,每當(dāng)2n+1個(gè)時(shí)鐘周期之后,內(nèi)容自動(dòng)加1,同時(shí)輸入寄存器的內(nèi)容執(zhí)行一次循環(huán)移位操作;扭環(huán)計(jì)數(shù)器被用來對(duì)TRC種子的加載操作和TRC種子生成測(cè)試向量進(jìn)行計(jì)數(shù).
基于提出的二維測(cè)試數(shù)據(jù)壓縮方案,針對(duì)ISCAS’89實(shí)驗(yàn)電路進(jìn)行研究.在實(shí)驗(yàn)中,ISCAS’89實(shí)驗(yàn)電路的所有輸入和其內(nèi)部的觸發(fā)器構(gòu)成被測(cè)電路的輸入掃描寄存器,采用ATALANTA ATPG工具為被測(cè)電路生成測(cè)試集.為了提高所生成的確定性測(cè)試集中無關(guān)項(xiàng)X的含量,在實(shí)驗(yàn)中關(guān)閉了ATALANTA ATPG工具壓縮機(jī)制.
提出基于扭環(huán)計(jì)數(shù)器(TRC)和Golomb編碼相結(jié)合的二維測(cè)試數(shù)據(jù)壓縮方案,與其他先進(jìn)的BIST方案[16,18]在測(cè)試數(shù)據(jù)方面的比較結(jié)果見表2.其中:第2、3欄分別描述提出BIST方案所需要的種子個(gè)數(shù)以及最終的測(cè)試數(shù)據(jù)位數(shù)ROM1;第4、5欄分別列出基于TRC的確定性BIST方案[16]所需要測(cè)試數(shù)據(jù)位數(shù)ROM2,以及基于LFSR的確定性BIST方案[18]所需要測(cè)試數(shù)據(jù)位數(shù)ROM3;最后2欄是文中提出二維測(cè)試數(shù)據(jù)壓縮BIST方案與文獻(xiàn)[16,18]的比較結(jié)果.與文獻(xiàn)[16]比較,提出的二維測(cè)試數(shù)據(jù)壓縮BIST方案具有更高的壓縮倍數(shù),在存儲(chǔ)位數(shù)方面減少近30%.
表2 二維測(cè)試數(shù)據(jù)壓縮方案與其他方案存儲(chǔ)位數(shù)(ROM)的比較
提出一種結(jié)合扭環(huán)計(jì)數(shù)器(TRC)和Golomb編碼的二維測(cè)試數(shù)據(jù)壓縮的內(nèi)建自測(cè)試方案.首先,利用扭環(huán)計(jì)數(shù)器實(shí)現(xiàn)對(duì)測(cè)試集進(jìn)行垂直壓縮;然后,對(duì)經(jīng)過垂直壓縮之后的扭換計(jì)數(shù)器種子再進(jìn)行基于Golomb編碼的水平壓縮.根據(jù)實(shí)驗(yàn)結(jié)果顯示,所提出二維測(cè)試數(shù)據(jù)壓縮BIST方案在測(cè)試數(shù)據(jù)方面有一定的提高,而且在減少測(cè)試數(shù)據(jù)的同時(shí),不會(huì)顯著增加測(cè)試時(shí)間,存儲(chǔ)位數(shù)減少30%,是一種具有潛力的確定性BIST方案.