基于符號(hào)模擬的電路中錯(cuò)誤診斷方法研究
錯(cuò)誤診斷是集成電路驗(yàn)證后期一個(gè)非常重要的階段,它幫助設(shè)計(jì)者在一個(gè)錯(cuò)誤芯片中預(yù)測(cè)錯(cuò)誤點(diǎn),因此可以減輕整個(gè)調(diào)試過程中的工作量。經(jīng)過許多年的研究工作,組合電路的錯(cuò)誤診斷正趨于成熟和實(shí)用化。這些方法主要分為兩類:基于模擬的方法和符號(hào)方法。基于模擬的方法在每個(gè)錯(cuò)誤向量對(duì)電路的模擬中,通過過濾掉非錯(cuò)誤點(diǎn)而使含有錯(cuò)誤點(diǎn)的區(qū)域逐漸被限定下來。符號(hào)方法不用明確列舉錯(cuò)誤向量,而是主要依賴于二叉決策圖BDD,并提出錯(cuò)誤源定位的充分必要條件。依據(jù)此充分必要條件,可直接定位錯(cuò)誤點(diǎn)。該方法由于使用BDD技術(shù),因而存在內(nèi)存爆炸的隱患。
Boppana為錯(cuò)誤診斷提出了一個(gè)概括的基于區(qū)域的模型,該模型可以被擴(kuò)展來定位多錯(cuò)誤,并且可以用于解決時(shí)序電路的錯(cuò)誤診斷。Shi-Yu Huang提出了利用符號(hào)模擬來優(yōu)化拜占庭式錯(cuò)誤診斷的過程。Boppana介紹了一個(gè)基于Xlists模擬的診斷算法。N.Sridhar提出一種診斷技術(shù),它通過可區(qū)分的X來消減錯(cuò)誤候選者區(qū)域。李光輝介紹了基于驗(yàn)證技術(shù)的錯(cuò)誤診斷方法,該方法將三值模擬與SAT技術(shù)相結(jié)合,以消減錯(cuò)誤空間,提高診斷結(jié)果。
在此,提出一種利用符號(hào)模擬技術(shù)來優(yōu)化基于區(qū)域模型錯(cuò)誤診斷過程的方法。該方法首先使用基于區(qū)域模型錯(cuò)誤診斷方法中電路劃分方法對(duì)所要診斷的電路進(jìn)行區(qū)域劃分,然后在其基礎(chǔ)上利用符號(hào)模擬技術(shù)并使用兩個(gè)測(cè)量標(biāo)準(zhǔn)對(duì)各個(gè)區(qū)域的可疑度進(jìn)行等級(jí)排序。可疑度越高的區(qū)域包含錯(cuò)誤點(diǎn)的可能性越大。由于使用符號(hào)模擬技術(shù),不需要對(duì)向量空間進(jìn)行明確列舉,因而所提出的方法在時(shí)間上是有效的。
1 定 義
在此,將規(guī)范和實(shí)現(xiàn)分別表示為C1和C2,其中實(shí)現(xiàn)表示為一個(gè)組合的門級(jí)電路。規(guī)范和實(shí)現(xiàn)的主要輸入(PI)信號(hào)都表示為{x1,x2,…,xm),其中m表示主要輸入的個(gè)數(shù)。規(guī)范和實(shí)現(xiàn)的主要輸出(PO)信號(hào)分別表示為{S1,S2,…,Sn}和{I1,I2,…In},其中n表示主要輸出的個(gè)數(shù)。另外,假設(shè)預(yù)先生成的測(cè)試向量集合為T={v1,v2,…,vt}。
定義1 (Si,Ii)被稱為一個(gè)輸出對(duì),其中1≤i≤n。
定義2 如果存在一個(gè)輸入測(cè)試向量v,使得v對(duì)規(guī)范和實(shí)現(xiàn)電路分別進(jìn)行模擬時(shí),實(shí)現(xiàn)電路的輸出Ii與規(guī)范中相對(duì)應(yīng)的輸出Si的值不同,稱Ii為錯(cuò)誤輸出或不匹配輸出,(Si,Ii)為不匹配輸出對(duì)。
定義3 如果一個(gè)輸入向量能使任何輸出對(duì)之間產(chǎn)生不匹配現(xiàn)象,則稱該輸入向量為錯(cuò)誤輸入向量。
定義4 對(duì)一個(gè)不匹配輸出Ii的處理涉及到這樣一個(gè)機(jī)制,即對(duì)實(shí)現(xiàn)中某些信號(hào)注入二進(jìn)制值可以使Ii的響應(yīng)同規(guī)范中與它相對(duì)應(yīng)的輸出響應(yīng)相同。
錯(cuò)誤診斷是基于一個(gè)被稱為可治愈性的概念進(jìn)行的。在搜索錯(cuò)誤候選者的過程中,為了對(duì)每個(gè)信號(hào)的可疑度進(jìn)行等級(jí)排序,需要對(duì)每個(gè)信號(hào)進(jìn)行兩方面的測(cè)量:可治療的輸出數(shù)和可治療的向量數(shù)。
定義5 假設(shè)實(shí)現(xiàn)電路在錯(cuò)誤輸入向量v,的模擬下,第i個(gè)主要輸出是不匹配輸出。令A(yù)是一個(gè)有著k個(gè)輸出{a1,a2,…,ak}的區(qū)域。如果在主要輸出Ii處的不匹配可以通過在{a1,a2,…ak}的一個(gè)注入組合來修正,則稱Ii足在v的模擬下區(qū)域A的一個(gè)可治療輸出,用符號(hào)表示為Ii∈region_curable_output(A,v)。
該定義說明了可以通過對(duì)一個(gè)區(qū)域輸出進(jìn)行處理來糾正C2中出現(xiàn)的不匹配輸出。這里處理的方法是在區(qū)域輸出點(diǎn)注入某些二進(jìn)制值。由經(jīng)驗(yàn)可知,一個(gè)區(qū)域的可治療輸出的個(gè)數(shù)越多,則它成為包含錯(cuò)誤點(diǎn)區(qū)域的可能性越大,因?yàn)閷?duì)這個(gè)區(qū)域輸出值的改變會(huì)影響到較多的不匹配輸出。另外,除了這個(gè)測(cè)量標(biāo)準(zhǔn),可以利用一個(gè)被稱為可治療向量的測(cè)量標(biāo)準(zhǔn)來進(jìn)一步有效地檢查錯(cuò)誤點(diǎn)。
定義6 如果實(shí)現(xiàn)電路C2在一個(gè)錯(cuò)誤輸入向量v的模擬下所產(chǎn)生的每個(gè)不匹配輸出可以同時(shí)通過在區(qū)域A的輸出{a1,a2,…,ak}處一個(gè)注入組合來糾正,并且不會(huì)產(chǎn)生新的不匹配輸出的話,則稱這個(gè)錯(cuò)誤輸入向量v為區(qū)域A的可治療向量,用符號(hào)表示為Ii∈region_curable_vector(A)。如果這樣一個(gè)注入存在,則稱它為區(qū)域A的一個(gè)可治療注入。
基于這兩個(gè)測(cè)量標(biāo)準(zhǔn),結(jié)合排序準(zhǔn)則,對(duì)每個(gè)區(qū)域的可疑度進(jìn)行等級(jí)排序。排序準(zhǔn)則如下:有較多可治療向量的區(qū)域,其成為錯(cuò)誤候選者的可疑度就越大。對(duì)于有相同數(shù)目可治療向量的區(qū)域,考慮它們的可治療輸出數(shù)目,即把可治療向量作為第一層測(cè)量標(biāo)準(zhǔn)使用,把可治療輸出作為第二層測(cè)量標(biāo)準(zhǔn)考慮。
2 區(qū)域模型介紹
定義7電路中的任一門元件g與它的直接扇入門或者直接扇出門之間的距離稱為一個(gè)結(jié)構(gòu)距離。
定義8 給定d為一個(gè)固定化的結(jié)構(gòu)距離,g為電路的任一門元件,則以g為中心,以d為半徑的區(qū)域是集合D(g)={h|dis(g,h)≤d}。
例如,門g周圍半徑為1的區(qū)域集合中包括g,g的直接扇出以及它的直接扇入。電路中的每個(gè)門都可以形成一個(gè)區(qū)域,因此電路中有多少個(gè)門就有多少個(gè)重疊區(qū)域。文獻(xiàn)[3]中介紹的基于區(qū)域模型的診斷方法是在模擬過程中,首先將區(qū)域中所有輸出結(jié)點(diǎn)設(shè)置為未知值X,以掩蓋發(fā)生在該區(qū)域中的任何錯(cuò)誤。如果對(duì)于一個(gè)給定向量v,沒有X可以傳播到一個(gè)主要輸出,則可以判定向量v探測(cè)不出區(qū)域中的任何錯(cuò)誤;否則說明區(qū)域中存在錯(cuò)誤并將該區(qū)域作為一個(gè)錯(cuò)誤候選者。
3 符號(hào)模擬優(yōu)化過程
接下來介紹如何將符號(hào)模擬技術(shù)應(yīng)用到區(qū)域模型上,并計(jì)算在錯(cuò)誤輸入向量v同時(shí),對(duì)規(guī)范和實(shí)現(xiàn)電路進(jìn)行模擬的情況下,v是否為區(qū)域A的一個(gè)可治療向量。另外,需要確定在v的模擬下該區(qū)域有多少個(gè)可治療輸出。計(jì)算分四個(gè)主要步驟:無錯(cuò)誤邏輯模擬、符號(hào)注入、符號(hào)傳播及可治療性檢查。
無錯(cuò)誤邏輯模擬簡(jiǎn)單確立了在輸入向量v的模擬下,每個(gè)信號(hào)線的無錯(cuò)誤邏輯值。下面要討論的其他3個(gè)步驟是針對(duì)區(qū)域模型等級(jí)排序提出的。
3.1 符號(hào)注入
首先,將要考慮區(qū)域的輸出與區(qū)域之間的連接斷開,接著把這些輸出信號(hào)線抽出來,將其中每一個(gè)信號(hào)線都視為一個(gè)偽主要輸入,最后對(duì)每個(gè)輸出端aj注入一個(gè)符號(hào)變量xj,其中1≤j≤k,k是區(qū)域A的輸出數(shù)量。注意:A輸出的扇出區(qū)域中每個(gè)信號(hào)都會(huì)受到注入變量的影響。圖1給出了注入符號(hào)前及注入符號(hào)后電路的基本情況。
3.2 符號(hào)傳播
符號(hào)注入的作用是通過函數(shù)向主要輸出方向傳播來對(duì)區(qū)域A輸出的扇出區(qū)域中的信號(hào)進(jìn)行賦值。符號(hào)傳播的過程類似于錯(cuò)誤模擬過程,不同之處在于符號(hào)傳播中一個(gè)信號(hào)的值不再是邏輯值0/1,而是用所注入的布爾變量{x1,x2,…,xk}表示的一個(gè)布爾函數(shù)。圖2所示為符號(hào)傳播過程。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評(píng)論