本發(fā)明涉及一種集成電路測(cè)試技術(shù),更具體涉及一種集成電路測(cè)試中的數(shù)據(jù)存儲(chǔ)技術(shù)。
背景技術(shù):
隨著集成電路的發(fā)展,如何處理越來(lái)越龐大的測(cè)試數(shù)據(jù)已成為集成電路測(cè)試的關(guān)鍵難題之一。根據(jù)itrs在2010年的報(bào)告數(shù)據(jù),測(cè)試一個(gè)芯片,在2009年,僅僅需要85個(gè)測(cè)試模式數(shù),也只需要壓縮比為80;而到2019年,對(duì)測(cè)試模式數(shù)的要求則需要達(dá)到20370個(gè),對(duì)壓縮比的要求則需要達(dá)到12000。僅僅十年,模式數(shù)增加到240倍,壓縮比增加到150倍。
關(guān)于減少測(cè)試數(shù)據(jù)量的研究,一直是研究的熱點(diǎn),主要可以分為三類(lèi):測(cè)試集壓縮(testsetcompaction)方法、內(nèi)建自測(cè)試(built-inself-test,bist)方法和靜態(tài)編碼壓縮方法。(1)測(cè)試集壓縮方法。其特點(diǎn)是確保在不降低故障覆蓋率的情況下,有選擇性嘗試使用不同的敏化路徑,通過(guò)算法調(diào)整測(cè)試立方體(testtubes)中無(wú)關(guān)位(don’tcarebits)的位置,或者將相容的兩個(gè)或多個(gè)測(cè)試向量合并成單一測(cè)試向量的方法來(lái)減少總的測(cè)試向量的個(gè)數(shù),以期達(dá)到測(cè)試集最小化或最優(yōu)化。其優(yōu)勢(shì)是所有工作由軟件實(shí)現(xiàn),不會(huì)增加額外的硬件成本。但其缺點(diǎn)也非常明顯,測(cè)試向量的個(gè)數(shù)的減少造成了對(duì)非模型故障的覆蓋率的降低。本方法另一缺點(diǎn)是壓縮后測(cè)試集的測(cè)試數(shù)據(jù)量仍然非常龐大,很難一次性完全直接存儲(chǔ)在ate的存儲(chǔ)器中。因此,需要與其它方法結(jié)合使用。(2)內(nèi)建自測(cè)試方法。其在被測(cè)電路中新增一部分電路,該電路專(zhuān)門(mén)用于測(cè)試,能夠完成測(cè)試模式生成、測(cè)試控制、測(cè)試調(diào)度和測(cè)試結(jié)果分析,這樣可以不依賴(lài)外部的自動(dòng)測(cè)試設(shè)備獨(dú)立進(jìn)行測(cè)試。能夠通過(guò)減少昂貴的自動(dòng)測(cè)試設(shè)備的成本費(fèi)來(lái)達(dá)到節(jié)約測(cè)試成本的目的,還可以支持測(cè)試重用和全速測(cè)試。其缺點(diǎn)在生成測(cè)試模式時(shí),產(chǎn)生了大量的對(duì)測(cè)試毫無(wú)貢獻(xiàn)的測(cè)試模式,既增加了測(cè)試功耗,又浪費(fèi)了測(cè)試時(shí)間;另外,有部分未設(shè)計(jì)bist方法的ip核也限制其應(yīng)用。(3)靜態(tài)編碼壓縮方法。其通過(guò)編碼技術(shù)用一個(gè)較小的測(cè)試集te去編碼測(cè)試集td,將存儲(chǔ)和傳輸時(shí)對(duì)td的操作變換成對(duì)te的操作,即存儲(chǔ)te在ate的存儲(chǔ)器中,測(cè)試時(shí),也僅傳輸te而不是td到被測(cè)芯片,最終te到td的還原由被測(cè)芯片上的解壓電路來(lái)完成。靜態(tài)編碼方法采用的是無(wú)損壓縮方法,還原后的測(cè)試集的確定位跟原始測(cè)試集的確定位完全一一對(duì)應(yīng),還原后的無(wú)關(guān)位都被程序填充成了特定的值,因此其只會(huì)增加而不會(huì)降低被測(cè)電路的故障覆蓋率。該方法的另一優(yōu)勢(shì)是可以不需要提供被測(cè)電路的內(nèi)部結(jié)構(gòu),能夠很好地保護(hù)ip核的知識(shí)產(chǎn)權(quán)。因此,該技術(shù)在集成電路測(cè)試領(lǐng)域中得到了廣泛應(yīng)用。當(dāng)前比較成熟的編碼有很多,如golomb編碼、fdr碼、vihc碼、交替連續(xù)碼、variable-tail碼、混合游程碼、svic碼、變游程碼、efdr、mfvlc、mfvrcvb、afdr、共游程碼和整數(shù)存儲(chǔ)無(wú)理數(shù)的方法等。
在靜態(tài)編碼壓縮方法中,利用整數(shù)存儲(chǔ)無(wú)理數(shù)的方法,理論上可以將整個(gè)測(cè)試集轉(zhuǎn)換成若干個(gè)整數(shù)表示的無(wú)理數(shù)存儲(chǔ)。該方法的優(yōu)勢(shì)是不需要直接存儲(chǔ)代碼字,而是存儲(chǔ)代碼字的規(guī)律。其缺點(diǎn)是如果期望其壓縮效果好,無(wú)理數(shù)所表示的測(cè)試數(shù)據(jù)量就比較大,可能是若干個(gè)測(cè)試向量,甚至是整個(gè)測(cè)試集,此時(shí)無(wú)理數(shù)對(duì)應(yīng)的整數(shù)表示就比較大。一方面,該大整數(shù)在存儲(chǔ)時(shí)占用較大的空間;另一方面,在測(cè)試數(shù)據(jù)解壓過(guò)程中,大整數(shù)給數(shù)據(jù)運(yùn)算帶來(lái)了復(fù)雜性,有時(shí)甚至不能直接運(yùn)算。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供了一種針對(duì)提高測(cè)試效率、占用空間較小并且運(yùn)算簡(jiǎn)單的二分區(qū)間的壓縮數(shù)據(jù)進(jìn)行解壓的電路和解壓的方法。
本發(fā)明是通過(guò)以下技術(shù)方案解決上述技術(shù)問(wèn)題的:一種二分區(qū)間法的集成電路數(shù)據(jù)解壓電路,包含3個(gè)寄存器a、寄存器b和寄存器c的寄存器組、1個(gè)計(jì)數(shù)器、第一三態(tài)門(mén)t1、第二三態(tài)門(mén)t2、1個(gè)加法器和1個(gè)控制器;
第一三態(tài)門(mén)t1和第二三態(tài)門(mén)t2的輸入端連接,寄存器c的輸出端連接到第一三態(tài)門(mén)t1和第二三態(tài)門(mén)t2的輸入端。第一三態(tài)門(mén)t1的輸出端連接到寄存器b的輸入端,第二三態(tài)門(mén)t2的輸出端連接到寄存器a的輸入端,第一三態(tài)門(mén)t1和第二三態(tài)門(mén)t2的控制端連接到控制器的第一信號(hào)端c1,寄存器a和寄存器b的輸出端連接到加法器,加法器的輸出端連接到寄存器c,寄存器c的輸出端連接到計(jì)數(shù)器,計(jì)數(shù)器的輸出端作為解壓電路的輸出端。寄存器c的置位端和移位端分別連接到控制器的第三信號(hào)端c3和第四信號(hào)端c4,控制器的第二信號(hào)端c2作為解壓電路的輸入端;
控制器的第二信號(hào)端c2輸入需要解壓的數(shù)據(jù),解壓以后的數(shù)據(jù)從寄存器輸出。
具體的,加法器采用超前進(jìn)位加法器構(gòu)成。
所述解壓電路對(duì)數(shù)據(jù)進(jìn)行解壓的方法包括下述步驟:
步驟1:初始化,寄存器a和寄存器b分別置為數(shù)據(jù)“0”和“1”,寄存器a和寄存器b完成累加移位運(yùn)算得到0.5,此時(shí)寄存器c的值為0.5;
步驟2:控制器的第二信號(hào)端c2自壓縮數(shù)據(jù)的第一位開(kāi)始依次輸入壓縮數(shù)據(jù),輸入壓縮數(shù)據(jù)的相應(yīng)位為1時(shí),控制器c1為高電平,控制器c1控制第二三態(tài)門(mén)t2,將寄存器c的值直接傳輸?shù)郊拇嫫鱝,輸入壓縮數(shù)據(jù)的相應(yīng)位為0時(shí),控制器c1為低電平,控制器c1控制第一三態(tài)門(mén)t1,將寄存器c的值直接傳輸?shù)郊拇嫫鱞,重復(fù)上述加法以及移位計(jì)算,寄存器c的值更新,最終更新數(shù)值為0.y1y2……yn,0.y1y2……yn屬于區(qū)間(0,1);
步驟3:將寄存器c的最終更新數(shù)值移位到計(jì)數(shù)器,統(tǒng)計(jì)壓縮前數(shù)據(jù)的游程長(zhǎng)度依次為y1、y2、……yn,yn表示為第n個(gè)測(cè)試向量的游程長(zhǎng)度,n為正整數(shù),按游程長(zhǎng)度編碼輸出即可得到解壓以后的數(shù)據(jù)。
所述壓縮數(shù)據(jù)的壓縮方法包括:
步驟21:統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)的游程長(zhǎng)度y1、y2、……,yn,其中,yn表示為第n個(gè)測(cè)試向量的游程長(zhǎng)度,n為正整數(shù),將該測(cè)試向量按0類(lèi)型游程統(tǒng)計(jì)游程長(zhǎng)度,直到無(wú)關(guān)位結(jié)束;
步驟22:轉(zhuǎn)化成小數(shù),默認(rèn)小數(shù)的整數(shù)部分為0,步驟1所統(tǒng)計(jì)的游程長(zhǎng)度依次組成小數(shù)部分,轉(zhuǎn)化的小數(shù)為0.y1y2……yn,0.y1y2……yn屬于區(qū)間(0,1);
步驟23:初始化區(qū)間和原始編碼,記t0=0,t1=1,原始編碼為空;
步驟24:二分區(qū)間,令
本發(fā)明還公開(kāi)了一種使用上述的二分區(qū)間法的集成電路數(shù)據(jù)解壓電路進(jìn)行解壓的方法,包括下述步驟:
步驟1:初始化,寄存器a和寄存器b分別置為數(shù)據(jù)“0”和“1”,寄存器a和寄存器b完成累加移位運(yùn)算得到0.5,此時(shí)寄存器c的值為0.5;
步驟2:控制器的第二信號(hào)端c2自壓縮數(shù)據(jù)的第一位開(kāi)始依次輸入壓縮數(shù)據(jù),輸入壓縮數(shù)據(jù)的相應(yīng)位為1時(shí),控制器c1為高電平,控制器c1控制第二三態(tài)門(mén)t2,將寄存器c的值直接傳輸?shù)郊拇嫫鱝,輸入壓縮數(shù)據(jù)的相應(yīng)位為0時(shí),控制器c1為低電平,控制器c1控制第一三態(tài)門(mén)t1,將寄存器c的值直接傳輸?shù)郊拇嫫鱞,重復(fù)上述加法以及移位計(jì)算,寄存器c的值更新,最終更新數(shù)值為0.y1y2……yn,0.y1y2……yn屬于區(qū)間(0,1);
步驟3:將寄存器c的最終更新數(shù)值移位到計(jì)數(shù)器,統(tǒng)計(jì)壓縮前數(shù)據(jù)的游程長(zhǎng)度依次為y1、y2、……yn,yn表示為第n個(gè)測(cè)試向量的游程長(zhǎng)度,n為正整數(shù),按游程長(zhǎng)度編碼輸出即可得到解壓以后的數(shù)據(jù)。
具體的,加法器采用超前進(jìn)位加法器構(gòu)成。
其中,所述壓縮數(shù)據(jù)的壓縮方法包括:
步驟21:統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)的游程長(zhǎng)度y1、y2、……,yn,其中,yn表示為第n個(gè)測(cè)試向量的游程長(zhǎng)度,n為正整數(shù),將該測(cè)試向量按0類(lèi)型游程統(tǒng)計(jì)游程長(zhǎng)度,直到無(wú)關(guān)位結(jié)束;
步驟22:轉(zhuǎn)化成小數(shù),默認(rèn)小數(shù)的整數(shù)部分為0,步驟1所統(tǒng)計(jì)的游程長(zhǎng)度依次組成小數(shù)部分,轉(zhuǎn)化的小數(shù)為0.y1y2……yn,0.y1y2……yn屬于區(qū)間(0,1);
步驟23:初始化區(qū)間和原始編碼,記t0=0,t1=1,原始編碼為空;
步驟24:二分區(qū)間,令
本發(fā)明相比現(xiàn)有技術(shù)具有以下優(yōu)點(diǎn):對(duì)二分區(qū)間的壓縮數(shù)據(jù)進(jìn)行解壓,解壓方法簡(jiǎn)單,所用器件簡(jiǎn)單,提高了整個(gè)集成電路的測(cè)試效率,極大減少了數(shù)據(jù)的占用空間。
附圖說(shuō)明
圖1是本發(fā)明的解壓電路結(jié)構(gòu)圖;
圖2是本發(fā)明實(shí)施例中產(chǎn)生進(jìn)位鏈ci的電路圖;
圖3是本發(fā)明實(shí)施例中的解壓過(guò)程圖例。
具體實(shí)施方式
下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
發(fā)明克服現(xiàn)有技術(shù)的不足,本申請(qǐng)人提供了一種二分區(qū)間的測(cè)試數(shù)據(jù)壓縮方法,可以將若干個(gè)測(cè)試向量甚至整個(gè)測(cè)試集映射到區(qū)間(0,1),再通過(guò)多次二分區(qū)間的方法找到該位置,存儲(chǔ)該二分區(qū)間的規(guī)律即可存儲(chǔ)該若干個(gè)測(cè)試向量甚至整個(gè)測(cè)試集。
具體步驟為:
步驟1:統(tǒng)計(jì)原始測(cè)試數(shù)據(jù)的游程長(zhǎng)度y1、y2、……,yn,其中,yn表示為第n個(gè)測(cè)試向量的游程長(zhǎng)度,n為正整數(shù),將該測(cè)試向量按0類(lèi)型游程統(tǒng)計(jì)游程長(zhǎng)度,直到無(wú)關(guān)位結(jié)束,若無(wú)關(guān)位與前一游程可以組成同一游程,舍棄最后一游程長(zhǎng)度,只記前若干游程長(zhǎng)度;否則記前所有游程長(zhǎng)度。
若無(wú)關(guān)位與前一游程可以組成同一游程,舍棄最后一游程長(zhǎng)度,只記前若干游程長(zhǎng)度;否則記前所有游程長(zhǎng)度。以0000100110xxx為例,前三個(gè)游程是確定的,是4、2、0,后面一個(gè)游程可以3,即最后4位是0001;如對(duì)于0000100101xxx,前3個(gè)游程分別是4、2和1,后面的無(wú)關(guān)位不能直接與前一游程拼成同一游程,此時(shí)只記前3個(gè)游程。此過(guò)程主要是將無(wú)關(guān)位盡可能的往前一游程填充。
不失一般性,設(shè)原始測(cè)試數(shù)據(jù)為:00000001000100001000100000001000001,則游程長(zhǎng)度分別為7、3、4、3、7和5;
步驟2:轉(zhuǎn)化成小數(shù),默認(rèn)小數(shù)的整數(shù)部分為0,步驟1所統(tǒng)計(jì)的游程長(zhǎng)度依次組成小數(shù)部分,轉(zhuǎn)化的小數(shù)為0.y1y2……yn,0.y1y2……yn屬于區(qū)間(0,1),如步驟1所統(tǒng)計(jì)的游程長(zhǎng)度依次為7、3、4、3、7和5,轉(zhuǎn)化后的小數(shù)為0.734375,記為t,有t∈(0,1);
步驟3:初始化區(qū)間和原始編碼,記t0=0,t1=1,原始編碼為空;
步驟4:二分區(qū)間,令
從上面可以看出原始的測(cè)試數(shù)據(jù)為00000001000100001000100000001000001,壓縮后的數(shù)據(jù)為101110,壓縮前35位,壓縮后6位。
通過(guò)以上壓縮方法,提高了測(cè)試效率,由于將若干個(gè)測(cè)試向量甚至整個(gè)測(cè)試集映射到區(qū)間(0,1),再通過(guò)多次二分區(qū)間的方法找到該位置,存儲(chǔ)該二分區(qū)間的規(guī)律即可存儲(chǔ)該若干個(gè)測(cè)試向量甚至整個(gè)測(cè)試集,占用空間較小,并且運(yùn)算簡(jiǎn)單,非常實(shí)用。
本發(fā)明提供一種解壓上述數(shù)據(jù)的電路以及解壓方法。
解壓電路如圖1所示,包含3個(gè)寄存器a、寄存器b和寄存器c的寄存器組、1個(gè)計(jì)數(shù)器、第一三態(tài)門(mén)t1、第二三態(tài)門(mén)t2、1個(gè)加法器和1個(gè)控制器。
第一三態(tài)門(mén)t1和第二三態(tài)門(mén)t2的輸入端連接,寄存器c的輸出端連接到第一三態(tài)門(mén)t1和第二三態(tài)門(mén)t2的輸入端。第一三態(tài)門(mén)t1的輸出端連接到寄存器b的輸入端,第二三態(tài)門(mén)t2的輸出端連接到寄存器a的輸入端,第一三態(tài)門(mén)t1和第二三態(tài)門(mén)t2的控制端連接到控制器的第一信號(hào)端c1,寄存器a和寄存器b的輸出端連接到加法器,加法器的輸出端連接到寄存器c,寄存器c的輸出端連接到計(jì)數(shù)器,計(jì)數(shù)器的輸出端作為解壓電路的輸出端。寄存器c的置位端和移位端分別連接到控制器的第三信號(hào)端c3和第四信號(hào)端c4,控制器的第二信號(hào)端c2作為解壓電路的輸入端。
控制器的第二信號(hào)端c2輸入需要解壓的數(shù)據(jù),解壓以后的數(shù)據(jù)從寄存器輸出??刂破鞯牡谝恍盘?hào)端c1控制寄存器a和寄存器b,控制器的第三信號(hào)端c3和第四信號(hào)端c4分別控制寄存器c的置位和移位。
加法器采用超前進(jìn)位加法器構(gòu)成,加法運(yùn)算可以在一個(gè)時(shí)鐘內(nèi)完成。由于除以2的運(yùn)算可以轉(zhuǎn)化為向右移位運(yùn)算完成,通過(guò)第四信號(hào)端c4控制寄存器c完成向右移位運(yùn)算即可達(dá)到除以2的運(yùn)算。
需要指出的是,加法器采用超前進(jìn)位加法器,對(duì)于一位加法器可以用如下邏輯函數(shù)表示:
ci=pi+qici-1si=aibici(1)
其中,ai、bi為兩個(gè)加數(shù),si表示和,ci-1表示來(lái)自低位的進(jìn)位,ci表示向高位的進(jìn)位。pi=aibi為進(jìn)位生成函數(shù),qi=ai+bi為進(jìn)位傳送函數(shù),i為加法器的位數(shù)。
從上式可以看出最高位的運(yùn)算必須等到低位的所有位運(yùn)算結(jié)束后才是有效的。即運(yùn)算的延遲主要是由于進(jìn)位延遲所引起的,為了提高運(yùn)算速度,必須盡量減少由于進(jìn)位信號(hào)逐級(jí)傳遞所耗費(fèi)的時(shí)間。所以最好能在加法運(yùn)算一開(kāi)始就得到高位的進(jìn)位輸入信號(hào)。
分析(1)式發(fā)現(xiàn),只要aibi=1,即pi=1,就會(huì)產(chǎn)生向第i位的進(jìn)位;只要ai+bi=1,即qi=1,就會(huì)把第ci-1傳遞到第i位。如果我們把ci的等式展開(kāi),就會(huì)得到:
ci=pi+qipi-1+qiqi-1pi-2+qiqi-1qi-2pi-3+…+qiqi-1qi-2…q2p1+qiqi-1qi-2…q2q1c0(2)
使用(2)式來(lái)產(chǎn)生所有進(jìn)位的加法器稱(chēng)為超前進(jìn)位加法器,其對(duì)應(yīng)的進(jìn)位ci的實(shí)現(xiàn)電路如圖2所示。超前進(jìn)位加法器相對(duì)于串行進(jìn)位加法器,大大縮短了延遲時(shí)間,超前進(jìn)位加法器只需五級(jí)門(mén)延遲,這樣就可以確保加法運(yùn)算能在一個(gè)時(shí)鐘周期內(nèi)完成工作,可以采用如74ls283的超前進(jìn)位加法器。
使用上述解壓電路對(duì)數(shù)據(jù)進(jìn)行解壓的方法包括下述步驟:
步驟1:初始化,寄存器a和寄存器b分別置為數(shù)據(jù)“0”和“1”,寄存器a和寄存器b完成累加移位運(yùn)算得到0.5,此時(shí)寄存器c的值為0.5;
步驟2:控制器的第二信號(hào)端c2自壓縮數(shù)據(jù)的第一位開(kāi)始依次輸入壓縮數(shù)據(jù),輸入壓縮數(shù)據(jù)的相應(yīng)位為1時(shí),控制器c1為高電平,控制器c1控制第二三態(tài)門(mén)t2,將寄存器c的值直接傳輸?shù)郊拇嫫鱝,輸入壓縮數(shù)據(jù)的相應(yīng)位為0時(shí),控制器c1為低電平,控制器c1控制第一三態(tài)門(mén)t1,將寄存器c的值直接傳輸?shù)郊拇嫫鱞,重復(fù)上述加法以及移位計(jì)算,寄存器c的值更新,最終更新數(shù)值為0.y1y2……yn,0.y1y2……yn屬于區(qū)間(0,1);
步驟3:將寄存器c的最終更新數(shù)值移位到計(jì)數(shù)器,統(tǒng)計(jì)壓縮前數(shù)據(jù)的游程長(zhǎng)度依次為y1、y2、……yn,yn表示為第n個(gè)測(cè)試向量的游程長(zhǎng)度,n為正整數(shù),按游程長(zhǎng)度編碼輸出即可得到解壓以后的數(shù)據(jù)。
以壓縮后的數(shù)據(jù)101110為例說(shuō)明本電路結(jié)構(gòu)的工作原理。
初始時(shí)寄存器a和寄存器b分別置為數(shù)據(jù)“0”和“1”,寄存器a和寄存器b完成累加移位運(yùn)算得到0.5,此時(shí)寄存器c的值為0.5。輸入信號(hào)input第一位為1到c2,控制器c1為高電平,控制器通過(guò)三態(tài)門(mén)t2將寄存器c的值直接傳輸?shù)郊拇嫫鱝,寄存器a的值更新為0.5,如圖3中t1。重復(fù)加法和移位運(yùn)算,寄存器c的值為0.75,如圖3中t2,輸入信號(hào)input第二位為0到c2,控制器c1為低電平,控制器通過(guò)三態(tài)門(mén)t1將寄存器c的值直接傳輸?shù)郊拇嫫鱞,寄存器b的值更新為0.75。重復(fù)加法和移位運(yùn)算,寄存器c的值為0.625,如圖3中t3,輸入信號(hào)input第二位為1到c2,控制器c1為低電平,控制器通過(guò)三態(tài)門(mén)t2將寄存器c的值直接傳輸?shù)郊拇嫫鱝,寄存器b的值更新為0.625。一直重復(fù)此過(guò)程,寄存器c的值分別更新為t4,t5,t6。由寄存器c的值即可得到原始測(cè)試數(shù)據(jù)的數(shù)據(jù)流的順序依次為7、3、4、3、7、5。將該數(shù)值移位到計(jì)數(shù)器,按游程長(zhǎng)度編碼輸出即可得到00000001000100001000100000001000001。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。