陳 田,周 洋,任福繼,3,安 鑫,趙滬隱
(1.合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,合肥 230009;2.合肥工業(yè)大學(xué)情感計(jì)算與先進(jìn)智能機(jī)器安徽省重點(diǎn)實(shí)驗(yàn)室,合肥 230009;3.德島大學(xué)工學(xué)部,日本德島770-8506)
隨著集成電路技術(shù)的發(fā)展,晶體管的特征尺寸不斷縮小,芯片集成度與頻率日益提高,使得集成電路芯片設(shè)計(jì)對(duì)數(shù)據(jù)測(cè)試的要求越來(lái)越嚴(yán)格,并對(duì)自動(dòng)測(cè)試設(shè)備(Automatic Test Equipment,ATE)的I/O通道數(shù)及ATE數(shù)據(jù)傳輸率提出了更高要求[1]。然而,由于大量的測(cè)試數(shù)據(jù)增加了測(cè)試時(shí)間和功耗,因此測(cè)試數(shù)據(jù)壓縮技術(shù)[2-3]應(yīng)運(yùn)而生。
測(cè)試數(shù)據(jù)壓縮方法主要分為基于線性解壓[4]、廣播掃描[5]和編碼[6]的壓縮方法3類。基于線性解壓的測(cè)試數(shù)據(jù)壓縮方法是先將測(cè)試數(shù)據(jù)壓縮成較小的種子集,測(cè)試時(shí)將種子集傳輸?shù)骄€性解壓器中擴(kuò)展成測(cè)試向量進(jìn)行測(cè)試。該方法壓縮率較高,但只有當(dāng)其原始測(cè)試集中包含很少的確定位時(shí),才能生成合適的種子?;趶V播掃描的測(cè)試數(shù)據(jù)壓縮方法通過(guò)一個(gè)共同的輸出結(jié)構(gòu)將相同的測(cè)試數(shù)據(jù)扇出到不同的掃描鏈中[7]。該方法較簡(jiǎn)單,但是每一次數(shù)據(jù)扇出時(shí)都需要單獨(dú)連線,并要求原始測(cè)試數(shù)據(jù)具有較高的相容性?;诰幋a的測(cè)試數(shù)據(jù)壓縮方法利用壓縮算法對(duì)原始測(cè)試數(shù)據(jù)集進(jìn)行高度壓縮,將壓縮后相對(duì)較小的測(cè)試集存入ATE,測(cè)試時(shí)利用芯片上的解壓電路進(jìn)行無(wú)損解壓得到測(cè)試數(shù)據(jù)。該方法具有良好的適應(yīng)性,但壓縮率較低。近年來(lái),研究人員陸續(xù)提出基于Golomb編碼[8]、FDR編碼[9]、EFDR編碼[10]、FRPRL編碼[11]等的測(cè)試數(shù)據(jù)壓縮方法。傳統(tǒng)基于編碼的測(cè)試數(shù)據(jù)壓縮方法使用二值邏輯“0”和“1”進(jìn)行編碼,文獻(xiàn)[12]指出ATE可支持高阻態(tài)(Hi-Z)信號(hào)的傳輸,“0”、“1”和“Hi-Z”被稱為三態(tài)信號(hào),因此文獻(xiàn)[13]提出基于字典的三態(tài)信號(hào)編碼壓縮方案。本文受此啟發(fā),提出一種基于三態(tài)信號(hào)的改進(jìn)游程編碼壓縮方法,先對(duì)測(cè)試集進(jìn)行預(yù)處理,降低測(cè)試集中確定位的比例,再根據(jù)游程長(zhǎng)度進(jìn)行變長(zhǎng)分段編碼壓縮,并使用三態(tài)信號(hào)編碼標(biāo)志位。
為減少測(cè)試數(shù)據(jù)量,本文提出一種基于三態(tài)信號(hào)的游程編碼壓縮方法,整體流程如圖1所示。首先對(duì)原始測(cè)試集進(jìn)行預(yù)處理;其次填充測(cè)試集的無(wú)關(guān)位;然后利用基于三態(tài)信號(hào)的改進(jìn)游程編碼壓縮方法對(duì)填充后的測(cè)試集進(jìn)行編碼壓縮,并將編碼壓縮后的測(cè)試集存入ATE;最后通過(guò)設(shè)計(jì)解壓電路對(duì)ATE中存儲(chǔ)的壓縮數(shù)據(jù)進(jìn)行無(wú)損解壓。
圖1 基于三態(tài)信號(hào)的游程編碼壓縮流程Fig.1 Procedure of run length coding compression based on tri-state signal
本文方法的研究重點(diǎn)為通過(guò)片上解壓電路檢測(cè)三態(tài)信號(hào)并將三態(tài)信號(hào)轉(zhuǎn)化為二值邏輯信號(hào)用于數(shù)據(jù)測(cè)試。文獻(xiàn)[14]提出一種三態(tài)信號(hào)檢測(cè)電路,如圖2所示,其中VDD為電源工作電壓。該電路由6個(gè)晶體管組成,硬件結(jié)構(gòu)簡(jiǎn)單、開銷小且操作便捷。
圖2 三態(tài)信號(hào)檢測(cè)電路Fig.2 Tri-state signal detection circuit
雖然ATE能存儲(chǔ)三態(tài)信號(hào),但由于被測(cè)電路不能識(shí)別三態(tài)信號(hào),因此本文在ATE輸出后增加了一個(gè)三態(tài)信號(hào)識(shí)別電路。該三態(tài)信號(hào)識(shí)別電路的真值表如表1中“轉(zhuǎn)換前”部分所示,可以看出:data2為“1”時(shí),輸入信號(hào)是“0”;data2為“0”時(shí),輸入信號(hào)是“1”或者“Hi-Z”。為了能僅讀取1位數(shù)據(jù)就知道該輸入信號(hào)為高阻態(tài),本文在解壓結(jié)構(gòu)和有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)之間增加了一個(gè)轉(zhuǎn)換電路,使得data2’為“0”時(shí),輸入信號(hào)一定為“Hi-Z”,真值表如表1中“轉(zhuǎn)換后”部分所示。在本文方法中,將含有三態(tài)信號(hào)的壓縮向量從ATE輸出到片上三態(tài)信號(hào)檢測(cè)電路中,并將三態(tài)信號(hào)轉(zhuǎn)化成二值信號(hào),同時(shí)通過(guò)解碼器生成與原始測(cè)試向量相容的測(cè)試模式,最終將解碼后的測(cè)試向量輸入掃描鏈中進(jìn)行測(cè)試。
表1 三態(tài)信號(hào)解壓輸出轉(zhuǎn)換前后的真值表Table 1 True value table of tri-state signal decompression output before and after conversion
原始測(cè)試集包含“0”、“1”和“X”,其中:“0”和“1”為確定位;“X”對(duì)測(cè)試結(jié)果不產(chǎn)生影響,被稱為無(wú)關(guān)位。在將其輸入掃描鏈時(shí),無(wú)關(guān)位可根據(jù)需要設(shè)置成“0”或“1”。根據(jù)測(cè)試向量中確定位的不同,兩個(gè)測(cè)試向量之間的關(guān)系分為相容、反相相容和不相容3種。在兩個(gè)測(cè)試向量中:如果對(duì)應(yīng)位的位置都為“0”(“1”),或者一個(gè)為“0”(“1”),另一個(gè)為“X”,那么稱這兩個(gè)向量相容;如果對(duì)應(yīng)位的位置一個(gè)為“0”(“1”),另一個(gè)為“1”(“0”)或者“X”,那么稱這兩個(gè)向量反相相容;如果兩個(gè)測(cè)試向量中既存在相容又存在反相相容,那么稱這兩個(gè)向量不相容。
為降低測(cè)試集中確定位的比例,本文使用部分輸入精簡(jiǎn)技術(shù)[15]對(duì)原始數(shù)據(jù)集進(jìn)行預(yù)處理。部分輸入精簡(jiǎn)技術(shù)將相容(反相相容)的測(cè)試向量合并成一個(gè)測(cè)試向量,測(cè)試時(shí)進(jìn)行一個(gè)扇出處理,并保留全是無(wú)關(guān)位的測(cè)試向量,但不作任何處理,其主要原因?yàn)閷y(cè)試集相容或者反相相容的測(cè)試向量合并成一個(gè)向量可減少確定位,從而降低測(cè)試集中確定位的比例。
1.3.1 游程選取
若字符串中確定位“1”后面有多個(gè)“0”,或者確定位“0”后面有多個(gè)“1”,則稱具有該特性的字符串為游程,可抽象地表示為0n1或1n0,其中,0n表示n個(gè)“0”,1n表示n個(gè)“1”,n為該游程長(zhǎng)度,即兩個(gè)相同確定位之間的距離。為更直觀地展示確定位“0”和“1”在原始測(cè)試集中的分布,本文對(duì)ISCAS-89基準(zhǔn)電路中的s5378電路測(cè)試集繪制更直觀的“0”、“1”和“X”分布圖,如圖3所示,測(cè)試集中的“0”用黑色表示,“1”用白色表示,無(wú)關(guān)位“X”用灰色表示。
圖3 s5378原始測(cè)試數(shù)據(jù)位置分布Fig.3 Position distribution of the original test data about s5378
從圖3可以看出,兩個(gè)相同的確定位不是集中在一起,就是兩兩相隔很遠(yuǎn),而且很多確定位之間的距離相同。利用該特性,本文設(shè)計(jì)一種基于確定位距離(游程長(zhǎng)度)的編碼壓縮方法。由于測(cè)試集中確定位一般非常稀少,且其在測(cè)試集中所占比例為1%~5%[16],如果僅統(tǒng)計(jì)在測(cè)試集中所占比例小于5%的確定位的游程長(zhǎng)度,則將減少存儲(chǔ)信息量,而如果完整存儲(chǔ)“0”和“1”的游程長(zhǎng)度,則將浪費(fèi)很多存儲(chǔ)空間,因此為進(jìn)一步減少存儲(chǔ)位數(shù),本文只存儲(chǔ)“0”或“1”一種確定位的游程長(zhǎng)度。一般的游程編碼方法是對(duì)固定的一種確定位或者同時(shí)對(duì)兩種確定位的游程進(jìn)行編碼,但會(huì)在一定程度上增加游程長(zhǎng)度的種類數(shù),因此本文對(duì)需要編碼的確定位采取靈活的選取方式,并將該確定位稱為參考位,具體定義如下:
定義1令A(yù)=(S0,S2,…,Sn-1)為某一測(cè)試集,其中Sn表示測(cè)試向量中的第n個(gè)測(cè)試向量,集合T(A)為測(cè)試集A中所有確定位的集合。若T(A)中“1”的數(shù)量小于“0”,則令參考位為“1”;若T(A)中“0”的數(shù)量小于“1”,則令參考位為“0”。
對(duì)于測(cè)試集中的無(wú)關(guān)位,本文進(jìn)行與參考位相反的確定位填充。經(jīng)統(tǒng)計(jì),s5378電路的測(cè)試集中“0”有2 968位,“1”有3 537位,因此,s5378的參考位是“0”,同時(shí)將所有的無(wú)關(guān)位填充為非參考位“1”。最終s5378測(cè)試集只需要存儲(chǔ)2 968個(gè)“0”的游程長(zhǎng)度,占整個(gè)測(cè)試集的12.49%,從而明顯減少了所需存儲(chǔ)的信息量。圖4為對(duì)s5378測(cè)試集中無(wú)關(guān)位填充“1”后的分布圖,可以直觀看出“0”所占的比例很小。
圖4 s5378填充測(cè)試數(shù)據(jù)位置分布Fig.4 Position distribution of the filling test data about s5378
1.3.2 游程編碼表的編碼規(guī)則
傳統(tǒng)游程編碼表是根據(jù)游程長(zhǎng)度依次進(jìn)行編碼,游程長(zhǎng)度越長(zhǎng),排序越靠后,碼字也越長(zhǎng)。然而,編碼時(shí)雖然有些游程長(zhǎng)度并不存在,但也會(huì)在編碼表中占用相應(yīng)的碼字,這就可能會(huì)增加其后面的碼字長(zhǎng)度。因此,傳統(tǒng)游程編碼方式未能充分利用短碼字的優(yōu)勢(shì),而且不能有效利用所有的二進(jìn)制集合。
圖5是s5378測(cè)試集中參考位“0”的游程長(zhǎng)度出現(xiàn)頻率分布圖,橫坐標(biāo)為“0”的游程長(zhǎng)度,縱坐標(biāo)為該游程長(zhǎng)度的出現(xiàn)次數(shù)??梢钥闯?,游程長(zhǎng)度的出現(xiàn)次數(shù)均集中于1~10,其中游程長(zhǎng)度為1出現(xiàn)了1 033次,游程長(zhǎng)度為2出現(xiàn)了473次。根據(jù)游程長(zhǎng)度的出現(xiàn)頻率分布,本文重新設(shè)計(jì)了三態(tài)信號(hào)游程編碼表。新編碼表中的碼字為不同長(zhǎng)度的二進(jìn)制全排列,長(zhǎng)度從0開始,直到能表示完游程長(zhǎng)度的所有種類數(shù)時(shí)為止。因?yàn)榇a字長(zhǎng)度不統(tǒng)一,所以本文使用三態(tài)信號(hào)作為標(biāo)志位,每個(gè)碼字都以“Hi-Z”作為后綴,為方便后文的敘述,將“Hi-Z”簡(jiǎn)記為“Z”,最終碼字依次為{Z,0Z,1Z,00Z,01Z,…}。根據(jù)以上規(guī)則可得出新的s5378編碼表,如表2所示。
圖5 s5378游程長(zhǎng)度的出現(xiàn)頻率分布Fig.5 Occurrence frequency distribution of the run length about s5378
表2 s5378編碼表Table 2 Coding table about s5378
傳統(tǒng)游程編碼方式根據(jù)游程長(zhǎng)度依次對(duì)應(yīng)相應(yīng)碼字,而本文為充分利用碼字,分別使出現(xiàn)頻率高和低的游程長(zhǎng)度對(duì)應(yīng)采用短和長(zhǎng)的碼字,并對(duì)不曾出現(xiàn)過(guò)的游程長(zhǎng)度不設(shè)置碼字,從而保證高頻設(shè)短碼、低頻設(shè)長(zhǎng)碼、零頻不設(shè)碼的原則。
通過(guò)觀察s5378編碼表發(fā)現(xiàn),游程長(zhǎng)度從36到140都只出現(xiàn)了1次,其在編碼過(guò)程中出現(xiàn)次數(shù)少,編碼字段長(zhǎng),利用率低,占用空間多,對(duì)于編碼壓縮非常不利。為進(jìn)一步提高編碼表中碼字的利用率,本文為整個(gè)測(cè)試向量設(shè)計(jì)一種變長(zhǎng)分段壓縮方法。變長(zhǎng)分段壓縮就是先從整個(gè)測(cè)試向量中劃分出一個(gè)給定長(zhǎng)度的測(cè)試向量,并記錄該子向量中所有參考位的游程長(zhǎng)度。如果測(cè)試向量最后的測(cè)試數(shù)據(jù)不是參考位,例如對(duì)于從測(cè)試集中劃分出的子向量S={101XXX},其最后一位為無(wú)關(guān)位,該無(wú)關(guān)位將被填充為非參考位。由于本文只對(duì)參考位進(jìn)行編碼,因此最后的3位無(wú)關(guān)位無(wú)法被編碼。如果最后一位無(wú)法被編碼,那么就將離該位最近的參考位的下一位作為起始位,重新設(shè)定給定長(zhǎng)度的向量為子向量并進(jìn)行重新編碼。如果子向量全是非參考位,即最近的參考位不存在,那么設(shè)定該子向量游程長(zhǎng)度為給定長(zhǎng)度。在整個(gè)測(cè)試集編碼完成后,將每個(gè)子向量的游程長(zhǎng)度合并成一個(gè)編碼表,根據(jù)所有游程長(zhǎng)度的出現(xiàn)頻率設(shè)置編碼表,并對(duì)該編碼表進(jìn)行存儲(chǔ)。
為找出變長(zhǎng)分段壓縮的最優(yōu)段長(zhǎng),本文從段長(zhǎng)為1一直遍歷到測(cè)試集長(zhǎng)度為止,從中找出最優(yōu)的子向量段長(zhǎng)進(jìn)行編碼壓縮。由于尋找最優(yōu)段長(zhǎng)是測(cè)試前的準(zhǔn)備工作,因此不會(huì)增加測(cè)試時(shí)間。圖6為變長(zhǎng)分段編碼壓縮流程。經(jīng)過(guò)測(cè)試可知,s5378的最優(yōu)段長(zhǎng)為43,此時(shí)字典位數(shù)為283,相比不進(jìn)行變長(zhǎng)分段壓縮的字典位數(shù)(940)約減少了70%,而且游程長(zhǎng)度也更集中地出現(xiàn)在多個(gè)固定游程長(zhǎng)度上,使得壓縮率由整體壓縮的66.629%提升到68.085%。
圖6 變長(zhǎng)分段編碼壓縮流程Fig.6 Procedure of variable length segment coding compression
1.3.3 編碼流程
本文首先統(tǒng)計(jì)出測(cè)試集中游程長(zhǎng)度出現(xiàn)次數(shù)較少的確定位,記為參考位,進(jìn)行非參考位填充;然后從段長(zhǎng)為1開始進(jìn)行變長(zhǎng)分段編碼,直到段長(zhǎng)為測(cè)試集長(zhǎng)度時(shí)停止,找出其中的最優(yōu)段長(zhǎng),并統(tǒng)計(jì)在該最優(yōu)段長(zhǎng)下進(jìn)行變長(zhǎng)分段編碼中所有參考位的游程長(zhǎng)度出現(xiàn)次數(shù),根據(jù)游程長(zhǎng)度出現(xiàn)頻率高低進(jìn)行排序并生成編碼表;最后根據(jù)編碼表進(jìn)行編碼。
下文以測(cè)試集S為例進(jìn)行說(shuō)明,如圖7(a)所示。假設(shè)經(jīng)過(guò)遍歷后測(cè)試集中最優(yōu)段長(zhǎng)為8,以段長(zhǎng)為8進(jìn)行編碼,整個(gè)編碼過(guò)程中將不涉及變長(zhǎng)分段的編碼過(guò)程。因?yàn)闇y(cè)試集中“0”的個(gè)數(shù)為8,“1”的個(gè)數(shù)為4,所以參考位為“1”,首先進(jìn)行非參考位填充,將無(wú)關(guān)位“X”填充為非參考位“0”,然后從該測(cè)試集中劃分出一個(gè)段長(zhǎng)為8的子測(cè)試向量S0。該測(cè)試集被分成新的子向量S0和剩下的測(cè)試集S,如圖7(b)所示。該子向量中第1個(gè)、第2個(gè)、第3個(gè)參考位的游程長(zhǎng)度依次為0、2、1。編碼到第1個(gè)子測(cè)試向量的最后一位“0”時(shí),因?yàn)樵撐徊皇菂⒖嘉唬酝说阶罱囊粋€(gè)參考位的下一個(gè)非參考位,即S0中倒數(shù)第2個(gè)“0”,然后以該位作為起始位重新劃分段長(zhǎng)為8的下一個(gè)子向量S1,如圖7(c)所示。因?yàn)樵撟酉蛄渴?個(gè)“0”,所以第4個(gè)“1”的游程長(zhǎng)度為8,然后將剩下的測(cè)試集劃分為第3個(gè)子測(cè)試向量S2,如圖7(d)所示,因此第5個(gè)、第6個(gè)“1”的游程長(zhǎng)度為0、6。
圖7 編碼示例Fig.7 Coding example
統(tǒng)計(jì)出這些游程長(zhǎng)度的出現(xiàn)次數(shù),并對(duì)游程長(zhǎng)度按照出現(xiàn)頻率高低設(shè)計(jì)編碼表,最終的示例編碼表如表3所示。編碼后的結(jié)果為{Z0Z00Z1ZZ01Z},壓縮后的測(cè)試數(shù)據(jù)共有12位。為便于對(duì)比,本文使用游程編碼重新對(duì)該測(cè)試集進(jìn)行一次壓縮,因?yàn)樵摐y(cè)試集中有較多的短游程且沒(méi)有連續(xù)的“1”游程,所以本文選FDR碼進(jìn)行編碼。該測(cè)試集根據(jù)“1”游程可劃分為001、021、011、081、061,所以按照FDR編碼表編碼為00100001110010110000,共20位??梢钥闯觯疚姆椒ǖ膲嚎s效果優(yōu)于FDR碼,主要原因?yàn)楸疚牟粌H設(shè)計(jì)了根據(jù)游程長(zhǎng)度的出現(xiàn)頻率來(lái)編碼的三態(tài)碼字,而且采用變長(zhǎng)分段壓縮編碼方法使游程長(zhǎng)度進(jìn)一步集中于出現(xiàn)頻率高的碼字。
表3 示例編碼表Table 3 Example coding table
圖8為本文方法的解壓結(jié)構(gòu),壓縮過(guò)的測(cè)試集存儲(chǔ)在ATE中,其中,ATE_clk、SCK為時(shí)鐘信號(hào),SE為使能信號(hào),SI為輸入數(shù)據(jù)。測(cè)試時(shí)數(shù)據(jù)由ATE通過(guò)測(cè)試數(shù)據(jù)輸入(Test Data Input,TDI)端口輸出到解壓結(jié)構(gòu)進(jìn)行解壓,然后將解壓后的數(shù)據(jù)(即原始數(shù)據(jù))輸出到掃描鏈上進(jìn)行掃描測(cè)試。
圖8 解壓結(jié)構(gòu)Fig.8 Decompression structure
解壓過(guò)程主要分成以下兩個(gè)步驟:
1)三態(tài)信號(hào)轉(zhuǎn)換為二值信號(hào)。ATE將包含高阻態(tài)信號(hào)的壓縮后的測(cè)試數(shù)據(jù)輸出到三態(tài)檢測(cè)電路中,三態(tài)檢測(cè)電路將“Hi-Z”進(jìn)行轉(zhuǎn)換輸出,輸出信號(hào)經(jīng)過(guò)轉(zhuǎn)換電路轉(zhuǎn)換成data1’、data2’并將其輸入到FSM中。
2)解壓數(shù)據(jù)并將其輸入到掃描鏈中進(jìn)行測(cè)試。若FSM收到的data2’信號(hào)為“1”,則表示收到的是“0”或者“1”信號(hào),說(shuō)明正在讀入游程長(zhǎng)度的值,直接將該信號(hào)輸入到移位寄存器中;若FSM收到的data2’信號(hào)為“0”,則表示收到的是“Hi-Z”信號(hào),說(shuō)明游程長(zhǎng)度已經(jīng)讀取完畢,此時(shí)移位寄存器將游程長(zhǎng)度輸入到編碼表存儲(chǔ)器中,找到編碼表中對(duì)應(yīng)的游程長(zhǎng)度并輸出到計(jì)數(shù)器,由計(jì)數(shù)器將“0”或者“1”信號(hào)輸入到掃描鏈中進(jìn)行測(cè)試。
為驗(yàn)證本文方法的有效性,采用Mintest集[17]對(duì)ISCAS-89基準(zhǔn)電路中的6個(gè)電路進(jìn)行實(shí)驗(yàn)。表4為實(shí)驗(yàn)電路的基本信息。本文方法的測(cè)試壓縮算法程序由Java實(shí)現(xiàn),并在Core i7 3.4 GHz CPU、8 GB內(nèi)存的PC機(jī)上進(jìn)行驗(yàn)證。
表4 實(shí)驗(yàn)電路信息Table 4 Experimental circuit information
壓縮率計(jì)算公式如式(1)所示。本文方法對(duì)Mintest集上壓縮結(jié)果如表5所示,其中,前4列為測(cè)試集經(jīng)過(guò)壓縮處理后的基本信息,第5列為使用本文方法的測(cè)試數(shù)據(jù)壓縮率。表6為本文方法與Golomb方法[8]、FDR方法[9]、EFDR方法[10]、FRPRL方法[11]、文獻(xiàn)[13]方法、文獻(xiàn)[18]方法、9C方法[19]、BM方法[20]和文獻(xiàn)[21]方法的測(cè)試數(shù)據(jù)壓縮率對(duì)比,其中,本文方法與文獻(xiàn)[13]方法均使用三態(tài)信號(hào)對(duì)測(cè)試集進(jìn)行壓縮,其余方法均使用二值信號(hào)對(duì)測(cè)試集進(jìn)行壓縮??梢钥闯觯疚姆椒ǖ臏y(cè)試數(shù)據(jù)壓縮率要優(yōu)于其他方法,主要原因?yàn)槠鋵?duì)測(cè)試集進(jìn)行預(yù)處理能有效降低測(cè)試集中確定位的比例,為后續(xù)壓縮提供了良好的基礎(chǔ)條件,并且壓縮時(shí)使用三態(tài)信號(hào)作為標(biāo)志位,將編碼字段由定長(zhǎng)變?yōu)樽冮L(zhǎng),而且根據(jù)游程長(zhǎng)度的出現(xiàn)頻率進(jìn)行編碼,能更充分地利用編碼表。
表5 本文方法對(duì)Mintest集的壓縮結(jié)果Table 5 Compression results of the Mintest set by the proposed method
表6 10種方法的測(cè)試數(shù)據(jù)壓縮率比較Table 6 Comparison of test data compression rate of ten methods %
本文使用Synopsys公司的DC工具對(duì)解壓結(jié)構(gòu)及其對(duì)應(yīng)的基準(zhǔn)電路進(jìn)行綜合分析,得到硬件開銷的計(jì)算公式如式(2)所示:
表7為本文方法與Golomb方法[8]、FDR方法[9]、EFDR方法[10]、文獻(xiàn)[13]方法、9C方法[19]和BM方法[20]在解壓結(jié)構(gòu)的硬件開銷上的對(duì)比。由于本文方法的解壓結(jié)構(gòu)主要是增加了1個(gè)三態(tài)信號(hào)檢測(cè)電路以及1個(gè)編碼表存儲(chǔ)器,但三態(tài)信號(hào)檢測(cè)電路僅由6個(gè)晶體管組成,硬件開銷較少,因此其硬件開銷主要集中在編碼表的存儲(chǔ)器上。與同樣需要開辟額外存儲(chǔ)空間的9C和BM方法及同樣基于三態(tài)信號(hào)的文獻(xiàn)[13]方法相比,本文方法的硬件開銷更小。
表7 7種方法的硬件開銷比較Table 7 Comparison of hardware overhead of seven methods
本文提出一種基于三態(tài)信號(hào)的改進(jìn)游程編碼壓縮方法。該方法對(duì)原始測(cè)試集進(jìn)行部分輸入精簡(jiǎn)處理,降低了測(cè)試集中確定位的比例并減少參考位的數(shù)量,且對(duì)經(jīng)過(guò)預(yù)處理的測(cè)試集根據(jù)游程長(zhǎng)度進(jìn)行變長(zhǎng)分段處理,從而找出最優(yōu)段長(zhǎng),同時(shí)按照游程長(zhǎng)度的出現(xiàn)頻率對(duì)最優(yōu)段長(zhǎng)下的參考位設(shè)置編碼表進(jìn)行編碼壓縮,提高了編碼表中碼字的利用率。實(shí)驗(yàn)結(jié)果表明,本文方法相比同類壓縮方法具有更高的壓縮率,且硬件開銷沒(méi)有明顯增加。但由于本文方法僅針對(duì)二維芯片上的測(cè)試數(shù)據(jù)進(jìn)行壓縮處理,因此下一步將在三維芯片的基礎(chǔ)上研究測(cè)試芯核的排布和測(cè)試數(shù)據(jù)的調(diào)度問(wèn)題。