一種基於線性反饋移位寄存器的可控測試向量發生器的製作方法
2023-06-29 21:11:31
專利名稱:一種基於線性反饋移位寄存器的可控測試向量發生器的製作方法
技術領域:
本發明屬於大規模集成電路的可測性設計技術領域,更為具體地講,涉及內建自測試的一種基於線性反饋移位寄存器的可控測試向量發生器。
背景技術:
隨著集成電路設計中門數量的急劇增加,一個大型集成電路的測試向量規模也在快速增長。同時,由於電路系統的時鐘頻率不斷增加,使得集成電路生產出來以後常常很難被測試,往往需要使用十分昂貴的測試儀器和很長的測試時間,而且很難做到全面測試。 解決該問題的一個較好方法是使用可測性設計技術,即在集成電路設計的同時考慮它的測試問題,使得集成電路在生產出來以後能夠較容易地被測試。內建自測試(Built-In-klf Test)和掃描設計(kan Design)是兩種重要且常用的可測性設計技術。其中內建自測試因其可以提高可測性、可實現全速測試和減少對外部測試設備的依賴而成為可測性設計的主流。內建自測試技術關鍵在於測試向量的產生設計,它決定了整個內建自測試方案能否達到所要求的故障覆蓋率以及所規定的硬體面積開銷、測試時間及其功耗。常見的幾種基本硬體測試向量的產生方法如下①、用二進位計數器產生一個二進位計數器可以生成一個窮舉的測試向量序列,該測試向量序列幾乎可以檢查所有的可測性故障,而不會在每個模塊中誘發時序邏輯。但是當輸入的測試向量序列數量較大時可能會耗費無法接受的測試時間,此時這種類型的測試向量生成器必須分割成較小模塊,但是因分割所需增加的硬體開銷將會非常昂貴,如果增加的硬體不可能避免在關鍵時序路徑上的話,可能還會影響電路的性能。②、用ROM存儲的測試向量序列產生這種方法是在晶片上的ROM中保存一個較好的測試向量序列,在測試過程中,存儲的測試向量被依次施加到被測電路中,對被測電路進行測試。這種方法雖然適用於任何類型的故障並且有很高的故障覆蓋率,但對於一般規模的電路的測試向量通常都是比較大的,需要片上提供足夠大的存儲空間,因此這種產生方法的應用場合非常有限。③、用線性反饋移位寄存器產生使用線性反饋移位寄存器(Linear Feedback Shift Register,簡稱LFSR)生成偽隨機測試向量,這種方法只需要很少的硬體開銷且易於實現,是目前首選的測試向量生成方法。但是它產生的偽隨機測試向量序列中包含有大量的對檢測故障沒有貢獻的測試向量,經常需要很長的測試向量序列和很長的測試應用時間才能達到較高的故障覆蓋率。④、用線性反饋移位寄存器和ROM相結合的方式產生使用一個線性反饋移位寄存器產生原始測試向量序列,然後用一個自動測試向量生成程序生成針對線性反饋移位寄存器產生原始測試向量序列漏掉的故障類型的測試向量。這些增加的少量測試向量可以保存在晶片上的一個小ROM中,作為第二個測試階段嵌入在線性反饋移位寄存器的輸出,這樣既保證了很高的故障覆蓋率,又克服了大容量ROM 費用高的問題。但是它的原始測試向量序列中必然包含有對故障不做貢獻的測試向量,而且新增的測試向量必將增加整個測試向量序列長度,從而導致測試時間和功耗增加,且該測試向量發生器實現較為複雜。從上述技術方案,我們可以看出,現有技術中的測試向量的產生方法,硬體開銷較大、測試應用時間較長、測試功耗較大、故障覆蓋率較低問題仍然沒有得到很好的解決。
發明內容
本發明的目的在於克服現有技術的不足,提供一種基於線性反饋移位寄存器的可控測試向量發生器,以減小硬體開銷,降低測試成本。為實現上述目的,本發明基於線性反饋移位寄存器的可控測試向量發生器,包括一由η個依次串聯D觸發器D1I和η-1個異或門^^ ㈣構成的內接型線性反饋移位寄存器,其特徵在於,還包括一個η-1位輸入或非門NOR和一個異或門構成的反饋網絡,或非門NOR的 η-1位輸入端分別接D觸發器Dblri的輸出端仏^,異或門M)Rfb的兩個輸入端分別接或非門NOR的輸出端和D觸發器Dn輸出端I ;反饋網絡中的異或門TORfb的輸出端分別接內接型線性反饋移位寄存器中的η-1個異或門TOR1^的一個輸入端,內接型線性反饋移位寄存器中的η-1個異或門奶隊 ^的另一個輸入端分別接D觸發器D1^的輸出端Ακ, 內接型線性反饋移位寄存器中的η-1個異或門XORblri的輸出C1, C2,…,Cn^1分別作為D 觸發器D2 n的D端輸入;一存儲器和一計數器,存儲器用於存放測試向量集的控制碼序列,計數器用來控制讀取存儲器地址,存儲器每輸出一位控制碼,計數器就指向存儲器中的下一位控制碼,直到存儲器中的所有控制碼全部輸出之後,又回到存儲器地址的第一位,指向控制碼序列的第一位;一個控制異或門M)Rem,用於控制內接型線性反饋移位寄存器輸出測試向量,其一個輸入端接存儲器輸出,另一個輸入端接反饋網絡中的異或門TORfb的輸出端;當存儲器輸出的一位控制碼為0時,控制異或門的輸出同異或門的輸出,內接型線性反饋移位寄存器順序輸出偽隨機序列,當存儲器輸出的一位控制碼為1時, 控制異或門的輸出與異或門TORfb的輸出相反,內接型線性反饋移位寄存器跳變輸出偽隨機序列,而存儲器中一位或多位控制碼對應一個測試向量,從而在存儲器輸出一位或多位控制碼後得到內接型線性反饋移位寄存器輸出的一個偽隨機序列為一個測試向量。本發明目的是這樣實現的本發明的基於線性反饋移位寄存器的可控測試向量發生器包括三部分1、由計數器和存儲器組成的控制碼序列產生部分;2、一個內接型線性反饋移位寄存器組成的順序偽隨機測試向量序列產生部分;3、n-l位輸入或非門NOR和一個異或門TORfb構成的反饋網絡部分。根據所需要產生的測試向量,得出控制碼序列存儲在存儲器中用於控制內接型線性反饋移位寄存器的運行,使其順序或跳變輸出偽隨機序列。計數器用來控制讀取存儲器地址,存儲器每輸出一位控制碼,計數器就指向存儲器中的下一位控制碼,直到存儲器中的所有控制碼全部輸出之後,即所有的需要產生的測試向量產生後又回到存儲器地址的第一位,指向控制碼序列的第一位。在本發明中採用內接型線性反饋移位寄存器用於產生順序偽隨機測試向量,相對於外接型線性反饋移位寄存器,它不存在移位相關性,改善了對多輸入偽隨機測試中偽隨機發生的相鄰位流的互相關性。在內接型線性反饋移位寄存器的基礎上增加一個n-1位輸入或非門NOR和一個異或門TORfb構成的反饋網絡部分,通過該改善設計使得內接型線性反饋移位寄存器可以周期性的產生全'0'測試碼,使η階內接型線性反饋移位寄存器可以順序生成的周期為2n 的最長測試向量序列,進而增加了故障檢測的類型,達到提高故障覆蓋率的目的。在本發明僅增加了一個控制碼存儲器、計數器、n-1位輸入或非門NOR和一個異或門M)Rfb構成的反饋網絡部分以及一個控制異或門M)Rcm,硬體開銷小,測試成本低。
圖1是本發明基於線性反饋移位寄存器的可控測試向量發生器一種具體實施方式
原理圖;圖2是測試向量集獲取流程圖。
具體實施例方式下面結合附圖對本發明的具體實施方式
進行描述,以便本領域的技術人員更好地理解本發明。需要特別提醒注意的是,在以下的描述中,當已知功能和設計的詳細描述也許會淡化本發明的主要內容時,這些描述在這裡將被忽略。實施例圖1是本發明基於線性反饋移位寄存器的可控測試向量發生器一種具體實施方式
原理圖。在本實施例中,如圖1所示,本發明基於線性反饋移位寄存器的可控測試向量發生器,包括一由η個依次串聯D觸發器D1I和η_1個異或門XOR1^構成的內接型線性反饋移位寄存器;一個n-1位輸入或非門NOR和一個異或門構成的反饋網絡,或非門NOR的 n-1位輸入端分別接D觸發器Dblri的輸出端仏^,異或門M)Rfb的兩個輸入端分別接或非門NOR的輸出端和D觸發器Dn輸出端I ;反饋網絡中的異或門TORfb的輸出端分別接內接型線性反饋移位寄存器中的n-1個異或門TOR1^的一個輸入端,內接型線性反饋移位寄存器中的n-1個異或門奶隊 ^的另一個輸入端分別接D觸發器D1^的輸出端Ακ, 內接型線性反饋移位寄存器中的n-1個異或門XORblri的輸出C1, C2,…,Cn^1分別作為D 觸發器D2 n的D端輸入;一存儲器和一計數器,存儲器用於存放測試向量的控制碼序列,計數器用來控制讀取存儲器地址,存儲器每輸出一位控制碼,計數器就指向存儲器中的下一位控制碼,直到存儲器中的所有控制碼全部輸出之後,又回到存儲器地址的第一位,指向控制碼序列的第一位;
一個控制異或門M)Rem,用於控制內接型線性反饋移位寄存器輸出測試向量,其一個輸入端接存儲器輸出,另一個輸入端接反饋網絡中的異或門TORfb的輸出端;當存儲器輸出的一位控制碼為0時,控制異或門的輸出與異或門的輸出相同,內接型線性反饋移位寄存器順序輸出偽隨機序列,當存儲器輸出的一位控制碼為1 時,控制異或門TORctkL的輸出與異或門M)Rfb的輸出相反,內接型線性反饋移位寄存器跳變輸出偽隨機序列,而存儲器中一位或多位控制碼對應一個測試向量,從而在存儲器輸出一位或多位控制碼後得到內接型線性反饋移位寄存器輸出的一個偽隨機序列為一個測試向量。1、測試向量的獲得在本實施例中,如圖2所示,測試向量集通過以下步驟獲取(1)、根據被測電路故障特徵得出遺傳算法的適應度函數;(2)、初始群體的產生對線性反饋移位寄存器順序產生的2n個偽隨機序列按一定規律進行劃分成M組,每一組作為遺傳算法的一個基因串,從而將2n個偽隨機序列轉化為M 個基因串;任意抽取L個基因串得到遺傳算法的一個個體;進行N次任意抽取,得到N個個體,作為遺傳算法的初始種群;L作為初始值,取值相對較小,如可以為M的1/5 ;(3)、適應度評估將初始種群的N個個體根據適應度函數進行適應度評估,將故障覆蓋率極低,如即小於10%的個體去除;(4)、選取經過適應度評估之後的初始種群中,任意選取出兩個個體,進行故障覆蓋率的比較,則得到一個為故障覆蓋率較高的A個體與一個為故障覆蓋率較低的B個體;交叉將A個體中對檢測故障覆蓋率沒有貢獻的基因串與B個體中對檢測故障覆蓋率有貢獻的基因串進行交叉,交叉後的A個體作為子代個體A1 ;(5)、結束條件判斷將子代個體A1與結束條件進行比對,結束條件是指預定的故障覆蓋率),判斷其是否達到預定的故障覆蓋率,如果,沒有,則返回步驟(4),直到達到預定的故障覆蓋率,則該滿足預定故障覆蓋率的個體中的偽隨機序列為測試向量;如果初始種群中個體選取完畢,仍然達不到預定的故障覆蓋率,則每次交叉後子代個體A1作為新的種群,進行步驟0)、(5)相同遺傳操作,即選取、交叉和結束條件判定, 直到滿足預定的故障覆蓋率;如果經過預定G代的遺傳操作後,仍然不能達到預定的故障覆蓋率,則返回步驟 O),將個體的基因串數量增加,再進行遺傳操作,直到找到滿足預定故障覆蓋率的個體,並將該個體中構成基因串的各個偽隨機序列作為測試向量,得到測試向量集。2、控制碼序列的生成在本實施例中,測試向量集的控制碼序列由以下方法獲得(1)、將測試向量集中的一個測試向量作為初始測試向量,初始化內接型線性反饋移位寄存器,然後,向內接型線性反饋移位寄存器輸入一位控制碼;如果輸出的偽隨機序列為測試向量集中的一個測試向量,則將該一位控制作為控制碼序列的一個控制碼;如果不是,則輸入兩位控制碼,看輸出的偽隨機序列是否測試向量集中的一個測試向量,如果是則將該兩位控制碼作為控制碼序列的一個控制碼,依次類推,直到找一個控制碼,使初始測試向量跳轉到測試向量集中的一個測試向量,並將作為初始測試向量的該測試向量從測試向
7量集中去除;(2)、將跳轉到的測試向量作為初始測試向量,重複步驟(1),直到測試向量集中的測試向量數為0;(3)、將得到的控制碼依次組合起來,得到測試向量集的控制碼序列。現以四位可控移位線性反饋移位寄存器為例,說明控制碼序列的計算過程,當位數較多時,推導方法一致。初始測試向量為a4,a3,a2,B1指定測試向量為b4,b3,b2,Id1,控制碼為s4,s3,S2, S1,則
第一個時鐘輸出為乂 =& ¥4 ^3力2 第二個時鐘輸出為 M2
第三個時鐘輸出為-.A3 = 十十( 十(Sf3J1十巧十 , 十巧
第四個時鐘輸出為J4十( 十 十巧,^十( 十(Sf3J1 Θα!十(
求解
4若 J1 Θα!=及α4 十 a; = b3a3 = b2a2 = Id1則第一個時鐘輸出時就為指定向量,此時只需要輸入一位控制碼即可實現跳變。若 十( = S1 十 十 a2 = b3α4 十 = b2a3 = Id1則第二個時鐘輸出就是指定向量,此時只需要輸入兩位控制碼即可實現跳變。若 十( = s2 a2 a3= b3sl al a2= b2A Θ* =^則第三個時鐘輸出就是指定向量,此時只需要輸入三位控制碼即可實現跳變。若 十 十巧=、,^3 Θ α3 Θ α4 Θ αλ = b3,s2 a2 a3=b2,θα, =^則第四個時鐘輸出就是指定向量,此時只需要輸入四位控制碼即可實現跳變。由上述方程組可以看出4階線性反饋移位寄存器最多需要4位控制碼就可以實現初始測試向量向任意指定測試向量跳變。實例在本實例中,以C17電路為例來說明本發明的測試向量發生器。C17主體電路由6個與非門組成,具有5個輸入端,若使用遍歷型線性反饋移位寄存器產生最大周期的順序測試向量序列進行測試,則由5個D觸發器組成的遍歷型線性反饋移位寄存器便可達到99. 3%的故障覆蓋率,以全「0」位為初始狀態,其測試向量集如表1 所示。
權利要求
1.一種基於線性反饋移位寄存器的可控測試向量發生器,包括一由η個依次串聯D觸發器D1I和η-1個異或門XOR1^構成的內接型線性反饋移位寄存器,其特徵在於,還包括一個η-1位輸入或非門NOR和一個異或門M)Rfb構成的反饋網絡,或非門NOR的n_l位輸入端分別接D觸發器D1^的輸出端仏^,異或門TORfb的兩個輸入端分別接或非門NOR 的輸出端和D觸發器Dn輸出端I;反饋網絡中的異或門XORfb的輸出端分別接內接型線性反饋移位寄存器中的η-1個異或門M^blri的一個輸入端,內接型線性反饋移位寄存器中的η-1個異或門M^blri的另一個輸入端分別接D觸發器Dblri的輸出端仏^,內接型線性反饋移位寄存器中的η-1個異或門XORhlri的輸出C1, C2,…,Clri分別作為D觸發器 D2 n的D端輸入;一存儲器和一計數器,存儲器用於存放測試向量集的控制碼序列,計數器用來控制讀取存儲器地址,存儲器每輸出一位控制碼,計數器就指向存儲器中的下一位控制碼,直到存儲器中的所有控制碼全部輸出之後,又回到存儲器地址的第一位,指向控制碼序列的第一位;一個控制異或門TORcm,用於控制內接型線性反饋移位寄存器輸出測試向量,其一個輸入端接存儲器輸出,另一個輸入端接反饋網絡中的異或門TORfb的輸出端;當存儲器輸出的一位控制碼為0時,控制異或門的輸出同異或門TORfb的輸出, 內接型線性反饋移位寄存器順序輸出偽隨機序列,當存儲器輸出的一位控制碼為1時,控制異或門的輸出與異或門TORfb的輸出相反,內接型線性反饋移位寄存器跳變輸出偽隨機序列,而存儲器中一位或多位控制碼對應一個測試向量,從而在存儲器輸出一位或多位控制碼後得到內接型線性反饋移位寄存器輸出的一個偽隨機序列為一個測試向量。
2.根據權利要求1所述的基於線性反饋移位寄存器的可控測試向量發生器,其特徵在於,所述的測試向量集通過以下步驟獲取(1)、根據被測電路故障特徵得出遺傳算法的適應度函數;(2)、初始群體的產生對線性反饋移位寄存器順序產生的2n個偽隨機序列按一定規律進行劃分成M組,每一組作為遺傳算法的一個基因串,從而將2n個偽隨機序列轉化為M個基因串;任意抽取L個基因串得到遺傳算法的一個個體;進行N次任意抽取,得到N個個體,作為遺傳算法的初始種群;L作為初始值,取值相對較小,如可以為M的1/5 ;(3)、適應度評估將初始種群的N個個體根據適應度函數進行適應度評估,將故障覆蓋率極低,如即小於10%的個體去除;(4)、選取經過適應度評估之後的初始種群中,任意選取出兩個個體,進行故障覆蓋率的比較,則得到一個為故障覆蓋率較高的A個體與一個為故障覆蓋率較低的B個體;交叉將A個體中對檢測故障覆蓋率沒有貢獻的基因串與B個體中對檢測故障覆蓋率有貢獻的基因串進行交叉,交叉後的A個體作為子代個體A1 ;(5)、結束條件判斷將子代個體A1與結束條件進行比對,結束條件是指預定的故障覆蓋率,判斷其是否達到預定的故障覆蓋率,如果,沒有,則返回步驟(4),直到達到預定的故障覆蓋率,則該滿足預定故障覆蓋率的個體中的偽隨機序列為測試向量;如果初始種群中個體選取完畢,仍然達不到預定的故障覆蓋率,則每次交叉後子代個體A1作為新的種群,進行步驟0)、(5)相同遺傳操作,即選取、交叉和結束條件判定,直到滿足預定的故障覆蓋率;如果經過預定G代的遺傳操作後,仍然不能達到預定的故障覆蓋率,則返回步驟(2), 將個體的基因串數量增加,再進行遺傳操作,直到找到滿足預定故障覆蓋率的個體,並將該個體中構成基因串的各個偽隨機序列作為測試向量,得到測試向量集。
3.根據權利要求1所述的基於線性反饋移位寄存器的可控測試向量發生器,其特徵在於,所述的控制碼序列由以下方法獲得(1)、將測試向量集中的一個測試向量作為初始測試向量,初始化內接型線性反饋移位寄存器,然後,向內接型線性反饋移位寄存器輸入一位控制碼;如果輸出的偽隨機序列為測試向量集中的一個測試向量,則將該一位控制作為控制碼序列的一個控制碼;如果不是,則輸入兩位控制碼,看輸出的偽隨機序列是否測試向量集中的一個測試向量,如果是則將該兩位控制碼作為控制碼序列的一個控制碼,依次類推,直到找一個控制碼,使初始測試向量跳轉到測試向量集中的一個測試向量,並將作為初始測試向量的該測試向量從測試向量集中去除;(2)、將跳轉到的測試向量作為初始測試向量,重複步驟(1),直到測試向量集中的測試向量數為0 ;(3)、將得到的控制碼依次組合起來,得到測試向量集的控制碼序列。
全文摘要
本發明公開了一種基於線性反饋移位寄存器的可控測試向量發生器包括三部分1、由計數器和存儲器組成的控制碼序列產生部分;2、一個內接型線性反饋移位寄存器組成的順序偽隨機測試向量序列產生部分;3、n-1位輸入或非門NOR和一個異或門XORfb構成的反饋網絡部分。根據所需要產生的測試向量,得出控制碼序列存儲在存儲器中用於控制內接型線性反饋移位寄存器的運行,使其順序或跳變輸出偽隨機序列作為測試向量。本發明在內接型線性反饋移位寄存器的基礎上僅增加了一個控制碼存儲器、計數器、n-1位輸入或非門NOR和一個異或門XORfb構成的反饋網絡部分以及一個控制異或門XORCTRL,硬體開銷小,測試成本低。
文檔編號G11C29/56GK102226947SQ20111008313
公開日2011年10月26日 申請日期2011年4月2日 優先權日2011年4月2日
發明者劉震, 楊會平, 田書林, 龍兵 申請人:電子科技大學