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