專利名稱:構(gòu)造具有低測試功耗的兩級掃描測試結(jié)構(gòu)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路可測試性設(shè)計技術(shù)領(lǐng)域背景技術(shù)首先,介紹背景知識和相關(guān)定義組合門門的輸出信號線的值與時鐘信號無關(guān),這樣的門稱為組合門,組合門的類型包括非門、與門、或門、與非門、或非門、異或門、異或非門等。
時序門門的輸出信號線的值與時鐘信號有關(guān),這樣的門稱為時序門,也稱為時序單元。時序門的輸入有邏輯輸入和時鐘輸入,輸出為邏輯輸出。通常在時鐘輸入信號的上升沿或者下降沿到來時,讀入邏輯輸入信號的值,從而產(chǎn)生相應(yīng)邏輯輸出信號的值。
組合后繼在電路結(jié)構(gòu)中,組合門的輸出信號線是該組合門的輸入信號線的組合后繼。組合后繼的關(guān)系可以迭代。例如圖1中,d是a的組合后繼,e是d的組合后繼,而e也是a的組合后繼。
直接組合后繼相鄰的組合后繼稱為直接組合后繼。例如圖1中,d是a的直接組合后繼,但e不是a的直接組合后繼。
共同組合后繼例如圖1中,e是a的組合后繼,e也是c的組合后繼,則a和c有共同組合后繼e。
測試在芯片封裝以后對芯片質(zhì)量進行檢測的方法。由于芯片封裝以后對芯片的內(nèi)部電路無法直接訪問,因此對芯片的測試采用的方法為在芯片的輸入端置入測試向量,并在芯片輸出端收集測試響應(yīng)。將實際所得測試響應(yīng)與無故障電路所應(yīng)得測試響應(yīng)進行比較,從而判斷芯片電路有無故障。
測試生成問題對于電路中可能存在的故障,尋找可以檢測到該故障的測試向量,這一問題稱為測試生成問題。
掃描測試掃描測試是為降低時序電路測試生成問題的復(fù)雜性,對電路進行可測試性設(shè)計的一種方法。該方法將時序電路劃分為時序單元和組合邏輯兩個部分,如圖2所示,然后加入多路選擇器將時序單元改造為掃描時序單元,多個掃描時序單元首尾連接成為掃描鏈,由一個掃描輸入scan-in來驅(qū)動,最后連接到一個掃描輸出scan-out,如圖3所示。當(dāng)信號test為0時,多路選擇器選通組合邏輯,為正常工作狀態(tài);當(dāng)信號test為1時,多路選擇器選通掃描鏈,電路進入掃描測試狀態(tài)。
掃描時序單元利用掃描測試的方法改造所得的時序單元,比如圖3中的多路選擇器與時序單元共同組成的結(jié)構(gòu)。
掃描鏈(scan chain)由多個掃描時序單元首尾連接而成的掃描測試結(jié)構(gòu)(圖4)。掃描鏈的長度為掃描鏈中所包含掃描時序單元的個數(shù)。
測試功耗對電路進行測試時產(chǎn)生的測試功耗主要產(chǎn)生于電路內(nèi)部信號線發(fā)生邏輯值的翻轉(zhuǎn)(邏輯1->邏輯0,邏輯0->邏輯1)。在掃描測試結(jié)構(gòu)中,測試功耗主要產(chǎn)生于測試向量的置入和測試響應(yīng)的移出過程中,電路的時序單元以及其后繼的組合單元發(fā)生邏輯值的翻轉(zhuǎn)。
以往降低掃描測試功耗的辦法主要有(1)對測試向量進行排序;(2)對時序單元進行排序;(3)在時序單元的后面加入控制邏輯,使得測試向量置入過程中,邏輯值的翻轉(zhuǎn)只發(fā)生在時序單元,不會傳播到后繼的組合邏輯中;(4)對測試向量進行編解碼;(5)引入附加邏輯結(jié)構(gòu),使得測試向量置入時邏輯翻轉(zhuǎn)只發(fā)生在部分時序單元中。
方法(1)(2)(5)只是降低了測試功耗,測試時間沒有降低,方法(3)(5)引入的附加邏輯帶來一定面積開銷,并且使電路性能有所下降,方法(4)則主要針對的是數(shù)據(jù)量的問題,在數(shù)據(jù)壓縮的同時可以使得功耗有所降低。
發(fā)明內(nèi)容
本發(fā)明采用兩級掃描測試結(jié)構(gòu),將掃描時序單元劃分到不同的時鐘域。第一級的掃描時序單元構(gòu)成傳統(tǒng)的掃描鏈結(jié)構(gòu),其時鐘輸入信號為clk1。第二級的掃描時序單元分為多個小組,其時鐘輸入信號為clk2,每個掃描時序單元小組的邏輯輸入連接到第一級中的一個掃描時序單元的邏輯輸出。
設(shè)第二級中的掃描時序單元小組Gi包含掃描時序單元g1’g2’…gn’,Gi中各掃描時序單元的邏輯輸入連接到第一級中的掃描時序單元fi’的邏輯輸出,則掃描時序單元g1’g2’…gn’fi’所對應(yīng)的時序單元g1g2…gnfi應(yīng)滿足以下條件其中任意兩個時序單元在電路結(jié)構(gòu)中均沒有相同的組合后繼。
在置入測試向量時,首先通過掃描輸入端將相應(yīng)的測試向量置入到掃描鏈中,設(shè)掃描鏈長度為l,則將一個測試向量置入到第一級的掃描鏈中需要l個clk1時鐘周期,由于第一級與第二級的掃描時序單元由不同的時鐘輸入信號控制,此過程第二級的掃描時序單元不發(fā)生翻轉(zhuǎn)。接下來,將第一級中各掃描時序單元的邏輯輸出值置入到相應(yīng)第二級的掃描時序單元小組中,需要一個clk2時鐘周期,此過程中第一級的掃描時序單元不發(fā)生翻轉(zhuǎn)。
根據(jù)電路結(jié)構(gòu)的信息,對時序單元進行分組以后,可以將大部分時序單元劃分到第二級。在測試向量置入掃描鏈的過程中,只有第一級掃描鏈中的掃描時序單元發(fā)生翻轉(zhuǎn),翻轉(zhuǎn)次數(shù)得到很大程度減小;而測試向量置入第二級中的掃描時序單元只需要一個時鐘周期,翻轉(zhuǎn)次數(shù)也得到很大程度減小,從而減小了掃描測試功耗。
本發(fā)明的特征在于它依次含有以下步驟第1步初始化,向計算機輸入電路網(wǎng)單文件,采用N*N表格conv[N][N]來記錄時序單元在電路結(jié)構(gòu)上的相互關(guān)系,其中N為時序單元的總數(shù);若對于i≠j,i∈[1,N],j∈[1,N]的時序單元i與時序單元j,i與j在電路結(jié)構(gòu)上有共同組合后繼,則conv[i][j]=conv[j][i]=1,否則conv[i][j]=conv[j][i]=0;第1.1步建立conv[N][N]表格;第1.1.1步對于電路中所有時序單元,設(shè)時序單元i的輸出信號線在電路中對應(yīng)的標(biāo)識為iOut,將時序單元i的組合后繼依次存入數(shù)組successor_of_iOut[]中,方法如下首先將時序單元i的直接組合后繼i1i2…iN存入數(shù)組中,然后依次將i1i2…in的直接組合后繼也存入數(shù)組中,直到存入數(shù)組的單元已經(jīng)是一個時序單元或者是原始輸出為止;第1.1.2步對于任意兩個時序單元i和j,若successor_of_iOut[]和successor_of_jOut[]中有相同單元,則conv[i][j]=conv[j][i]=1;否則conv[i][j]=conv[j][i]=0;第2步根據(jù)N*N表格conv[N][N]對時序單元進行分組;第2.1步設(shè)時序單元的集合為F,各組分別為G1G2…Gn;第2.2步若F非空,則執(zhí)行第2.3步,否則執(zhí)行第2.4步;第2.3步建立新組Gm,m∈[1,n],任取F中的一個時序單元g放入Gm,遍歷F中剩余的時序單元,若某時序單元f滿足g∈Gm,conv[f][g]=0,則將f放入Gm,更新F和Gm,繼續(xù)遍歷F中剩余的時序單元;遍歷結(jié)束后轉(zhuǎn)第2.2步;第2.4步分組結(jié)束第3步為使分組均勻,對第2步所得分組結(jié)果進行調(diào)整;第3.1步從G1G2…Gn中選出最大組Gmax和最小組Gmin,Gmax是所含時序單元數(shù)量最多的組,Gmin是所含時序單元數(shù)量最少的組;第3.2步從Gmax中選出滿足條件g∈Gmin,conv[f][g]=0的時序單元f,將f放入Gmin,更新Gmax和Gmin;第3.3步反復(fù)執(zhí)行第3.1步和第3.2步,直到Gmax與Gmin的大小相差為1或者Gmax中已經(jīng)找不到滿足條件g∈Gmin,conv[f][g]=0的時序單元f為止;第4步根據(jù)調(diào)整以后的分組結(jié)果G1G2…Gn來構(gòu)造低測試功耗的兩級掃描測試結(jié)構(gòu)第4.1步在各時序單元之前分別加入多路選擇器MUX,改造為掃描時序單元;第4.2步從G1G2…Gn中各選出一個掃描時序單元g1’g2’…gn’,構(gòu)成一條掃描鏈,掃描時序單元g1’g2’…gn’的時鐘輸入連接到時鐘信號clk1;第4.3步G1G2…Gn中剩余的掃描時序單元的時鐘輸入連接到時鐘信號clk2;第4.4步將G1中剩余的掃描時序單元的邏輯輸入連接到掃描時序單元g1’的邏輯輸出,將G2中剩余的掃描時序單元的邏輯輸入連接到掃描時序單元g2’的邏輯輸出,以此類推,將Gn中剩余的掃描時序單元的邏輯輸入連接到掃描時序單元gn’的邏輯輸出;第4.5步將時鐘信號clk分別連接到兩輸入與門AND1和AND2的輸入端,控制信號C1和C2分別連接到AND1和AND2的另一個輸入端,clk1和clk2分別為AND1和AND2的輸出;當(dāng)C1=1且C2=0時,clk1有效且clk2無效;當(dāng)C1=0且C2=1時,clk1無效且clk2有效。(如圖5)使用證明實驗平臺為SUN BLADE2000工作站,實驗中采用的測試碼產(chǎn)生器為ATALANTA,故障模擬器為HOPE。表1中給出了將本發(fā)明應(yīng)用到一部分ISCAS89以及ITC99電路的實驗結(jié)果,表中Full Scan為單鏈完全掃描的實驗結(jié)果,Two Stage Scan為本發(fā)明的實驗結(jié)果,F(xiàn)C(Fault Coverage)表示故障覆蓋率,#HF(Hard Fault)表示難測故障數(shù),#VEC(Vector)表示測試向量數(shù),TP(Test Power)和PTP(Peak Test Power)分別表示本發(fā)明的測試平均功耗和測試峰值功耗與單鏈完全掃描測試結(jié)構(gòu)的測試平均功耗和測試峰值功耗相比所占的百分比。
由表1中可以看出,采用本發(fā)明的兩級掃描測試結(jié)構(gòu),可以在保證原有故障覆蓋率與測試向量數(shù)基本不變且難測故障數(shù)沒有增長的同時,使得測試平均功耗和測試峰值功耗都得到很大程度的減小。
表1將本發(fā)明應(yīng)用到ISCAS89以及ITC99電路的實驗結(jié)果
圖1組合后繼示意圖。
圖2時序電路示意圖。
圖3對時序電路進行掃描測試示意圖。
圖4掃描鏈?zhǔn)疽鈭D。
圖5時鐘信號clk1和clk2示意6電路示意圖。
圖7表格conv[12][12]。
圖8兩級掃描測試結(jié)構(gòu)示意圖。
圖9構(gòu)造具有低測試功耗的兩級掃描測試結(jié)構(gòu)的程序流程框圖。
具體實施例方式
下面分別通過具體例子來說明上述方法的具體實施方式
。
例1如圖6所示電路,其中的時序單元總數(shù)為3,時序單元1的輸出信號線在電路中的標(biāo)識為1Out=5,時序單元2的輸出信號線在電路中的標(biāo)識為2Out=6,時序單元3的輸出信號線在電路中的標(biāo)識為3Out=7,采用數(shù)組successor_of_5[]、successor_of_6[]和successor_of_7[]來分別存儲時序單元1、2和3的組合后繼。
建立表格conv[3][3]的過程如下1)對于電路中的時序單元1,1Out=5,5只有一個直接組合后繼15,將15存入數(shù)組successor_of_5[]。
信號線15有三個分支,第一條分支為時序單元2的輸入,因此不必再往下搜索;第二條分支的直接組合后繼為17,將17存入數(shù)組;第三條分支的直接組合后繼為16,將16存入數(shù)組。
17為時序單元1的輸入,因此不必再往下搜索;16已經(jīng)到達原始輸出,因此不必再往下搜索。結(jié)束。
這樣,數(shù)組successor_of_5[]中存儲的內(nèi)容為15,17,16;同理,數(shù)組successor_of_6[]中存儲的內(nèi)容為10,13,12,14,15,17,16;數(shù)組successor_of_7[]中存儲的內(nèi)容為9,11,12,14,15,17,16。
2)時序單元1和2有共同組合后繼15,因此conv[1][2]=conv[2][1]=1;時序單元1和3有共同組合后繼15,因此conv[1][3]=conv[3][1]=1;時序單元2和3有共同組合后繼12,因此conv[2][3]=conv[3][2]=1。
例2某電路中時序單元的總數(shù)為12,集合為F,圖7中給出了表示這些時序單元在電路結(jié)構(gòu)上的相互關(guān)系的表格conv[12][12]。
根據(jù)表格conv[12][12]對時序單元進行分組的情況如下建立新組G1,將時序單元1放入G1,G1={1};遍歷F中剩下的時序單元,發(fā)現(xiàn)時序單元2滿足條件conv[2][1]=0,也即滿足條件g∈G1,conv[2][g]=0,因此將時序單元2放入G1,G1={1,2};遍歷F中剩下的時序單元,發(fā)現(xiàn)時序單元4滿足條件conv[4][1]=0且conv[4][2]=0,也即滿足條件g∈G1,conv[4][g]=0,因此將時序單元4放入G1,G1={1,2,4};遍歷F中剩下的時序單元,發(fā)現(xiàn)時序單元7滿足條件conv[7][1]=0且conv[7][2]=0且conv[7][4]=0,也即滿足條件g∈G1,conv[7][g]=0,因此將時序單元7放入G1,G1={1,2,4,7};遍歷F中剩下的時序單元,發(fā)現(xiàn)時序單元10滿足條件conv[10][1]=0且conv[10][2]=0且conv[10][4]=0且conv[10][7]=0,也即滿足條件g∈G1,conv[10][g]=0,因此將時序單元10放入G1,G1={1,2,4,7,10}。以此類推,得到G2={3,11,12},G3={5,6,8,9}。分組結(jié)束。
根據(jù)表格conv[12][12]對以上分組結(jié)果進行調(diào)整的情況如下選出最大組Gmax=G1,最小組Gmin=G2,從Gmax中選出時序單元2滿足條件conv[2][3]=0且conv[2][11]=0且conv[2][12]=0,也即滿足條件g∈Gmin,conv[2][g]=0,因此將時序單元2放入G2,于是G1={1,4,7,10},G2={2,3,11,12},G3={5,6,8,9}。此時已滿足分組均勻的條件,調(diào)整結(jié)束。
根據(jù)調(diào)整后的分組結(jié)果構(gòu)造具有低測試功耗的兩級掃描結(jié)構(gòu)的情況如下在各時序單元之前分別加入多路選擇器MUX,改造為掃描時序單元;根據(jù)調(diào)整后的分組結(jié)果,從各組G1、G2、G3中分別選出一個掃描時序單元1’、2’、5’構(gòu)成一條掃描鏈,掃描時序單元1’、2’、5’的時鐘輸入連接到時鐘信號clk1;各組剩余時序單元的時鐘輸入連接到時鐘信號clk2G1中剩余時序單元的邏輯輸入連接到掃描時序單元1’的邏輯輸出,G2中剩余時序單元的邏輯輸入連接到掃描時序單元2’的邏輯輸出,G3中剩余時序單元的邏輯輸入連接到掃描時序單元5’的邏輯輸出;時鐘信號clk1和clk2由同一個時鐘信號clk加上兩個控制信號通過兩個與門來產(chǎn)生,如圖5所示;結(jié)束。
權(quán)利要求
1.構(gòu)造具有低測試功耗的兩級掃描測試結(jié)構(gòu)的方法,其特征在于它依次含有以下步驟第1步初始化,向計算機輸入電路網(wǎng)單文件,采用N*N表格conv[N][N]來記錄時序單元在電路結(jié)構(gòu)上的相互關(guān)系,其中N為時序單元的總數(shù);若對于i≠j,i∈[1, N],j∈[1,N]的時序單元i與時序單元j,i與j在電路結(jié)構(gòu)上有共同組合后繼,則conv[i][j]=conv[j][i]=1,否則conv[i][j]=conv[j][i]=0;第1.1步建立conv[N][N]表格;第1.1.1步對于電路中所有時序單元,設(shè)時序單元i的輸出信號線在電路中對應(yīng)的標(biāo)識為iOut,將時序單元i的組合后繼依次存入數(shù)組successor_of_iOut[]中,方法如下首先將時序單元i的直接組合后繼i1i2…in存入數(shù)組中,然后依次將i1i2…in的直接組合后繼也存入數(shù)組中,直到存入數(shù)組的單元已經(jīng)是一個時序單元或者是原始輸出為止;第1.1.2步對于任意兩個時序單元i和j,若successor_of_iOut[]和successor_of_jOut[]中有相同單元,則conv[i][j]=conv[j][i]=1;否則conv[i][j]=conv[j][i]=0;第2步根據(jù)N*N表格conv[N][N]對時序單元進行分組;第2.1步設(shè)時序單元的集合為F,各組分別為G1G2…Gn;第2.2步若F非空,則執(zhí)行第2.3步,否則執(zhí)行第2.4步;第2.3步建立新組Gm,m∈[1,n],任取F中的一個時序單元g放入Gm,遍歷F中剩余的時序單元,若某時序單元f滿足g∈Gm,conv[f][g]=0,則將f放入Gm,更新F和Gm,繼續(xù)遍歷F中剩余的時序單元;遍歷結(jié)束后轉(zhuǎn)第2.2步;第2.4步分組結(jié)束第3步為使分組均勻,對第2步所得分組結(jié)果進行調(diào)整;第3.1步從G1G2…Gn中選出最大組Gmax和最小組Gmin,Gmax是所含時序單元數(shù)量最多的組,Gmin是所含時序單元數(shù)量最少的組;第3.2步從Gmax中選出滿足條件g∈Gmin,conv[f][g]=0的時序單元f,將f放入Gmin,更新Gmax和Gmin;第3.3步反復(fù)執(zhí)行第3.1步和第3.2步,直到Gmax與Gmin的大小相差為1或者Gmax中已經(jīng)找不到滿足條件g∈Gmin,conv[f][g]=0的時序單元f為止;第4步根據(jù)調(diào)整以后的分組結(jié)果G1G2…Gn來構(gòu)造低測試功耗的兩級掃描測試結(jié)構(gòu)第4.1步在各時序單元之前分別加入多路選擇器MUX,改造為掃描時序單元;第4.2步從G1G2…Gn中各選出一個掃描時序單元g1’g2’…gn’,構(gòu)成一條掃描鏈,掃描時序單元g1’g2’…gn’的時鐘輸入連接到時鐘信號clk1;第4.3步G1G2…Gn中剩余的掃描時序單元的時鐘輸入連接到時鐘信號clk2;第4.4步將G1中剩余的掃描時序單元的邏輯輸入連接到掃描時序單元g1’的邏輯輸出,將G2中剩余的掃描時序單元的邏輯輸入連接到掃描時序單元g2’的邏輯輸出,以此類推,將Gn中剩余的掃描時序單元的邏輯輸入連接到掃描時序單元gn’的邏輯輸出;第4.5步將時鐘信號clk分別連接到兩輸入與門AND1和AND2的輸入端,控制信號C1和C2分別連接到AND1和AND2的另一個輸入端,clk1和clk2分別為AND1和AND2的輸出;當(dāng)C1=1且C2=0時,clk1有效且clk2無效;當(dāng)C1=0且C2=1時,clk1無效且clk2有效。
全文摘要
構(gòu)造具有低測試功耗的兩級掃描測試結(jié)構(gòu)的方法,屬于集成電路測試技術(shù)領(lǐng)域,其特征在于它先由電路網(wǎng)單文件得到判別兩兩時序單元之間有無共同組合后繼的表格;根據(jù)此表格來對時序單元進行分組,并對組的大小進行調(diào)整使分組均勻;通過在時序單元之前加入多路選擇器的方法將所有的時序單元改造為掃描時序單元;從每組中各選出一個掃描時序單元,構(gòu)成一條掃描鏈,連接到時鐘信號clk
文檔編號G06F11/22GK1603853SQ20041008888
公開日2005年4月6日 申請日期2004年11月8日 優(yōu)先權(quán)日2004年11月8日
發(fā)明者向東, 孫家廣, 李開偉 申請人:清華大學(xué)