吳德清
(長沙航空職業(yè)技術學院,湖南 長沙 410014)
隨著信息技術的飛速發(fā)展,電子產(chǎn)品的功能越來越強大,而體積則越來越小巧,從而推進半導體技術不斷演進。SOC芯片的功能和復雜度日益提高,其芯片規(guī)模不斷增加,同時,在芯片測試過程中,故障模型的增加也導致測試數(shù)據(jù)大幅增加,而自動測試儀器并沒有相應地進行改進,其帶寬和內(nèi)存都難以承受急劇增加的測試數(shù)據(jù),由此可見,如何對測試數(shù)據(jù)進行可靠有效的壓縮,從而盡可能地減少測試時間,降低測試成本,已經(jīng)成為SOC芯片測試的關鍵技術。
目前,常用的芯片測試方法主要包括三種類型,分別是內(nèi)建自測試技術、測試緊縮技術以及測試數(shù)據(jù)壓縮技術,其中,測試數(shù)據(jù)壓縮技術應用最為普遍,其基本原理是將需要測試的數(shù)據(jù)經(jīng)過壓縮后存儲在自動測試儀器中,芯片中使用解碼電路對需要測試的數(shù)據(jù)先進行解碼,然后再進行測試,從而減少自動測試儀器中的測試數(shù)據(jù)數(shù)量,代表性的編碼方式包括統(tǒng)計碼、霍夫曼碼、Golomb碼、MTC碼、游程碼、FDR碼等。
通過實驗統(tǒng)計可以發(fā)現(xiàn),測試向量中與參考數(shù)據(jù)塊相容的數(shù)據(jù)塊數(shù)量越多,其在測試數(shù)據(jù)中出現(xiàn)的頻率就會越小,反之,則出現(xiàn)的概率會越大。本文在這種現(xiàn)象基礎上,利用FDR碼變體的特點,提出一種基于數(shù)據(jù)塊混合相容性統(tǒng)計的壓縮算法,實驗證明,該算法能有效地提高測試數(shù)據(jù)的壓縮率。
在對本文所提出的算法進行說明之前,首先對相關的重要概念進行闡述,分別是數(shù)據(jù)塊相容、連續(xù)位。數(shù)據(jù)塊相容是指不同的兩組數(shù)據(jù)存在相同的位,并且這些位均位于同一位置,或者是指兩組數(shù)據(jù)中至少有一位是無關位,例如,數(shù)據(jù)“0X11”和“01X1”,這兩組數(shù)據(jù)符合上述定義,因此,可以稱這兩組數(shù)據(jù)是數(shù)據(jù)塊相容。連續(xù)位則是表示除了無關位以外的數(shù)據(jù)塊不能包含多于一種的確定位,例如,可以認為數(shù)據(jù)“X1X11”是連續(xù)的1位,數(shù)據(jù)“00XX0X”是連續(xù)的0位。
數(shù)據(jù)塊相容性統(tǒng)計碼是指將需要進行測試的測試向量作為一個串行的數(shù)據(jù)流,如果這些測試數(shù)據(jù)流中對數(shù)據(jù)位進行統(tǒng)計后,其位數(shù)和k不存在倍數(shù)關系,則將該數(shù)據(jù)尾部進行無關位補充操作,從而使該測試數(shù)據(jù)流和k成倍數(shù)關系,然后,從測試數(shù)據(jù)流的第一位開始選擇參考數(shù)據(jù)塊,選擇的標準是其數(shù)據(jù)塊的長度必須為k,并將該選擇的數(shù)據(jù)塊作為自己的編碼。接下來,判斷和該數(shù)據(jù)塊相鄰等長的數(shù)據(jù)塊是否和該數(shù)據(jù)塊存在相容的關系,如果判斷后發(fā)現(xiàn)兩者存在相容關系,就對存在相容關系的個數(shù)進行統(tǒng)計,直到遇到不相容的數(shù)據(jù)塊,同時,利用FDR碼的變體對與參考數(shù)據(jù)塊存在相容關系的數(shù)據(jù)塊數(shù)量進行編碼,并將不存在相容關系的數(shù)據(jù)塊作為下一輪的參考數(shù)據(jù)塊,依次進行相同的處理,直到最終完成整個測試數(shù)據(jù)塊的統(tǒng)計。在整個統(tǒng)計的過程中,對于存在連續(xù)位關系的數(shù)據(jù)塊,可以進行“一位壓縮編碼”,從而盡可能減少整個測試數(shù)據(jù)的長度,該編碼方案可以表示為表1所示。
表1 編碼方案
從上述編碼方案中可以總結出本文所提出算法包括以下幾個方面的特點:
(1)A1組的前綴長度為1,A2組的前綴長度為2,以此類推,An組的前綴長度為n;
(2)A1組的前綴和尾部長度均為1,A2組的前綴和尾部長度均為2,以此類推,所有的代碼字,其前綴和尾部長度均相等;
(3)A2組的代碼字長度比A1組的代碼字長度多2位,以此類推,An+1組比An組代碼字長度也多2位;
(4)測試數(shù)據(jù)中,與參考的數(shù)據(jù)塊相容的數(shù)據(jù)塊數(shù)量為a,那么a和An存在以下關系:n=[lb(a+3)]-1。
常用的識別每個碼字的方法是:首先對前綴碼進行讀取,通常先對其中連續(xù)的1進行讀操作,在讀的過程中,一旦遇到0,就表示前綴已經(jīng)讀取完畢,由于上述分析中已經(jīng)支持,前綴和尾部的位數(shù)是相同的,因此,整個前綴的位數(shù)可以決定后面的尾部位數(shù),當將整個碼字識別完畢時,碼字所代表的與參考數(shù)據(jù)塊相容的數(shù)據(jù)塊數(shù)量就和前綴與尾部的位數(shù)之和相等。圖1表示了在s5378電路中,假設數(shù)據(jù)塊長度為4的情況下,參考數(shù)據(jù)塊相容的相鄰數(shù)據(jù)塊數(shù)量的頻率分布情況,顯然,從該圖中可以發(fā)現(xiàn),當相容數(shù)據(jù)塊數(shù)目較大時,頻率較低,反之,則頻率較高。
圖1 分布情況示意圖
本文所提出的算法較為簡單,直接對需要測試的數(shù)據(jù)進行編碼后,就可以使測試數(shù)據(jù)得到壓縮,為了方便描述,假設數(shù)據(jù)塊的長度為k,不足k位的數(shù)據(jù)塊用無關位補充,算法可以用圖2所示的流程圖表示。
圖2 算法流程圖
在上述算法中,如果遇到測試數(shù)據(jù)是最后一個k位的數(shù)據(jù)塊,則表示編碼結束。
測試過程中還需對壓縮的數(shù)據(jù)進行解碼操作,本文所設計的解碼器如圖3所示,該解碼器包括一個FSM(有限狀態(tài)機)、lbn位計數(shù)器、lbk位計數(shù)器、k位CSR以及n位計數(shù)器和二路選擇器。各個參數(shù)的含義如表2所示。
圖3 解碼器電路結構
表2 解碼器電路各參數(shù)含義
shift2 del1 del2 rs1 rs2 inc1 lbk dec3 rs3控制“data_in”是否移入k位的CSR控制計數(shù)器減1控制計數(shù)器減1計數(shù)器復位信號計數(shù)器復位信號控制lbn位計數(shù)器加1控制數(shù)據(jù)塊長度控制計數(shù)器減1指示計數(shù)器的復位狀態(tài)
在該解碼器電路中,n的值是由與參考數(shù)據(jù)塊相容最多的數(shù)據(jù)塊數(shù)目Nmax來決定的,它們之間的關系為:n=[l b(Nmax+3)]-1,當sel為低電平時,有限狀態(tài)機的輸出通過MUX的0通道后就可以成為scan_in,即掃描輸入,從而實現(xiàn)對參考數(shù)據(jù)塊的解碼操作,具體的解壓過程可以描述為以下5個步驟:
(1)FSM發(fā)出使能信號en為1時,“shift2”和“dec3”獲得高電平,控制掃描鏈的輸出,同時,將數(shù)據(jù)移入CSR,并對lbk的計數(shù)器進行減1,當rs3為高電平時,表示參考數(shù)據(jù)塊的譯碼輸出完畢;
(2)FSM將前綴移入n位計數(shù)器。當FSM接收到0時,結束該操作;
(3)當dec2為高電平時,對n位計數(shù)器進行減1操作,直到rs2為高電平時,表示和前綴對應數(shù)目的數(shù)據(jù)塊完成解壓操作;
(4)碼字尾部移入n位計數(shù)器,當rs1為高電平時,尾部移入完畢;
(5)dec2為高電平時,將n位計數(shù)器進行減1操作,dec3為高電平時,利用MUX對相容數(shù)據(jù)塊進行解壓操作,直到rs2成為高電平,表示和尾部對應數(shù)目的數(shù)據(jù)塊完成解壓操作。重復前面的操作,直到完成所有數(shù)據(jù)的譯碼輸出。
為了驗證本文提出的壓縮算法的有效性,本文采用Mintest生成測試向量,利用VC++6.0進行編程開發(fā),在ISCAS89的標準電路基礎上進行仿真實驗,壓縮率的計算方法如公式1所示。
公式1中的TD表示原始測試集,TE表示進行壓縮后的測試集。
在進行壓縮處理過程中,k的大小選擇非常重要,k的位數(shù)不同,經(jīng)過壓縮處理后所獲得的效果差別很大,如果k的值太少,則數(shù)據(jù)塊的長度較小,數(shù)據(jù)塊的數(shù)量就會增加,可以進行壓縮的數(shù)據(jù)就會減少,從而降低壓縮率;如果k的值太大,又會導致每個代碼字的長度增加,同樣也不利于壓縮處理。由此可見,k值的選擇對壓縮率有著關鍵的影響。為了驗證不同的k值情況下壓縮率的異同,可以選取不同位數(shù)的k進行驗證,以電路S5378為例,可以得到如圖4所示的結果,從該圖中可以看出,不同的k值會得到不同的壓縮率,其中,當k的值為3時,該電路的壓縮率最大,大于3或則小于3,壓縮率反而降低。
圖4 不同k值下的壓縮率對比
為了驗證本文所提出的編碼算法的有效性,將本文算法和同類算法進行對比,表3顯示了本算法與其它多種編碼方法比較的結果,從該表中可以看出,本文所提出的算法其壓縮效果比其它的方法更好。
表3 本文所提出算法與其他編碼方法比較結果
信息技術的發(fā)展對芯片的測試技術提出了更高的要求,對測試數(shù)據(jù)進行有效的壓縮,可以更好地降低開發(fā)成本,提高生產(chǎn)效率。本文主要針對測試數(shù)據(jù)具有相容性的特點,通過實驗統(tǒng)計發(fā)現(xiàn),測試向量中與參考數(shù)據(jù)塊相容的數(shù)據(jù)塊數(shù)量越多,其在測試數(shù)據(jù)中出現(xiàn)的頻率就會越小,反之,出現(xiàn)的概率會越大,根據(jù)這一規(guī)律提出利用FDR碼變體來對測試數(shù)據(jù)進行壓縮處理的算法,通過仿真實驗,證明該算法比其它編碼方式更能提高壓縮率。