• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于IFDR改進的測試激勵數(shù)據(jù)壓縮方法*

      2016-04-25 08:27:58尤志強羅奇鈞
      湖南大學學報(自然科學版) 2016年2期

      尤志強,羅奇鈞

      (湖南大學 信息科學與工程學院,湖南 長沙 410082)

      ?

      一種基于IFDR改進的測試激勵數(shù)據(jù)壓縮方法*

      尤志強?,羅奇鈞

      (湖南大學 信息科學與工程學院,湖南 長沙410082)

      摘要:通過改進IFDR碼,提出一種基于游程相等編碼的改進FDR(ERFDR)方法.首先,該方法不僅能同時對原測試集的0游程和1游程進行編碼,而且,當相鄰游程相等時還可以用較短的碼字來代替,從而進一步提高了壓縮率.其次,還提出針對該壓縮方法的測試集無關(guān)位填充算法,增強提出方法的壓縮效果.實驗結(jié)果表明,與FDR,EFDR,IFDR和ERLC相比較,本文提出的方法獲得了更高的壓縮率,降低了測試費用.

      關(guān)鍵詞:全掃描測試;測試數(shù)據(jù)壓縮;無關(guān)位;FDR編碼

      隨著超大規(guī)模集成(VLSI)電路制造工藝的不斷進步,越來越多的知識產(chǎn)權(quán)(IP)核被集成到一個系統(tǒng)芯片(SoC)上,與SoC相關(guān)的可測試性和測試方法問題被擺到了重要的位置.近十年來,如何降低測試成本,減少測試應(yīng)用時間,降低測試功耗成為了研究的熱點問題.

      數(shù)據(jù)壓縮技術(shù)能較好地解決這個問題,而編碼壓縮又是眾多壓縮方法中較好的一種.當前比較成熟的編碼壓縮方法有字典編碼[1]、游程編碼[2]、Huffman碼[3]、Golomb碼[4-5]、FDR碼[6]、EFDR碼[7-8]、IFDR碼[9]等.這些編碼壓縮方法充分利用了測試集中的無關(guān)位(X).FDR是一種變長0游程編碼,測試集中的X都被填充為0以增加0游程的長度,當測試集中1的個數(shù)較少時有較好的壓縮效果.EFDR碼和IFDR碼可以同時對0,1游程進行編碼,當測試集中1的個數(shù)較多時,也能取得較好的壓縮效果.然而以上方法均沒考慮等游程的情況.本文在IFDR上進行改進,提出一種基于游程相等的改進FDR(ERFDR),一方面能同時對0,1游程編碼,另一方面當相鄰游程相等時用較短的碼字來代替,以進一步提高壓縮率,減少測試應(yīng)用時間.

      1IFDR編碼

      IFDR編碼是一種改進型FDR編碼(Improved FDR).該方法將原測試集看作連續(xù)的0游程和1游程,0游程和1游程共用同一套碼字,并規(guī)定0游程后接1游程,1游程后接0游程.若不是,即0游程后是0游程或者1游程后是1游程,編碼時在兩個相同游程中間添加一個“00”作為標識符.該方法默認從1游程開始編碼,若測試集第一位為0,則在編碼的過程中先必須加個“00”作為標識.表1給出了IFDR的編碼表,可以看出游程長度l和其所在組k的關(guān)系為:k=「log2(l+3)?-1.前綴中1的個數(shù)和其所在組的關(guān)系為:k組的前綴為1k-10,表示有k-1個1再接一個0.對于任一組,前綴和尾部的長度是相等的,組前綴是用來區(qū)分該碼字所在的組(通過前綴的長度),尾部用來確定該碼字所在組中的位置.和FDR編碼表不同的是IFDR編碼表的A1組只包含一個游程長度,且沒有長度為0的游程.用IFDR對0游程和1游程編碼時共用同一套編碼.

      表1 IFDR編碼表

      2ERFDR碼

      為了進一步提高測試壓縮率,本文在IFDR基礎(chǔ)上進行改進,提出一種基于游程相等的改進FDR(ERFDR),編碼表見表2.與IFDR碼類似,ERFDR碼也能同時對0游程和1游程編碼,0游程和1游程共用同一套碼字,且默認從1游程開始編碼.考慮到相鄰游程類型相同的可能性較高,與IFDR碼不同,本文用一位“0”作為標識,則可多壓縮一位.代價是游程長度為2n+1-3的編碼增長2位,其中n為自然數(shù).當這種游程個數(shù)小于相鄰游程類型相同的游程個數(shù)的一半時,該編碼方式有效.可以預(yù)見,當測試集中確定位比例越低,該編碼方式越有效.進一步考慮到,每個游程的編碼都是從1開始,且不會連續(xù)出現(xiàn)兩個“0”標識符.我們可以用“00”標識相鄰兩個游程相等的情況,從而取得進一步的壓縮效果.在不發(fā)生混淆的前提下,本文用“0000” 標識相鄰游程類型相同且相等的情況.

      總之,提出的方法有如下5個編碼原則:1)若測試集第一個游程為0游程,須加“0”作為標識;2)當相鄰游程類型相同但游程不相等時,在兩游程的編碼之間加“0”標識;3)當相鄰游程長度相等且類型不同時,后一個游程用“00”編碼;4)當相鄰游程長度相等且類型相同時,后一個游程用“0000”編碼;5)為了避免解碼時發(fā)生歧義,當出現(xiàn)連續(xù)3個游程長度相等時,則對第3個游程直接用編碼表編碼,而不使用原則3)和4)編碼.

      如表2所示,全部游程長度分為A1,A2,…,Akmax組,其中kmax由測試集中最大游程長度lmax決定,滿足不等式2kmax+1-4

      表2 ERFDR編碼表

      例1下面是31位的測試向量,分別用幾種編碼方法求1110111111000000000011111111110的編碼.

      用FDR編碼:

      0000000110111100110000000000000000000001共40位,比原向量位數(shù)還多;

      用EFDR編碼:110001101101100101110010共24位;

      用IFDR編碼:100100110000110011110011共24位.

      而用本方法編碼:1010 0 110001 110100 00共19位,可見本方法比上面的幾種方法壓縮效果都有改善.

      3無關(guān)位的填充方法

      大規(guī)模測試數(shù)據(jù)中無關(guān)位占95%以上,測試數(shù)據(jù)壓縮效果的好壞在一定程度上取決于對X的填充.本方法對0,1同時編碼,并充分利用游程長度和類型信息進一步提高測試壓縮率,在對無關(guān)位填充的過程中應(yīng)遵循下列兩個基本原則:

      1)盡量使用長游程編碼;

      2)盡可能地讓相鄰游程相等.

      例如:00XX00X00XXXXXXX11XX11XX10這樣一組測試數(shù)據(jù),若在填充過程中僅僅遵循原則1),則填充后為00000000000000001111111110,用 表2編碼,結(jié)果為11100011 110011,共14位.若遵循上述兩原則:0000000000001 1111111111110,用本文的方法編碼為110111 00共8位,減少了6位,壓縮效果明顯改善.本文所用的填充算法(無關(guān)位填充算法)如下.

      輸入:帶無關(guān)位X的測試集T0;

      輸出:不含無關(guān)位X的測試集T1;

      目標:采用ERFDR方法編碼長度較短.

      STEP1: 從T0中按先后順序選取測試數(shù)據(jù)片段.

      首先,標記開始的位置為P0;從P0開始尋找第一個確定位,標記該位置為P1;接著從P1開始找到第一個與P1所在位不同的確定位,記這個位置為P2;再從P2開始尋找第一個與P1所在位相等的確定位,記該位置為P3;接著按相反的順序從P2向P0方向?qū)ふ业谝粋€確定位,記為P4;從P3向P0的方向?qū)ふ业谝粋€確定位,記為P5.從P0到P3即為一塊數(shù)據(jù)片段.此外,再從P3往正方向?qū)ふ业谝粋€確定位,記該位置為P6,從P3往正方向?qū)ふ业谝粋€與P3不同的確定位,記為P7.圖1(a)為數(shù)據(jù)片段選取實例.

      STEP2: 等游程判斷.

      我們記P0到P4間的位數(shù)(包括P0和P4)為n,P4到P2間的位數(shù)(不包括P4和P2)為h,P2到P5間的位數(shù)(包括P5但不包括P2)為m,P5到P3間的位數(shù)(不包括P5和P3)為r.從圖1(a)中選取的測試片段可以看出,P0到P3是否可以填充為相等游程取決于對h和r中X的合理填充能否滿足要求.若P3所在位的值和P6的相等且n滿足關(guān)系式m-h≤n≤m或m

      圖1 一測試向量數(shù)據(jù)片段填充實例

      若P3所在位的值和P6所在位的值不相等或n不滿足上述關(guān)系,轉(zhuǎn)到STEP4.

      若P2與P5重合,將P3調(diào)整到P7的位置,并令P8=2×P2+1-P0.若P3

      STEP3: 等游程填充.

      根據(jù)游程相等情況填充X,轉(zhuǎn)到STEP5.

      STEP4: 游程長度不等時的填充.

      令從P0到P4中的所有X填充為P1所在位置的值,再令從P2到P3中的所有X填充為P2所在位置的值,這樣從P0到P3即為...aaaXXXbbb...(a可以為0或1,相應(yīng)的b為1或0)的形式.若將X完全填為a(或b),且不會使原a串(或b串)的碼字增加,則將X填充為a(或b).否則,填充X時盡量讓長串更長:在不增長a串編碼長度的前提下,將部分X填為a,使a串飽和;在不增長b串編碼長度的前提下,將剩余部分X填為b,使b飽和;若還有X未被填充,則填為a,b串中較長的那個.

      STEP5:直到T0中沒有X,算法終止,否則轉(zhuǎn)STEP1.

      圖1(b)為圖1(a)的填充實例.此時,n=9,h=7,m=8,r=3,P3所在位的值和P6的相等(都是0),且滿足m

      4解碼器設(shè)計

      進一步分析ERFDR編碼表可以得知游程長度l與前綴(c)和尾部(d)的關(guān)系:l=(c)2+(d)2-1,例如,游程長度為3時,l=(10)2+(10)2-1.接下來我們分析得到各碼字的前綴都是以111...1110的形式出現(xiàn),可得:

      l=(c)2+(d)2-1=(c+10+d)2-3=

      該解碼器的結(jié)構(gòu)是基于一個有限狀態(tài)機(FSM)的設(shè)計,類似于FDR解碼器電路,結(jié)構(gòu)簡單,硬件開銷小.如圖2所示,該結(jié)構(gòu)由一個FSM, k+1位計數(shù)器, k+1位寄存器,log2k位計數(shù)器和一個T觸發(fā)器組成.其中,bit_in:輸入端口,壓縮后的數(shù)據(jù)TE從此端口輸入到有限狀態(tài)機進行解碼;en:使能信號,控制bit_in的輸入;clk:時鐘信號;log2k位計數(shù)器:用來計算前綴的位數(shù),并以此來控制尾部的輸入;inc/dec分別控制log2k位計數(shù)器的加1和減1操作;dec1控制k+1位計數(shù)器的減1,rs和rs1分別指示k+1位和log2k位計數(shù)器已復位;shift:控制各個數(shù)據(jù)位移入k+1位計數(shù)器;load:裝載信號;reg_ent1:寄存器控制信號;v:指示scaninput何時有效.

      該解碼器的工作原理如下:

      圖2 解碼器示意圖

      1)初始化,讓使能信號en為1,準備接收數(shù)據(jù).T觸發(fā)器初始化為1.若解壓數(shù)據(jù)第一位是0,則FSM令out為1,T觸發(fā)器翻轉(zhuǎn);若為1,則令out為0.

      2)FSM讓使能信號為1,shift和inc為1,F(xiàn)SM控制log2k位計數(shù)器加1,直到bit_in為0為止.

      3)FSM輸出端為低電平,控制T觸發(fā)器輸出上一狀態(tài)值,同時v為高電平,表示輸出有效.

      4)FSM將k+1位計數(shù)器的初始值設(shè)為1,并通過log2k計數(shù)器控制將初始值1和尾部一起向高位移動.此時,dec為高電平控制log2k計數(shù)器的減1,直到rs1為高電平,log2k計數(shù)器為0時,尾部輸入結(jié)束.

      5)reg_ent1為高電平時,通過dcopy復制k+1位計數(shù)器的值到k+1位寄存器中.

      6)FSM控制dec1為高電平,控制k+1位計數(shù)器的減1操作,直到k+1位計數(shù)器的值為3(即0…011)時,out輸出為高電平,T觸發(fā)器的輸出翻轉(zhuǎn).

      7)當解碼完一個游程后,一直到bit_in為1之前,若bit_in共出現(xiàn)1個“0”,則令out為低電平,且v也為低電平0,表示輸出無效,同時也為下一個游程編碼做準備;出現(xiàn)兩個0時,即“00”,則置load為高電平,通過dload把寄存器的值載入k+1位寄存器中,轉(zhuǎn)到6);當出現(xiàn)“000”時(共3個時鐘周期),則在前2個時鐘周期置load為高電平,通過dload把寄存器的值載入k+1位寄存器中,轉(zhuǎn)到6),第3個時鐘周期令out為低電平,v且也為低電平0,表示輸出無效;出現(xiàn)“0000”時,令out為低電平,然后置load為高電平,通過dload把寄存器的值載入k+1位寄存器中,轉(zhuǎn)到6);當出現(xiàn)“00000”時,重復上述出現(xiàn)4個0的步驟,之后在最后一個時鐘周期令out為低電平,且v也為低電平.

      5實驗結(jié)果

      本文針對ISCAS89標準電路中較大的6個電路,采用mintest測試集在Visual C++平臺上實驗,得出的結(jié)果分別與Golomb碼、FDR碼、EFDR碼、IFDR碼以及ERLC[10]碼進行比較,實驗結(jié)果見表3.可以看到平均壓縮率均優(yōu)于其他方法,平均壓縮率比Golomb編碼方法提高了將近14%,比FDR和IFDR分別提高了6%和1.84%,比EFDR和ERLC也提高了0.5%.

      表3 本方法與其他幾種測試壓縮方法的比較

      其中壓縮率計算公式如式(1)所示.

      壓縮率=(TD-TE)/TD×100%.

      (1)

      式中:TD為原測試集的大??;TE為壓縮后的測試集大小.

      6結(jié)論

      本文在IFDR編碼方法的基礎(chǔ)之上進行改進,不僅能同時對0,1串編碼,而且當出現(xiàn)相鄰游程相等時,后一個游程用較短的碼字來代替,進一步提高壓縮率.實驗結(jié)果充分驗證了本文提出方法的有效性.該法簡單可行,解碼電路簡單,硬件開銷不高.

      參考文獻

      [1]TOUBA N. Survey of test vector compression technique [J]. IEEE Design &Test of Computer, 2006,23(4):294-303.

      [2]JAS A, TOUBA N. Test vector decompression via cyclical scan chains and its application to testing core-based designs[C]//Proceedings of International Test Conference. New York: IEEE, 1998: 458-464.

      [3]JAS A, GOSH-DASTIDAR J, NG M,etal. 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.

      [4]CHANDRA A, CHAKRABARTY K. Test data compression and decompression based on internal scan chains and Golomb coding[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2002,21(6):715-722.

      [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. Frequency-directed run-length(FDR) codes with application to system-on-a-chip test data compression[C]//19th IEEE Proceedings on VLSI Test Symposium. New York: IEEE, 2001: 42-47.

      [7]EL-MALEH A, AL-ABAJI R. Extended frequency-directed run-length codes with improved application to system-on-a-chip test data compression[C]//Proceedings of 9th International Conference of Electronics, Circuits and Systems. New York: IEEE, 2002: 449-452.

      [8]EL-MALEH A. Test data compression for system-on-a-chip using extended frequency directed ran-length code[J]. IET Computers & Digital Techniques, 2008,2(3):155-163.

      [9]歐陽一鳴,郭文鵬,梁華國. 改進型FDR 碼對SoC 測試數(shù)據(jù)的壓縮及解壓[J].計算機應(yīng)用研究, 2008,25(1) :174-177.

      OUYANG Yi-ming, GUO Wen-peng, LIANG Hua-guo. Soc test data compression and decompression with improved FDR code[J]. Application Research of Computers, 2008, 25(1):174-177.(In Chinese)

      [10]ZHAN W F, EL-MALEH A. A new scheme of test data compression based on equal-run-length coding (ERLC)[J]. Integration the VLSI Journal , 2012, 45(1): 91-98.

      A Test Compression Method Based on IFDR Code

      YOU Zhi-qiang?, LUO Qi-jun

      (College of Information Science and Engineering, Hunan Univ, Changsha, Hunan410082, China)

      Abstract:Based on equal runlength code and IFDR, a new coding method (called ERFDR) was proposed. Firstly, the proposed method can not only encode both 0 and 1 runs for a test set simultaneously, but also can use shorter code if the adjacent runlengths are equal. Therefore, the compression ratio can be further improved. This paper also put forward a new filling algorithm for a test set with don't care bits, which can enhance the compression efficiency of the proposed method. Experimental results show that the proposed method can obtain a higher compression rate compared with FDR, EFDR, IFDR and ERLC codes. The test cost can be reduced effectively.

      Key words:full scan testing; test compression; don’t care bits; FDR codes

      中圖分類號:TP302

      文獻標識碼:A

      作者簡介:尤志強(1972-),男,河北阜城人,湖南大學副教授?通訊聯(lián)系人,E-mail:469363963@qq.com

      基金項目:新世紀優(yōu)秀人才支持計劃項目(NCET-12-0165)

      *收稿日期:2014-12-08

      文章編號:1674-2974(2016)02-0130-05

      繁峙县| 濉溪县| 改则县| 墨江| 翁源县| 曲水县| 阳西县| 娱乐| 拉萨市| 来宾市| 广灵县| 嘉黎县| 宝坻区| 景泰县| 南漳县| 赤城县| 临沧市| 怀仁县| 隆昌县| 鄂伦春自治旗| 东丰县| 丰城市| 洪雅县| 广平县| 隆尧县| 聂拉木县| 叶城县| 克山县| 宁城县| 二手房| 滦南县| 六枝特区| 西藏| 宁夏| 高碑店市| 河东区| 财经| 称多县| 南投县| 如东县| 衢州市|