專利名稱:片上系統(tǒng)的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法及專用解碼單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路測(cè)試技術(shù)領(lǐng)域。
現(xiàn)有壓縮技術(shù)比較典型的有傳統(tǒng)游程算法與Golomb算法。傳統(tǒng)游程編碼是一種變長到定長的編碼算法。Golomb編碼是在傳統(tǒng)的游程編碼基礎(chǔ)發(fā)展起來的一種改進(jìn)算法,其最大的改進(jìn)之處在于改變?cè)瓉韽淖冮L到定長的編碼方式,而選擇了變長到變長的方案,詳見文獻(xiàn)A.Jas and N.A.Touba,Test vector decompression via cyclical scan chains and itsapplication to test core-based design,Proceedings of International Test Conference,1998,page(s)458-464。但此方案不足之處在于它不能夠適應(yīng)碼流非等間距情況。
由于測(cè)試數(shù)據(jù)本身具有獨(dú)特的屬性,如可指定性、無序性、不均性等,因此需要根據(jù)其特性設(shè)計(jì)具有更好適應(yīng)性的壓縮算法才能獲得更加理想的壓縮效率和穩(wěn)定性。
本發(fā)明提出了片上系統(tǒng)的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法,其特征在于首先,通過存儲(chǔ)程序的計(jì)算機(jī)對(duì)測(cè)試數(shù)據(jù)進(jìn)行壓縮編碼,包括如下步驟1)進(jìn)行測(cè)試數(shù)據(jù)游程的分析,即統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)中0和1的比例,若原始測(cè)試數(shù)據(jù)中0的數(shù)據(jù)位少于1的數(shù)據(jù)位,則將所有的無關(guān)位指定為0,按0串編碼;否則將所有的無關(guān)位指定為1,按1串編碼;2)以位串為基本單元,將所述的測(cè)試數(shù)據(jù)切分開來,統(tǒng)計(jì)位串的長度,利用自適應(yīng)的變長壓縮方法編碼表將位串長度轉(zhuǎn)變?yōu)榇a字,實(shí)現(xiàn)測(cè)試數(shù)據(jù)的壓縮;然后,利用測(cè)試設(shè)備將壓縮的數(shù)據(jù)導(dǎo)入待測(cè)的片上系統(tǒng);在待測(cè)的片上系統(tǒng)配置針對(duì)自適應(yīng)的變長壓縮方法制作的解碼單元來進(jìn)行解碼,解碼單元包括相互連接的有限狀態(tài)機(jī)、計(jì)數(shù)器和發(fā)送控制器,所述有限狀態(tài)機(jī)讀入壓縮數(shù)據(jù),每次串行讀入2位數(shù)據(jù)為一個(gè)狀態(tài),根據(jù)壓縮數(shù)據(jù)代碼字的不同而進(jìn)入不同的狀態(tài),并由此對(duì)計(jì)數(shù)器進(jìn)行置位,發(fā)送控制器根據(jù)有限狀態(tài)機(jī)的發(fā)來的編碼輸出狀態(tài)和計(jì)數(shù)器送來的數(shù)據(jù),將解碼后的數(shù)據(jù)發(fā)送給系統(tǒng)芯片的內(nèi)部掃描測(cè)試邏輯電路,完成壓縮數(shù)據(jù)的解碼。
所述的自適應(yīng)的變長壓縮方法編碼表通過如下方法制得根據(jù)編碼數(shù)據(jù)中位串的長度分布進(jìn)行分組,A1、A2、A3、...、An,考慮一個(gè)長度為L的位串,分組時(shí)將分屬于Aj,其中,j=[log2(L+3)]-1,[]為取整符號(hào);在每個(gè)分組中包含2的冪指數(shù)個(gè)元素,每個(gè)位串長度對(duì)應(yīng)一個(gè)代碼字;代碼字的構(gòu)成以00、01、10和11這4種兩位二進(jìn)制數(shù)字串為基本編碼元素,代碼字分為前綴和后綴,前綴為變長字段,由01和11兩種字串構(gòu)成;后綴為定長字段,由00和10兩種字串構(gòu)成。
所述位串長度L的最大值的優(yōu)化取值范圍為16~64。
本發(fā)明還提供了一種實(shí)現(xiàn)片上系統(tǒng)的測(cè)試數(shù)據(jù)解碼方法的專用解碼單元,包括相互連接的有限狀態(tài)機(jī)、計(jì)數(shù)器和發(fā)送控制器;解碼單元的發(fā)送時(shí)鐘送入所述的計(jì)數(shù)器和發(fā)送控制器,所述發(fā)送時(shí)鐘分頻得到的測(cè)試時(shí)鐘和數(shù)據(jù)輸入信號(hào)進(jìn)入所述的有限狀態(tài)機(jī);有限狀態(tài)機(jī)分別將設(shè)定計(jì)數(shù)器初態(tài)信號(hào)和編碼輸出狀態(tài)信號(hào)送給計(jì)數(shù)器和發(fā)送控制器;計(jì)數(shù)器將編碼數(shù)據(jù)信號(hào)發(fā)給所述的發(fā)送控制器;所述發(fā)送控制器將數(shù)據(jù)輸出信號(hào)送到片上系統(tǒng)的內(nèi)部掃描測(cè)試邏輯電路,然后給出編碼完成信號(hào)到與解碼單元相連的外部控制單元。
采用本發(fā)明所述的編碼方法,經(jīng)編碼后的測(cè)試數(shù)據(jù)是原測(cè)試數(shù)據(jù)的50%-70%,對(duì)于像測(cè)試MPEG2芯片的超大型數(shù)據(jù),壓縮后的數(shù)據(jù)是原來數(shù)據(jù)的1/3-1/10,利用所述的解碼單元進(jìn)行解碼后測(cè)試集成電路芯片是可行的。
圖2為專用解碼單元的結(jié)構(gòu)示意圖。
圖3為三種壓縮方法的壓縮率比較圖。
本發(fā)明所述的片上系統(tǒng)的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法首先,通過存儲(chǔ)程序的計(jì)算機(jī)對(duì)測(cè)試數(shù)據(jù)進(jìn)行壓縮編碼,采用自適應(yīng)變長壓縮方法,(即SAC算法),包括如下步驟1)進(jìn)行測(cè)試數(shù)據(jù)游程的分析,即統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)中0和1的比例,若原始測(cè)試數(shù)據(jù)中0的數(shù)據(jù)位少于1的數(shù)據(jù)位,則將所有的無關(guān)位指定為0,按0串編碼;否則將所有的無關(guān)位指定為1,按1串編碼;2)以位串為基本單元,將所述的測(cè)試數(shù)據(jù)切分開來,統(tǒng)計(jì)位串的長度,利用自適應(yīng)的變長壓縮方法編碼表將位串長度轉(zhuǎn)變?yōu)榇a字,實(shí)現(xiàn)測(cè)試數(shù)據(jù)的壓縮;然后,利用測(cè)試設(shè)備將壓縮的數(shù)據(jù)導(dǎo)入待測(cè)的片上系統(tǒng);在待測(cè)的片上系統(tǒng)配置針對(duì)自適應(yīng)的變長壓縮方法制作的解碼單元來進(jìn)行解碼,解碼單元包括相互連接的有限狀態(tài)機(jī)、計(jì)數(shù)器和發(fā)送控制器,所述有限狀態(tài)機(jī)讀入壓縮數(shù)據(jù),每次串行讀入2位數(shù)據(jù)為一個(gè)狀態(tài),根據(jù)壓縮數(shù)據(jù)代碼字的不同而進(jìn)入不同的狀態(tài),并由此對(duì)計(jì)數(shù)器進(jìn)行置位,發(fā)送控制器根據(jù)有限狀態(tài)機(jī)的發(fā)來的編碼輸出狀態(tài)和計(jì)數(shù)器送來的數(shù)據(jù),將解碼后的數(shù)據(jù)發(fā)送給系統(tǒng)芯片的內(nèi)部掃描測(cè)試邏輯電路,完成壓縮數(shù)據(jù)的解碼。
本發(fā)明所述的數(shù)據(jù)壓縮編碼方法采用不等間距編碼方式,即在進(jìn)行分組時(shí),每個(gè)組的大小根據(jù)其出現(xiàn)頻率進(jìn)行了適當(dāng)?shù)恼{(diào)整。
首先,根據(jù)測(cè)試數(shù)據(jù)中位串的長度分布進(jìn)行分組,A1、A2、A3、...、An,n由最長的位串長度Lmax決定,其中,n=[log2(Lmam+3)]-1,[]為取整符號(hào);Lmax的優(yōu)選取值范圍為16~64。
考慮一個(gè)長度為L的位串,分組時(shí)將分屬于Aj,其中,j=[log2(L+3)]-1,[]為取整符號(hào);在每個(gè)分組中包含2的冪指數(shù)個(gè)元素,例如第i個(gè)分組Ai會(huì)包含2i個(gè)元素;每個(gè)位串長度對(duì)應(yīng)一個(gè)代碼字;代碼字的構(gòu)成以4種兩位二進(jìn)制數(shù)字串為基本編碼元素,即00、01、10和11。代碼字可分為前綴和后綴。前綴為變長字段,由01和11兩種字串構(gòu)成;后綴為定長字段,由00和10兩種字串構(gòu)成。
如表1所示,組成0、1、2、3、4、5、6、7、8、9、10、11、12、13......分別按A1、A2、A3三組構(gòu)成編碼,依據(jù)前綴和后綴按照01、11和00、10進(jìn)行編碼,如A1組的0,其前綴無,后綴為0,則其編碼為00;A3組6和7,它們的前綴均是由01編碼組成的字段0101構(gòu)成,而6的后綴是00,7的后綴是10,則6、7的編碼分別是010100,010110等等。在A1、A2、A3三組之后,有A4......,它們構(gòu)成規(guī)則相同,前綴仍是由01、11組成的字段構(gòu)成,所不同的是前綴字段長度要比A3長,而后綴仍然是兩位,即00、10,整個(gè)編碼長度是呈對(duì)準(zhǔn)對(duì)數(shù)關(guān)系增加。
如表1所示,可以為任意長度的位串編制代碼字。
表1 自適應(yīng)的變長壓縮方法編碼表(即SAC算法編碼表)
SAC編碼還具有以下一些基本屬性●前綴所采用的基本編碼元素都以1為末位值,而后綴所采用的基本編碼元素都以0為末位值。結(jié)果是當(dāng)且僅當(dāng)代碼字中基本編碼元素的末位為0時(shí),該位為當(dāng)前的代碼字的結(jié)束位,下一位為新代碼字的起始位;●每個(gè)分組所對(duì)應(yīng)的代碼字依次遞增兩位;根據(jù)以上所定義的編碼方式,可以得到長度為L的位串都將映射成Es位代碼字,其中Es=([log2(L+3)]-1)×2 公式3傳統(tǒng)的游程(run-length)算法和Golomb算法中,代碼字長度與原始數(shù)據(jù)長度的比例都是類似線性的關(guān)系,而SAC算法中代碼字長度與原始數(shù)據(jù)長度則是類似對(duì)數(shù)的關(guān)系,如
圖1所示。其中傳統(tǒng)游程算法的塊參數(shù)選定為4,Golomb算法的編碼參數(shù)選定為3,本發(fā)明用到的SAC算法的塊參數(shù)是一個(gè)自適應(yīng)參數(shù),擬選為公式3計(jì)算出的結(jié)果??梢钥吹疆?dāng)位串的長度小于20時(shí),三種算法的代碼字長度比較接近,相互交錯(cuò)。但當(dāng)位串長度大于20之后,SAC算法表現(xiàn)出明顯優(yōu)勢(shì)。
電路實(shí)現(xiàn)裝置對(duì)于測(cè)試數(shù)據(jù)壓縮方法來說是至關(guān)重要的因素之一。因?yàn)槿绻捎昧藴y(cè)試數(shù)據(jù)壓縮方法,那么在可測(cè)性設(shè)計(jì)中必須要增加一個(gè)解碼單元來恢復(fù)原始的測(cè)試數(shù)據(jù)。這個(gè)解碼單元必須控制在一定的規(guī)模范圍內(nèi),同時(shí)又要具有較好的擴(kuò)展性,以便于自動(dòng)測(cè)試生成。
為SAC算法所設(shè)計(jì)的解碼單元如圖2所示,該解碼單元包括相互連接的有限狀態(tài)機(jī)、計(jì)數(shù)器和發(fā)送控制器;解碼單元的發(fā)送時(shí)鐘Clkh送入所述的計(jì)數(shù)器和發(fā)送控制器,所述發(fā)送時(shí)鐘Clkh分頻得到的測(cè)試時(shí)鐘Clkl和數(shù)據(jù)輸入信號(hào)Sin進(jìn)入所述的有限狀態(tài)機(jī);有限狀態(tài)機(jī)將設(shè)定計(jì)數(shù)器初態(tài)信號(hào)送給計(jì)數(shù)器通知計(jì)數(shù)器按給定編碼初態(tài)計(jì)數(shù),將編碼輸出狀態(tài)信號(hào)送給發(fā)送控制器通知發(fā)送控制器按給定狀態(tài)輸出編碼后數(shù)據(jù);計(jì)數(shù)器將編碼數(shù)據(jù)信號(hào)發(fā)給所述的發(fā)送控制器;所述發(fā)送控制器將數(shù)據(jù)輸出信號(hào)Sout送到片上系統(tǒng)的內(nèi)部掃描測(cè)試邏輯電路,然后,發(fā)送控制器輸出編碼完成信號(hào)ready到與解碼單元相連的外部控制單元,報(bào)告本段測(cè)試數(shù)據(jù)編碼完成,可以送入后續(xù)的測(cè)試數(shù)據(jù)。
根據(jù)實(shí)際電路以及測(cè)試設(shè)備的特點(diǎn),解碼單元采用的是低頻掃入,高頻掃出的工作方式。低頻時(shí)鐘Clkl為測(cè)試數(shù)據(jù)在測(cè)試儀器與待測(cè)芯片間的傳送頻率。高頻率時(shí)鐘Clkh為解碼單元的發(fā)送時(shí)鐘,該頻率由電路的掃描鏈特性決定。可以根據(jù)電路的設(shè)計(jì)指標(biāo),參考測(cè)試時(shí)間和測(cè)試功耗等因素來確定。Clkl與Clkh應(yīng)保持同步,由Clkh分頻得到。分頻的倍數(shù)需要根據(jù)測(cè)試數(shù)據(jù)中最長的位串長度、Clkh以及測(cè)試設(shè)備的性能來綜合決定。
以基于0位串的壓縮為例,當(dāng)需要解碼一個(gè)長度為8的0位串(代碼字為011100)時(shí),解碼單元的動(dòng)作過程如下●初始狀態(tài)計(jì)數(shù)器清零;發(fā)送控制器于空閑狀態(tài);有限狀態(tài)機(jī)處于等待狀態(tài)。
●讀入01發(fā)送控制器仍然于空閑狀態(tài);有限狀態(tài)機(jī)控制下將計(jì)數(shù)器置為2,表示需要發(fā)送2個(gè)連續(xù)的0。
●讀入11發(fā)送控制器以Clkh的頻率,按計(jì)數(shù)器中的值發(fā)送2個(gè)連續(xù)的0;有限狀態(tài)機(jī)控制下將計(jì)數(shù)器置為6。
●讀入00發(fā)送控制器以Clkh的頻率,按計(jì)數(shù)器中的值發(fā)送6個(gè)連續(xù)的0;有限狀態(tài)機(jī)控制下將計(jì)數(shù)器置為0,進(jìn)入結(jié)束狀態(tài)。
●讀入下一個(gè)壓縮數(shù)據(jù)的前兩位發(fā)送控制器發(fā)送結(jié)束位1;有限狀態(tài)機(jī)根據(jù)解碼結(jié)果寫計(jì)數(shù)器。
以上即為一個(gè)簡單實(shí)例的具體操作過程,其中有限狀態(tài)機(jī)對(duì)計(jì)數(shù)器的置位可根據(jù)表2確定,更長的代碼字也可依照此表推算得到。
表2 代碼字與計(jì)數(shù)器置位數(shù)值映射表
采用ISCAS89 benchmark電路的全掃描形式,對(duì)傳統(tǒng)游程(run-length)算法、Golomb算法以及SAC算法進(jìn)行壓縮效率的比較,如表3所示。
表3 三種壓縮算法的壓縮效率比較
從表3的數(shù)據(jù)以及圖3可以看出,由于SAC在保持短位串壓縮效率的情況下,進(jìn)一步提高了對(duì)長位串的壓縮效率,因此總體壓縮效率要優(yōu)于傳統(tǒng)游程(run-length)算法和Golomb算法。采用本發(fā)明所述的SAC數(shù)據(jù)壓縮方法效率穩(wěn)定,基本保持在70%-50%之間。而且隨著電路規(guī)模的增大,其壓縮效率的優(yōu)勢(shì)更加明顯。
權(quán)利要求
1.片上系統(tǒng)的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法,其特征在于首先,通過存儲(chǔ)程序的計(jì)算機(jī)對(duì)測(cè)試數(shù)據(jù)進(jìn)行壓縮編碼,包括如下步驟1)進(jìn)行測(cè)試數(shù)據(jù)游程的分析,即統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)中0和1的比例,若原始測(cè)試數(shù)據(jù)中0的數(shù)據(jù)位少于1的數(shù)據(jù)位,則將所有的無關(guān)位指定為0,按0串編碼;否則將所有的無關(guān)位指定為1,按1串編碼;2)以位串為基本單元,將所述的測(cè)試數(shù)據(jù)切分開來,統(tǒng)計(jì)位串的長度,利用自適應(yīng)的變長壓縮方法編碼表將位串長度轉(zhuǎn)變?yōu)榇a字,實(shí)現(xiàn)測(cè)試數(shù)據(jù)的壓縮;然后,利用測(cè)試設(shè)備將壓縮的數(shù)據(jù)導(dǎo)入待測(cè)的片上系統(tǒng);在待測(cè)的片上系統(tǒng)配置針對(duì)自適應(yīng)的變長壓縮方法制作的解碼單元來進(jìn)行解碼,解碼單元包括相互連接的有限狀態(tài)機(jī)、計(jì)數(shù)器和發(fā)送控制器,所述有限狀態(tài)機(jī)讀入壓縮數(shù)據(jù),每次串行讀入2位數(shù)據(jù)為一個(gè)狀態(tài),根據(jù)壓縮數(shù)據(jù)代碼字的不同而進(jìn)入不同的狀態(tài),并由此對(duì)計(jì)數(shù)器進(jìn)行置位,發(fā)送控制器根據(jù)有限狀態(tài)機(jī)的發(fā)來的編碼輸出狀態(tài)和計(jì)數(shù)器送來的數(shù)據(jù),將解碼后的數(shù)據(jù)發(fā)送給系統(tǒng)芯片的內(nèi)部掃描測(cè)試邏輯電路,完成壓縮數(shù)據(jù)的解碼。
2.根據(jù)權(quán)利要求1所述的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法,其特征在于所述的自適應(yīng)的變長壓縮方法編碼表通過如下方法制得根據(jù)編碼數(shù)據(jù)中位串的長度分布進(jìn)行分組,A1、A2、A3、...、An,考慮一個(gè)長度為L的位串,分組時(shí)將分屬于Aj,其中,j=[log2(L+3)]-1,[]為取整符號(hào);在每個(gè)分組中包含2的冪指數(shù)個(gè)元素,每個(gè)位串長度對(duì)應(yīng)一個(gè)代碼字;代碼字的構(gòu)成以00、01、10和11這4種兩位二進(jìn)制數(shù)字串為基本編碼元素,代碼字分為前綴和后綴,前綴為變長字段,由01和11兩種字串構(gòu)成;后綴為定長字段,由00和10兩種字串構(gòu)成。
3.根據(jù)權(quán)利要求1或2所述的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法,其特征在于所述位串長度L的最大值的優(yōu)化取值范圍為16~64。
4.實(shí)現(xiàn)權(quán)利要求1所述片上系統(tǒng)的測(cè)試數(shù)據(jù)解碼方法的專用解碼單元,其特征在于該解碼單元包括相互連接的有限狀態(tài)機(jī)、計(jì)數(shù)器和發(fā)送控制器;解碼單元的發(fā)送時(shí)鐘送入所述的計(jì)數(shù)器和發(fā)送控制器,所述發(fā)送時(shí)鐘分頻得到的測(cè)試時(shí)鐘和數(shù)據(jù)輸入信號(hào)進(jìn)入所述的有限狀態(tài)機(jī);有限狀態(tài)機(jī)分別將設(shè)定計(jì)數(shù)器初態(tài)信號(hào)和編碼輸出狀態(tài)信號(hào)送給計(jì)數(shù)器和發(fā)送控制器;計(jì)數(shù)器將編碼數(shù)據(jù)信號(hào)發(fā)給所述的發(fā)送控制器;所述發(fā)送控制器將數(shù)據(jù)輸出信號(hào)送到系統(tǒng)芯片的內(nèi)部掃描測(cè)試邏輯電路,然后給出編碼完成信號(hào)到與解碼單元相連的外部控制單元。
全文摘要
片上系統(tǒng)的測(cè)試數(shù)據(jù)壓縮編碼、解碼方法及專用解碼單元,屬于集成電路測(cè)試技術(shù)領(lǐng)域。為了解決現(xiàn)有技術(shù)中測(cè)試向量壓縮效率較低,測(cè)試時(shí)間較長,不能夠適應(yīng)碼流非等間距情況的問題,本發(fā)明公開了片上系統(tǒng)的測(cè)試數(shù)據(jù)壓縮的編碼方法,通過存儲(chǔ)程序的計(jì)算機(jī)執(zhí)行如下步驟首先統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)中0和1的比例,若原始測(cè)試數(shù)據(jù)中0的數(shù)據(jù)位少于1的數(shù)據(jù)位,則將所有的無關(guān)位指定為0,按0串編碼;否則按1串編碼。以位串為基本單元,將所述的測(cè)試數(shù)據(jù)切分開來,統(tǒng)計(jì)位串的長度,利用自適應(yīng)的變長壓縮方法編碼表將位串長度轉(zhuǎn)變?yōu)榇a字,實(shí)現(xiàn)數(shù)據(jù)的壓縮;解碼方法是利用針對(duì)自適應(yīng)的變長壓縮方法制作的解碼單元來進(jìn)行解碼的。
文檔編號(hào)G01R31/28GK1476174SQ0314817
公開日2004年2月18日 申請(qǐng)日期2003年7月4日 優(yōu)先權(quán)日2003年7月4日
發(fā)明者孫義和, 徐磊, 陳弘毅, 高力立 申請(qǐng)人:清華大學(xué)