李建新,吳孝銀
宿州學(xué)院智能信息處理實(shí)驗(yàn)室,安徽宿州,234000
一種測(cè)試數(shù)據(jù)分塊縱向相容的編碼壓縮方案
李建新,吳孝銀
宿州學(xué)院智能信息處理實(shí)驗(yàn)室,安徽宿州,234000
為有效降低集成電路的測(cè)試數(shù)據(jù)量,設(shè)計(jì)了一種測(cè)試數(shù)據(jù)分塊縱向相容的編碼壓縮和解壓方案。將原始測(cè)試集中的每一測(cè)試向量以固定位數(shù)分塊,然后將順序號(hào)相同的數(shù)據(jù)塊歸為一列,根據(jù)每一列數(shù)據(jù)塊間的相關(guān)性,將長(zhǎng)的數(shù)據(jù)塊用短的標(biāo)記碼表示,從而實(shí)現(xiàn)測(cè)試數(shù)據(jù)的壓縮,進(jìn)而設(shè)計(jì)了與該編碼方案相應(yīng)的解壓結(jié)構(gòu)。研究表明:該方案與同類方案相比有較高的編碼壓縮率,而且解壓過程簡(jiǎn)單易行。
標(biāo)記編碼;更新;縱向相容;#運(yùn)算;∩運(yùn)算
隨著集成電路制造工藝水平的不斷提高,單個(gè)芯片上集成的晶體管數(shù)量呈指數(shù)規(guī)律增長(zhǎng)。尤其是片上系統(tǒng)(System-on-a-Chip,SoC)的出現(xiàn),芯片中集成了大量的IP核,完成測(cè)試的數(shù)據(jù)量迅速增長(zhǎng),導(dǎo)致自動(dòng)測(cè)試設(shè)備存儲(chǔ)容量不足、傳輸帶寬受限、測(cè)試時(shí)間增長(zhǎng),實(shí)施測(cè)試變得越來越困難,測(cè)試成本不斷提高[1]。因此,研究先進(jìn)的集成電路測(cè)試方法,以減少測(cè)試數(shù)據(jù)傳輸量,降低測(cè)試成本具有重要的理論和實(shí)用價(jià)值。
測(cè)試數(shù)據(jù)編碼壓縮技術(shù)可有效解決上述問題。該技術(shù)的總體思路是將原始測(cè)試數(shù)據(jù)經(jīng)編碼壓縮后存儲(chǔ)在ATE上,傳輸?shù)臄?shù)據(jù)量得以降低,在待測(cè)芯片中嵌入相應(yīng)的解壓電路,對(duì)從ATE傳過來的壓縮數(shù)據(jù)進(jìn)行解壓還原,再將還原后的測(cè)試數(shù)據(jù)施加給待測(cè)電路[1]。常見的編碼壓縮技術(shù)有基于數(shù)據(jù)塊的編碼壓縮、基于數(shù)據(jù)流的編碼壓縮及基于重播種的編碼壓縮技術(shù)三類?;跀?shù)據(jù)塊的編碼又可分為統(tǒng)計(jì)編碼和相容壓縮標(biāo)記編碼,其中,前者有Huffman編碼[2],它是典型的統(tǒng)計(jì)編碼;后者有相容壓縮標(biāo)記編碼,如數(shù)據(jù)塊前向相容的標(biāo)記碼[3]、分組合并的索引編碼[4]等?;跀?shù)據(jù)流游程的編碼有Glomb編碼[5]、FDR編碼[6]以及交替碼[7]等?;谥夭シN的編碼壓縮技術(shù)有LFSR重播種技術(shù)[8]和折疊計(jì)數(shù)器重播種技術(shù)[9]。
本文提出一種測(cè)試數(shù)據(jù)分塊縱向相容的編碼壓縮方案。該方案講述的是基于數(shù)據(jù)塊相容的標(biāo)記碼壓縮技術(shù),能在提高編碼壓縮率的同時(shí),簡(jiǎn)化解壓還原電路。
在文獻(xiàn)[4]中,曾引入兩種位運(yùn)算符:#運(yùn)算及∩運(yùn)算,為便于利用,現(xiàn)作一簡(jiǎn)單回顧。一位#運(yùn)算和∩運(yùn)算規(guī)則分別如表1和表2所示。
表1 #運(yùn)算表
表2 ∩運(yùn)算表
根據(jù)表1的#運(yùn)算規(guī)則,可引入兩等數(shù)位測(cè)試模式間相關(guān)性的有關(guān)概念。假設(shè)測(cè)試模式a=a1a2…an-1an,ai∈{0,1,x},b=b1b2…bn-1bn,bi∈{0,1,x},其中x為{0,1}中的任意值,將a、b的對(duì)應(yīng)位按表1進(jìn)行“#”操作,若運(yùn)算結(jié)果各位全部是0或x,則稱模式a與b相容;若運(yùn)算結(jié)果各位全部是1或x,則稱模式a與b反相相容;二者統(tǒng)稱為模式相關(guān)。
假定有如下3個(gè)等數(shù)位的測(cè)試模式:a=01X0XX01,b=X11X00X1,c=1X0110X0,若按表1中#運(yùn)算法,將a、b、c三個(gè)模式兩兩進(jìn)行位運(yùn)算,則有:a#b=X0XXXXX0,a#c=1XX1XXX1,b#c=XX1X10X1。從運(yùn)算結(jié)果可算出,模式a與b相容,a與c反相相容,b與c不相關(guān)。
根據(jù)表2中的“∩”運(yùn)算,可將相關(guān)的兩測(cè)試模式合并。對(duì)于互為反相相容的兩種模式,可將其中之一反相后,再與另一模式作“∩”運(yùn)算。如在上例中,a∩b=01100001,將c模式反相得~c=0X1001X1,a∩~c=01100101。可見,運(yùn)用“∩”運(yùn)算可使測(cè)試模式中的確定位增加。
為便于描述,現(xiàn)舉一示例闡述編碼方法。某測(cè)試集TD由4個(gè)測(cè)試模式組成,如表3所示,每個(gè)測(cè)試模式位數(shù)均為15位。編碼前,先將測(cè)試集中的每個(gè)測(cè)試模式劃分成定長(zhǎng)為K位的分塊,如果測(cè)試模式的總位數(shù)不是塊長(zhǎng)K的整倍數(shù),不足的位數(shù)則用無關(guān)位X填補(bǔ),使其為K的整數(shù)倍。本例中取塊長(zhǎng)K=8,每個(gè)模式被劃分為二塊,第二塊不足8位,補(bǔ)充一位無關(guān)位(表中斜體X)。為便于表述,用Cij表示第i個(gè)測(cè)試模式的第j個(gè)測(cè)試分塊,如表3中C11=01X101XX,C32=0X010X1X。
表3 本編碼方案實(shí)例
編碼總體思路為:取參考模式,對(duì)測(cè)試集的每一列分塊沿縱向按從上至下的順序進(jìn)行“#”運(yùn)算,采用“#”運(yùn)算結(jié)果,進(jìn)行標(biāo)記編碼分類,同時(shí)采用“∩”運(yùn)算不斷更新參考模式。具體方法為:對(duì)每一列的測(cè)試模塊,取某一K位參考模塊R0,按從上到下的縱向順序,從第一個(gè)測(cè)試模塊開始依次按位進(jìn)行“#”運(yùn)算,根據(jù)運(yùn)算結(jié)果判斷相關(guān)性并進(jìn)行標(biāo)記編碼。若測(cè)試模塊與參考模塊相容,則將該測(cè)試模塊標(biāo)記編碼為“0”,并將參考模塊與該模塊按位進(jìn)行“∩”運(yùn)算,以增加其中的確定位,再將“∩”運(yùn)算結(jié)果作為下一個(gè)測(cè)試模塊的參考模塊;若測(cè)試模塊與參考模塊反相相容,則將該測(cè)試模塊標(biāo)記編碼為“10”,并將該測(cè)試模塊反相后與參考模塊按位作“∩”運(yùn)算,再將“∩”運(yùn)算結(jié)果作為下一個(gè)測(cè)試模塊的參考模塊;若測(cè)試模塊與參考模塊既不相容又不反相相容,即不相關(guān),則采用在該測(cè)試分塊前加“11”進(jìn)行編碼標(biāo)記,同時(shí)將該測(cè)試分塊作為新的參考模塊對(duì)下一個(gè)測(cè)試分塊進(jìn)行運(yùn)算編碼。因可采用復(fù)位的辦法將集成電路內(nèi)部各位觸發(fā)器初始化為全0,故每一列測(cè)試分塊的初始參考模塊R0可取K位0,并按上述方法從第一個(gè)測(cè)試分塊進(jìn)行運(yùn)算編碼。
現(xiàn)以表3中的第一列測(cè)試數(shù)據(jù)塊為例作具體描述。取8位初始參考模塊R0為00000000,與C11(01X101XX)按位作“#”運(yùn)算,由“#”運(yùn)算規(guī)則,R0#C11=01X101XX,顯然二者不相關(guān),故C11被編碼為:1101X101XX,參考模塊被更新為新的參考模塊R1=R0∩C11=01X101XX;進(jìn)而將R1與C21(1010XX1X)按位作“#”運(yùn)算,R1#C21=11X1XXXX,二者反相相容,故C21被編碼為“10”,然后將C21反相為~C21=0101XX0X,新的參考模塊更新為R2=R1∩~C21=0101010X;將R2與C31(XX01X100)按位作“#”運(yùn)算,R2#C31=XX00X00X,二者相容,故C31被編碼為“0”,然后將參考模塊更新為R3=R2∩C31=01010100;將R3與C41:110XX00X按位“#”運(yùn)算,R3#C41=100XX10X,二者既不相容也不反相相容,故C41被編碼為:11110XX00X,參考模塊更新為R4=C41=110XX00X。
對(duì)表3中的第二組測(cè)試模塊也可采用上述同樣方法進(jìn)行編碼和更新。對(duì)整個(gè)測(cè)試集中每個(gè)測(cè)試集的編碼結(jié)果如表4所示,其中的“-”不占有數(shù)據(jù)位,只是為編碼結(jié)果規(guī)整而設(shè)的。將表4左右數(shù)據(jù)對(duì)比可看出,原測(cè)試集TD的總位數(shù)為60,編碼后總位數(shù)為37,壓縮了23位。
表4 對(duì)原測(cè)試集的運(yùn)算編碼結(jié)果
編碼的目的是實(shí)現(xiàn)測(cè)試數(shù)據(jù)的壓縮,減少數(shù)據(jù)量,縮短測(cè)試傳輸時(shí)間,但壓縮后的數(shù)據(jù)是不能直接用于電路測(cè)試的,要實(shí)現(xiàn)有效測(cè)試,尚需在芯片中設(shè)計(jì)相應(yīng)的解壓電路,將原測(cè)試集中的所有確定位進(jìn)行還原。
不同的編碼方案應(yīng)對(duì)應(yīng)不同的解壓電路。本方案的解壓結(jié)構(gòu)如圖1所示,其中,有限狀態(tài)機(jī)(Finite State Machine,FSM)是解壓結(jié)構(gòu)的核心,K位循環(huán)掃描移位寄存器(Cycle Scan shift Register,CSR)用于存放和更新各列K位參考模塊,K進(jìn)制計(jì)數(shù)器用于控制data_out輸出和CSR移位的位數(shù),MUX1、MUX2均為2選1的數(shù)據(jù)選擇器,MUX1受select1控制,用于數(shù)據(jù)輸出選擇,MUX2受select2控制,用于返回參考模塊的選擇,CUT(Chip Under Test,CUT)為被測(cè)芯片。
圖1 解壓結(jié)構(gòu)
解壓過程分析:
Step1 初始化,enable使能允許,CSR各位清零,K進(jìn)制計(jì)數(shù)器置位。
Step2 bit_in輸入一位數(shù)據(jù),若為“0”,轉(zhuǎn)入Step3,若為“1”,轉(zhuǎn)入Step4。
Step3 從data_out端連續(xù)輸出K位0,同時(shí),CSR內(nèi)的參考模塊右移K位,兩路數(shù)據(jù)經(jīng)異或門按位作異或運(yùn)算,由于任何數(shù)據(jù)與0異或仍保持不變,故運(yùn)算后仍為CSR內(nèi)的原數(shù)據(jù)。此時(shí),select1、select2分別控制MUX1、MUX2均選0端有效,從MUX1輸出的數(shù)據(jù)即為CSR內(nèi)的原數(shù)據(jù),該數(shù)據(jù)一方面進(jìn)入CUT進(jìn)行測(cè)試,另一方面返回CSR繼續(xù)作為下一個(gè)參考模塊。然后轉(zhuǎn)入Step7。
Step4 bit_in再輸入一位數(shù)據(jù),若為“0”,轉(zhuǎn)入Step5,若為“1”,轉(zhuǎn)入Step6。
Step5 從 Data_out端連續(xù)輸出K位1,同時(shí),CSR內(nèi)的參考模塊右移K位,兩路數(shù)據(jù)經(jīng)異或門按位作異或運(yùn)算,由于任何數(shù)據(jù)與1異或即反相,故運(yùn)算后即將參考模塊按位取反,由select1控制MUX1選0端有效,由select2控制MUX2選1端有效,從MUX1輸出的數(shù)據(jù)即為參考模塊的反相數(shù)據(jù),也就將原測(cè)模塊中確定位進(jìn)行了還原,該數(shù)據(jù)一方面進(jìn)入CUT實(shí)現(xiàn)測(cè)試,另一方面經(jīng)反相后返回CSR繼續(xù)作為下一個(gè)參考模塊。然后轉(zhuǎn)入Step7。
Step6 將bit_in當(dāng)前位置后一位開始的連續(xù)K位數(shù)據(jù)從Data_out端輸出,由select1控制MUX1選1端有效,由select2控制MUX2選0端有效,這樣從Data_out輸出的K位數(shù)據(jù)將原封不動(dòng)地經(jīng)MUX1輸出,進(jìn)入CUT進(jìn)行測(cè)試的同時(shí),返回CSR繼續(xù)作為新的參考模塊,表明這組K位輸出數(shù)據(jù)與CSR中的參考模塊不相關(guān)。然后進(jìn)入Step7。在該步驟中,CSR中的參考模塊數(shù)據(jù)右移K位后與Data_out輸出的K位數(shù)據(jù)也存在異或情況,但異或的結(jié)果不被選用,自動(dòng)舍棄。
Step7 循環(huán)重復(fù)Step2到Step6。
在上述解壓電路中,K進(jìn)制減1計(jì)數(shù)器控制CSR右移的位數(shù)及Data_out輸出數(shù)據(jù)的位數(shù)。K進(jìn)制計(jì)數(shù)器的減1計(jì)數(shù)功能由dec信號(hào)控制,計(jì)數(shù)結(jié)束時(shí),rs有效,K進(jìn)制減1計(jì)數(shù)器被重新賦初值K,valid信號(hào)控制CSR是否右移。
對(duì)表3所示的編碼實(shí)例解壓還原后的結(jié)果如表5中第4列所示(TE),將其與第二列中原測(cè)試集TD比較可知,二者完全相容。
表5 對(duì)表4編碼解壓還原結(jié)果
對(duì)于本方案的編碼壓縮效果,選用ISCAS-89基準(zhǔn)電路幾個(gè)典型的時(shí)序電路作為實(shí)驗(yàn)對(duì)象,通過對(duì)Mintest測(cè)試向量集壓縮進(jìn)行驗(yàn)證。實(shí)驗(yàn)過程是對(duì)每一種電路取不同的塊長(zhǎng)進(jìn)行縱向相容標(biāo)記編碼壓縮,分別得出對(duì)應(yīng)的壓縮率,實(shí)驗(yàn)結(jié)果如表6。
表6 塊長(zhǎng)K取不同值時(shí)對(duì)各測(cè)試電路測(cè)試的壓縮率
測(cè)試數(shù)據(jù)壓縮,TD為原測(cè)試集數(shù)據(jù)量,TE為編碼壓縮后的測(cè)試集數(shù)據(jù)量。
從表6可看出,對(duì)每一種測(cè)試電路的測(cè)試集進(jìn)行縱向相容壓縮,隨著K值的變化,壓縮率總會(huì)在某一種K值附近出現(xiàn)最大值拐點(diǎn),即壓縮率與塊長(zhǎng)間呈類拋物線關(guān)系。這是由于塊長(zhǎng)較短時(shí),塊數(shù)較多,相應(yīng)的編碼碼字也多,限制了壓縮率,塊長(zhǎng)較長(zhǎng)時(shí),塊數(shù)雖少,但數(shù)據(jù)塊間的相關(guān)性降低,從而也限制了壓縮率,故二者之間類拋物線關(guān)系具有客觀合理性。因此,為提高該方案的編碼壓縮率,須根據(jù)不同的測(cè)試集選取合適的塊長(zhǎng)。
將表6中各測(cè)試電路對(duì)應(yīng)的最高壓縮率與其他類似方案進(jìn)行比較,結(jié)果如表7所示,可以看出,本文方案壓縮率相對(duì)較高。
表7 本文方案與其他編碼方案的壓縮率比較
本文通過引入兩種特殊的位邏輯運(yùn)算,舉例說明了測(cè)試數(shù)據(jù)分塊縱向相容的編碼壓縮方法,設(shè)計(jì)了對(duì)應(yīng)的解壓還原電路,分步解析了其解壓過程。該方案編碼方法巧妙,解壓過程流暢,實(shí)驗(yàn)證明,該方案與同類方案相比,能有效地提高編碼壓縮率。而且由于方案采用橫向分塊縱向編碼,解壓電路的CSR長(zhǎng)度與分塊塊長(zhǎng)相同,長(zhǎng)度相對(duì)較短,故所需要的硬件不多,開銷不會(huì)太大。
[1]時(shí)萬(wàn)春,張東,魏道政,等.現(xiàn)代集成電路測(cè)試電路測(cè)試技術(shù)[M].北京:化學(xué)工業(yè)出版社,2006:157-160
[2]Jas A,Ghosh-Dastidar J,Mom-Eng N,et al.An efficient test vector compression scheme using selective Huffman coding[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2003,22(6):797-806
[3]歐陽(yáng)一鳴,肖祝紅,梁華國(guó).?dāng)?shù)據(jù)塊前向相容標(biāo)記碼的測(cè)試數(shù)據(jù)壓縮方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2007,19(8):986-990
[4]李建新,梁華國(guó),陶玨輝.基于測(cè)試數(shù)據(jù)分組合并的索引編碼壓縮方案[J].計(jì)算機(jī)工程,2010,36(11):265-267
[5]Chandra A,Chakrabarty K.System-on-a-chip test-data compression and decompression architectures based on Golomb codes[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2001,20(3):355-368
[6]Chandra A,Chakrabarty K.Test data compression and test resource partitioning for system-on-a-chip using frequency-directed run-length(FDR) codes[J].IEEE Transactions on Computers,2003,52(8):1076-1088
[7]梁華國(guó),蔣翠云.基于交替與連續(xù)長(zhǎng)度碼的有效測(cè)試數(shù)據(jù)壓縮和解壓[J].計(jì)算機(jī)學(xué)報(bào),2004,27(4):548-554
[8]Lien W C,Lee K J,Hsieh T Y,et al.Efficient LFSR Reseeding Based on Internal-Response Feedback[J].J Electron Test,2014,30:673-685
[9]梁華國(guó),海倫布昂特,馮特利希.一種基于折疊計(jì)數(shù)器重新播種的確定自測(cè)試方案[J].計(jì)算機(jī)研究與發(fā)展,2001,38(8):931-938
(責(zé)任編輯:汪材印)
10.3969/j.issn.1673-2006.2016.03.029
2016-01-12
安徽省教育廳自然科學(xué)研究項(xiàng)目(KJ2014ZD31);安徽省教育廳省級(jí)教學(xué)研究項(xiàng)目(2012jyxm545);宿州學(xué)院科研平臺(tái)開放課題(2011YKF09);宿州學(xué)院優(yōu)秀青年人才資助項(xiàng)目(2014XQNRL006)。
李建新(1971-),安徽蕭縣人,碩士,高級(jí)實(shí)驗(yàn)師,主要研究方向:SOC故障診斷與測(cè)試。
TN407
A
1673-2006(2016)03-0115-04