專(zhuān)利名稱(chēng):測(cè)試生長(zhǎng)法的制作方法
本發(fā)明涉及集成電路的測(cè)試,尤其是涉及響應(yīng)電路設(shè)計(jì)信息的產(chǎn)生測(cè)量向量的方法。
由于超大規(guī)模集成電路器件的復(fù)雜性以及難于達(dá)到成品中內(nèi)部導(dǎo)電通路,在設(shè)計(jì)階段就經(jīng)常要想方設(shè)法去確定所擬議的電路的可測(cè)試性,并設(shè)計(jì)出成套的可用測(cè)試輸入或向量以檢查所制造的器件中的可能故障。設(shè)計(jì)的向量,即那些準(zhǔn)備用于電路正常操作的向量可能適宜也可能不適宜揭露電路中的隱藏故障,因這些故障只有在不尋常的操作條件下才變得明顯。如果電路的輸入端數(shù)很大,為揭露這些故障而應(yīng)用二進(jìn)制輸入值的所有組合就會(huì)變得不切實(shí)際。另一種方法則利用自動(dòng)測(cè)試碼模式發(fā)生器,以提供一種適于揭露某個(gè)或某些指定的故障,例如電路中的“膠著”(stuck-at)故障。因而,采用一種故障模擬程序以檢查結(jié)果,并確定其它故障是否也可用相同的輸入向量檢測(cè)其它故障。即,故障模擬器試圖為一已知測(cè)試的效能分級(jí)。于是,另一種故障擬用于自動(dòng)測(cè)試碼模式發(fā)生器,這種故障不會(huì)被第一測(cè)試向量掩蓋,而自動(dòng)測(cè)試碼模式發(fā)生器提供一種第二測(cè)試向量。這種迭代法繼續(xù)下去,直到被掩蓋的故障數(shù)同合乎要求或可以接受為止??上У氖?,這些過(guò)程,就以模擬而需用的計(jì)算機(jī)時(shí)間來(lái)說(shuō),是既冗長(zhǎng)而又花錢(qián)的。許多設(shè)計(jì)者終于在可能的場(chǎng)合下避免采用這類(lèi)測(cè)試方法。
總的說(shuō)來(lái),至今似乎還沒(méi)有一種在集成電路器件中采用產(chǎn)生測(cè)試向量的方法,該方法是真正令人滿意的。
根據(jù)本發(fā)明,一個(gè)已知的測(cè)試計(jì)數(shù)過(guò)程被用以提供可測(cè)試性信息,然后用這一相同的信息以枚舉法產(chǎn)生測(cè)試向量。
更具體地說(shuō),一個(gè)集成電路網(wǎng)絡(luò)的可測(cè)試性是根據(jù)測(cè)試計(jì)數(shù)過(guò)程來(lái)量度的,這個(gè)測(cè)試計(jì)數(shù)過(guò)程包括了通過(guò)介入門(mén)電路從輸入端前向至一個(gè)主輸出端并后向返回到輸入端的敏感測(cè)試計(jì)數(shù)的傳輸,以便給網(wǎng)絡(luò)中的節(jié)點(diǎn)提供測(cè)試計(jì)數(shù)矩陣。從所說(shuō)矩陣,通過(guò)將各自的在所說(shuō)輸入端的敏感數(shù)值前向驅(qū)動(dòng)至一所說(shuō)輸出端,并后向回到所說(shuō)輸入端的若干連續(xù)趟數(shù)來(lái)枚舉測(cè)試計(jì)數(shù),從而按照原來(lái)各電路節(jié)點(diǎn)處的所說(shuō)矩陣所敘述的做法來(lái)累積測(cè)試計(jì)數(shù)。一組敏感值(每趟都要驅(qū)動(dòng)這些節(jié)點(diǎn)值)被分別存儲(chǔ)起來(lái),而每組的輸入敏感值都包括集成電路網(wǎng)絡(luò)用的測(cè)試向量。
本發(fā)明的一個(gè)目的是要提供一種改進(jìn)的測(cè)試集成電路器件的方法。
本發(fā)明另一個(gè)目的是要在設(shè)計(jì)和計(jì)算機(jī)模擬階段(它不要求無(wú)節(jié)制地消耗計(jì)算機(jī)時(shí)間)提供一種改進(jìn)的測(cè)試集成電路器件的方法。
在本說(shuō)明書(shū)的結(jié)束部分要特別指出本發(fā)明的主題,并明顯地提出權(quán)利要求
。但是,不管是本發(fā)明的構(gòu)造還是操作方法,都可以和其他優(yōu)點(diǎn)和目的一起,通過(guò)參考下列敘述和附圖(其中相同的參考字符代表相同的元件)來(lái)很好理解。
圖1是先有技術(shù)的自動(dòng)測(cè)試碼模式產(chǎn)生流程圖,圖2是根據(jù)本發(fā)明的用以產(chǎn)生測(cè)試向量的流程圖,圖3是門(mén)電路示意圖,用以說(shuō)明在測(cè)試計(jì)數(shù)中所采用的敏感的和鈍感的測(cè)試值,圖4說(shuō)明可能在與門(mén)電路出現(xiàn)的敏感的和鈍感的輸入值和輸出值,圖5A畫(huà)出一個(gè)測(cè)試計(jì)數(shù)矩陣,圖5B畫(huà)出一個(gè)異或門(mén)上的測(cè)試計(jì)數(shù)值,圖6說(shuō)明再匯聚扇出術(shù)語(yǔ)中的路徑定義,圖7說(shuō)明為多個(gè)門(mén)電路用的前向敏感驅(qū)動(dòng),圖8說(shuō)明為若干個(gè)不同門(mén)電路用的后向敏感驅(qū)動(dòng),
圖9說(shuō)明為多個(gè)門(mén)電路用的后向鈍感驅(qū)動(dòng),圖10至26是本發(fā)明包括可測(cè)試性分析和測(cè)試向量產(chǎn)生過(guò)程的諸步驟0至16,圖27是按圖10至26過(guò)程推導(dǎo)出的一整套測(cè)試數(shù)組圖,以及圖28至32包括一個(gè)根據(jù)本發(fā)明的計(jì)算機(jī)化過(guò)程的流程圖。
參考附圖,具體說(shuō)是參考圖1,圖中說(shuō)明的先有技術(shù)過(guò)程包括自動(dòng)測(cè)試碼模式產(chǎn)生(方框10)和故障模擬(方框12)。這些方塊在通用數(shù)字計(jì)算機(jī)中一般作為連續(xù)步驟加以執(zhí)行,并將它重復(fù)應(yīng)用,直到集成電路器件中預(yù)定的或可以接受的故障數(shù)可以被該過(guò)程推導(dǎo)出來(lái)的輸入激勵(lì)或向量組揭露出為止。根據(jù)本文前面提到的,自動(dòng)測(cè)試碼模式發(fā)生器以一組被揭露的故障開(kāi)始,該組故障包括了集成電路器件中各種電路節(jié)點(diǎn)處的所有“膠著”故障。設(shè)計(jì)先有技術(shù)的自動(dòng)測(cè)試碼模式發(fā)生器以提出一個(gè)輸入向量或一組輸入數(shù)值,對(duì)至少一個(gè)“被揭露”的故障進(jìn)行測(cè)試。然后,故障模擬器按照有多少故障被復(fù)蓋來(lái)對(duì)自動(dòng)測(cè)試碼模式發(fā)生器分級(jí),而在判定框14中,確定出所需的或可接受的故障復(fù)蓋是否已經(jīng)達(dá)到。如果當(dāng)未達(dá)到,就要經(jīng)過(guò)判定框16(如故障復(fù)蓋表現(xiàn)為可以達(dá)到的)回到自動(dòng)測(cè)試碼模式發(fā)生器,該處的自動(dòng)測(cè)試碼模式發(fā)生器提出另一個(gè)向量,用故障模擬器進(jìn)行分級(jí)。有可能輸入和輸出端的某些故障是未暴露的,因而可以在18處累積未暴露的故障組。當(dāng)已達(dá)到所需故障復(fù)蓋時(shí),過(guò)程在方框20處緊致和合并故障指向測(cè)試組22,并提供一整套的測(cè)試組24。就如本文前面提到過(guò)的,這種先有技術(shù)的過(guò)程實(shí)施起來(lái)是很花時(shí)間的,因而也很花費(fèi)。
根據(jù)本發(fā)明,在采用的一種簡(jiǎn)化過(guò)程中,為采用測(cè)試計(jì)數(shù)過(guò)程的可測(cè)試性分析30而利用了圖2中26的電路描述和故障復(fù)蓋要求28,這在下文會(huì)更全面地?cái)⑹?。測(cè)試計(jì)數(shù)的結(jié)果與測(cè)試的向量數(shù)目有關(guān),這些向量適用于要求達(dá)到所需目標(biāo)可測(cè)試性的場(chǎng)合??蓽y(cè)試性的結(jié)果32被直接用于提供完整的測(cè)試組合36的測(cè)試生成步驟34。
測(cè)試生成程序宜在通用數(shù)字計(jì)算機(jī)連同下面電路本身的設(shè)計(jì)和模擬一起加以執(zhí)行。但在下面的描述中,該過(guò)程的步驟將首先在概念上予以說(shuō)明,隨后才對(duì)程序算法作更詳盡的介紹。
為了要了解本過(guò)程,首先需要說(shuō)明測(cè)試計(jì)數(shù)或可測(cè)試性分析,因此曾用它確定某一已知電路的可測(cè)試性,同時(shí)也要說(shuō)明需用于達(dá)到預(yù)定可測(cè)試性結(jié)果的向量數(shù)。1982年4月在科羅拉多州維爾舉行的第五屆電氣和電子工程師學(xué)會(huì)可測(cè)試性設(shè)計(jì)專(zhuān)題研究小組上,在謝爾登B.艾克斯和巴拉克里希南.克里希拿墨提(Balakrishnan Krishnamurthy)的題為“估計(jì)測(cè)試量的測(cè)試計(jì)數(shù)技術(shù)”的論文中敘述了測(cè)試計(jì)數(shù)。根據(jù)該測(cè)試計(jì)數(shù)算法,每一引線的“敏感”值,可用每個(gè)原始門(mén)電路的輸入和輸出敏感值之間的簡(jiǎn)單代數(shù)關(guān)系,傳輸?shù)揭獪y(cè)試的電路網(wǎng)絡(luò)里。只有當(dāng)(當(dāng)且僅當(dāng))引線“a”上“膠著在V”的故障是可觀察時(shí),引線“a”上的邏輯值v才是敏感的,同理,當(dāng)且僅當(dāng)引線“a”上“膠著在V”的故障是不可觀察時(shí),引線“a”上的邏輯值v才是鈍感的。敏感的0和1分別表示為0+和1+。鈍感的0或1則表示為0-或1-。參看圖3,敏感的(和鈍感的)值在接收了向量a=1、b=0、c=1(或簡(jiǎn)單寫(xiě)成101)的電路上表示。在執(zhí)行敏感值時(shí),可在輸出引線上觀察到,而在執(zhí)行鈍感值時(shí),在輸出引線上觀察不到。對(duì)于任一個(gè)加到網(wǎng)絡(luò)的測(cè)試向量而言,每條引線將表現(xiàn)為四個(gè)值0+、1+、0-或1-中的一個(gè)值??傊@四個(gè)值稱(chēng)為測(cè)試值。
測(cè)試時(shí),或相當(dāng)于應(yīng)用多個(gè)順序測(cè)試向量以檢測(cè)具體的故障時(shí),引線a表現(xiàn)出的敏感的0和1的總數(shù)分別表示為a+0或a+1,而鈍感的0和1的總數(shù)則分別表示為a-0或a-1,a+0、a+1、a-0和a-1這四個(gè)量叫做測(cè)量計(jì)數(shù)。在下文中,n+0等用以代表任意引線(如果沒(méi)有含糊不清)的測(cè)試計(jì)數(shù)。一條引線“a”的測(cè)試計(jì)數(shù)矩陣是由a+0、a+1、a-0和a-1組成的2×2矩陣,它們分別在矩陣的左上、右上、左下和右下方。也可以使用3×3的測(cè)試計(jì)數(shù)矩陣以攜帶有關(guān)各列和行的和的額外信息。在這種情況下,2×2矩陣恰好是在相應(yīng)的3×3矩陣的左上方。圖5A說(shuō)明典型的矩陣。
門(mén)電路輸入端上的測(cè)試計(jì)數(shù)和同一門(mén)電路輸出端上的測(cè)試計(jì)數(shù)必須滿足稱(chēng)之為約束的某些關(guān)系。由于這些約束,門(mén)電路輸入測(cè)試計(jì)數(shù)的改變會(huì)引起輸出測(cè)試計(jì)數(shù)的改變,這種現(xiàn)象稱(chēng)之為前向傳輸。反之,由輸出測(cè)試計(jì)數(shù)的改變而引起的輸入測(cè)試的改變則稱(chēng)之為后向傳輸。前向和后向這兩個(gè)傳輸,如本文所說(shuō),都受約束的控制。首先考慮與門(mén)的一個(gè)例子。如圖4中說(shuō)明的,每當(dāng)一個(gè)與門(mén)的輸出引線“C”需要是0+時(shí),輸入引線就至少有一個(gè)必須是0,它當(dāng)且僅當(dāng)其它輸入是1-時(shí)才是靈敏的。因?yàn)檫@兩種情況是互相排斥的,可得下面的結(jié)論C+0≥a+0+b+0(1)另一方面,每當(dāng)有一個(gè)輸入引線需要是1+時(shí),輸出和其它的輸入引線就必須都是1+。故C+1≥max(a+1,b+1) (2)方程式(1)和(2)是通過(guò)一個(gè)與門(mén)的測(cè)試計(jì)數(shù)前向傳輸?shù)募s束。
后向傳輸也會(huì)影響測(cè)試計(jì)數(shù)。仔細(xì)考查圖4中所有八種可能的情況后,就可顯示出每當(dāng)某一個(gè)輸入引線是1-時(shí),不是其余的輸入引線全是0+就是輸出引線是1-。因?yàn)檫@兩種情況是互相排斥的,故存在一個(gè)約束為a-1≥b+1+c-1(3)另外,每個(gè)輸出引線或其它任一個(gè)輸入引線為1+時(shí),輸入引線就呈現(xiàn)1+。因此,a+1≥max(b+1,c+1) (3a)顯然,通過(guò)結(jié)合(2)和(3a),也可推導(dǎo)出
a+1=b+1=c+1(4)方程式(3)和(4)是與門(mén)的后向傳輸約束。
同理,所有類(lèi)型的一元門(mén)都可用相似方法得到?;蜷T(mén)的相應(yīng)約束被排列在下面,因這些約束是用在序貫的例子里。倒相器的約束也是很直觀的。方程式(5)和(6)是或門(mén)前向傳輸?shù)募s束,(7)和(8)是或門(mén)后向傳輸?shù)募s束C+1≥a+1+b+1(5)C+0≥max(a+0,b+0) (6)a-0≥b+1+c-0(7)a+0=b+0=c+0(8)對(duì)于一個(gè)異或門(mén)來(lái)說(shuō),原始測(cè)試計(jì)數(shù)技術(shù)并沒(méi)有尋訪各靈敏度和邏輯值(n+0,n+1)的傳輸。對(duì)于多個(gè)異或門(mén)來(lái)說(shuō),敏感計(jì)數(shù)(n+0/n+1)的不同組合可能在相同的輸入敏感計(jì)數(shù)的輸出引線上。但總的敏感值(n+0+n+1)在各不同組合里保持不變,并等于輸入引線間的最大的總敏感值。在根據(jù)本發(fā)明過(guò)程的測(cè)試計(jì)數(shù)傳輸中,總的測(cè)試計(jì)數(shù)在異或門(mén)輸出引線上被平分。故如(n+0+n+1)的最大值為+,則輸出引線上被傳輸?shù)臏y(cè)試計(jì)數(shù)被賦予數(shù)值(5/5)。注意圖5B。雖然其它組合也是可能的,但這個(gè)組合提供了非常滿意的結(jié)果。
利用測(cè)試計(jì)數(shù)過(guò)程,為需要測(cè)試的電路網(wǎng)絡(luò)中的各種節(jié)點(diǎn)推導(dǎo)出測(cè)試計(jì)數(shù)矩陣。為了便于說(shuō)明,可以假定所有“膠著”的故障都是要檢測(cè)的(即當(dāng)引線停留在零電平或一電平,只要電路是在正確地工作,就不管節(jié)點(diǎn)應(yīng)呈現(xiàn)什么電平)。在傳輸過(guò)程中,利用表達(dá)式(1)至(8)的約束,以及所提出的異或工具,一開(kāi)始就可以將1/1賦予網(wǎng)絡(luò)的各個(gè)輸入引線(指出膠著在0和膠著在1的故障或各輸入引線的1/1測(cè)試計(jì)數(shù))。測(cè)試計(jì)數(shù)既前向又后向地傳輸。通過(guò)例子,在圖10中解釋一種典型電路的測(cè)試計(jì)數(shù)矩陣,這些矩陣曾經(jīng)按前述的約束公式(1)至(8)加以推導(dǎo)。作為測(cè)試計(jì)數(shù)過(guò)程的結(jié)果(根據(jù)本發(fā)明的過(guò)程中稱(chēng)為T(mén)MA或可測(cè)試性測(cè)量分析),辨認(rèn)出電路中各節(jié)點(diǎn)的測(cè)試計(jì)數(shù),也辨認(rèn)出測(cè)試膠著值所需的輸入向量的總數(shù)。從圖10中負(fù)載“Z”上的測(cè)試計(jì)數(shù)5/2看出所需的向量總數(shù)是7,其中五個(gè)測(cè)試向量將產(chǎn)生一個(gè)零輸出,而二個(gè)測(cè)試向量則產(chǎn)生一個(gè)一輸出。傳輸測(cè)試計(jì)數(shù)的過(guò)程,導(dǎo)致圖10中說(shuō)明的測(cè)試計(jì)數(shù)矩陣類(lèi)型,在前述艾克斯和克里希拿墨提的論文中有更加全面的描述。根據(jù)本發(fā)明,還將測(cè)試計(jì)數(shù)矩陣信息進(jìn)一步句以利用,用枚舉法的測(cè)試產(chǎn)生確定測(cè)試向量,這將在下文更全面地描述。局部枚舉首先用于再匯聚扇出回路,全局枚舉則最后負(fù)責(zé)整個(gè)電路。
在測(cè)試生成過(guò)程中,由于有一個(gè)或多個(gè)下列的因素而使再匯聚扇出出現(xiàn)問(wèn)題(a)自掩蔽在分支上設(shè)置的敏感值可以被其它分支上設(shè)置的靈敏值掩蔽掉,使根部(stem)變得不靈敏。
(b)多通路敏感化在某些情況下,根部可能是敏感的,而所有分支則是鈍感的。
(c)冗余不論用什么過(guò)程,某些沿再匯聚路徑的故障可能都檢測(cè)不出來(lái)。
在處理測(cè)試生成期的再匯聚扇出期間,在這點(diǎn)引進(jìn)根部分析會(huì)是有幫助的。根部分析以分析真實(shí)電路中所過(guò)到的名種結(jié)構(gòu)來(lái)處理分支和根部(或公共輸入)的敏感值之間的關(guān)系。參考圖6,給下列名詞下定義以協(xié)助解釋根部分析D路徑一個(gè)扇出路徑,對(duì)分支和再匯聚點(diǎn)都敏感。要注意的是,分支上邏輯值的改變會(huì)引起再匯聚點(diǎn)(即再匯聚門(mén)的輸入引線)上邏輯值的改變。換句話說(shuō),D路徑往往是允許路徑,符號(hào)nD表示再匯聚扇出中D路徑的總數(shù)。
ND路徑一個(gè)扇出路徑,對(duì)分支是鈍感的,但對(duì)再匯聚點(diǎn)則是敏感的。要注意的是,分支上邏輯值的改變不會(huì)引起再匯聚點(diǎn)上邏輯值的改變。換句話說(shuō),ND路徑往往是禁止的路徑。符號(hào)nND表示再匯聚扇出中的ND路徑的總數(shù)。
U路徑一個(gè)扇出路徑,對(duì)分支和再匯聚點(diǎn)上都是鈍感和。要注意的是,U路徑可以是允許路徑,也可以是禁止路徑,而分支上的邏輯值的改變僅且僅當(dāng)路徑是允許時(shí),才會(huì)影響再匯聚點(diǎn)上邏輯值的改變。符號(hào)nu代表再匯聚扇出中U路徑的總數(shù)。
也要觀察到,對(duì)于一元門(mén)的輸入引線來(lái)說(shuō),敏感分布有三種可能性全都不是敏感的,只有一個(gè)是敏感的,或者全都是敏感的。對(duì)于異或門(mén)來(lái)說(shuō),要么全是敏感的,要么全都是不敏感的。
當(dāng)對(duì)再匯聚門(mén),縮寫(xiě)成RG,作上述觀察時(shí),再匯聚扇出根部S的敏感可以按表1所提出的分類(lèi)成六種可能的情況。在表1中,S+和S-分別代表敏感的和鈍感的根部?!安糠帧绷兄傅氖牵瘸龅脑賲R聚路徑說(shuō)明一子集再匯聚或RG的輸入引線。“全部”列指的是,所有RG的輸入引線都來(lái)自相同的扇出。
扇出根部和分支敏感度的傳輸一元RG 異或RG情況 nDnNDnu部分全部部分全部1 =0 =0 >0 S-S+當(dāng)且僅當(dāng) S-S-多路徑敏感化S-相反情況2 =0 >0 =0 S-S-S-S-3 =0 >0 >0 S-S-不賦值不賦值4 >0 =0 =0 S+S+S+當(dāng)且僅當(dāng) S+當(dāng)且內(nèi)當(dāng)nD是奇數(shù) nD是奇數(shù)S-相反情況 S-相反情況5 =1 =0 >0 S-當(dāng)且僅當(dāng) S-當(dāng)且僅當(dāng)某些u路徑 某些u路徑不賦值 不賦值是允許的 是允許的S+相反情況 S+相反情況6 >0 >0 =0 S+S+S-當(dāng)且僅當(dāng) S-當(dāng)且僅當(dāng)nD是偶數(shù) nD是偶數(shù)S+相反情況 S+相反情況表1 根部分析為了要用枚舉法進(jìn)行測(cè)試向量生成,也必須知道敏感驅(qū)動(dòng)和鈍感驅(qū)動(dòng)。參看圖7,圖中說(shuō)明了不同類(lèi)型的門(mén)電路的前向敏感驅(qū)動(dòng)。有圈號(hào)的輸入引線是“驅(qū)動(dòng)”引線,而全部未加圈號(hào)的引線則是“從動(dòng)”引線。例如,如果與門(mén)的驅(qū)動(dòng)線各自需是0+的話,則其它所有的從動(dòng)輸入引線必須置于1-,而從動(dòng)輸出引線必須為0+。敏感驅(qū)動(dòng)被用于確定各自所用的敏感值,以便形成測(cè)試向量。
就如同在測(cè)試計(jì)數(shù)的前向和后向傳輸?shù)那闆r一樣,也要用說(shuō)明后向敏感驅(qū)動(dòng)的圖8和說(shuō)明后向鈍感驅(qū)動(dòng)的圖9來(lái)利用前向和后向敏感驅(qū)動(dòng)。注意,不存在前向鈍感驅(qū)動(dòng)。下文用實(shí)例將更清楚地了解到不管是再匯聚扇出回路還是整個(gè)電路的選定輸入引線都稱(chēng)為驅(qū)動(dòng)引線,而該值則被“驅(qū)”向再匯聚門(mén)或公共輸出。于是,各自的敏感值和鈍感值后向地從動(dòng)。以全局枚舉法完成處理后,一些部分解答能將累積(和存儲(chǔ))起來(lái)以規(guī)定測(cè)試向量的最小可用數(shù)目的本性。
按本發(fā)明用枚舉法的測(cè)試生成舉處理,以“局部枚舉”開(kāi)始,將借助圖10至19的示意圖給以概念性的解釋。顯然,實(shí)際的處理是按電路的模擬在通用數(shù)字計(jì)算機(jī)完成的,但希望能理解該處理相對(duì)于典型例子的顯著特色。
如上指出,在使用而部枚舉法之前,迫切要調(diào)用TMA(包括公知的測(cè)試計(jì)數(shù)過(guò)程在內(nèi)的可測(cè)試性,測(cè)量分析器)以得到可測(cè)試性信息,即用于局部枚舉的測(cè)試計(jì)數(shù)矩陣。取得了例如圖10中說(shuō)明的已知電路的這種信息,為了方便,可把它指定為過(guò)程的步驟0。正如將會(huì)知道的,圖10的電路只表示門(mén)電路網(wǎng)絡(luò),并利用它作為集成電路構(gòu)成方式的簡(jiǎn)單例子,在這點(diǎn)上,本發(fā)明的這種處理法是可以加以應(yīng)用的。這種電路包括諸輸入端或節(jié)點(diǎn)a至f,一個(gè)共用的輸出端或節(jié)點(diǎn)Z,以及中間節(jié)點(diǎn)g、h、i、j、和k。輸入節(jié)點(diǎn)a和b被連到或非門(mén)G1,其輸出在節(jié)點(diǎn)g驅(qū)動(dòng)與門(mén)G4。同理,輸入節(jié)點(diǎn)c和d被連到或門(mén)G2,其輸出在節(jié)點(diǎn)h提供與門(mén)G4和G5的公輸入端h1和h2。與門(mén)G4和G5的輸出在節(jié)點(diǎn)i和j處驅(qū)動(dòng)與門(mén)G6,而門(mén)電路G6的輸出在節(jié)點(diǎn)k處為或門(mén)G7提供一個(gè)輸入,而G7驅(qū)動(dòng)輸出節(jié)點(diǎn)Z。輸入端e和f分別連到并驅(qū)動(dòng)與門(mén)G5和或門(mén)G7。
在圖10給出的電路例子中,說(shuō)明了整個(gè)電路在節(jié)點(diǎn)Z的唯一主輸出,但以后將了解到,對(duì)于更復(fù)雜的電路而言,網(wǎng)絡(luò)被要求的成錐形。見(jiàn)第14屆設(shè)計(jì)自動(dòng)化會(huì)議記錄(1977年6月,第479-485頁(yè))博托夫、弗朗斯和奧斯的文章“大邏輯網(wǎng)終用的測(cè)試生成”。對(duì)于每個(gè)圓錐體來(lái)說(shuō),建立了錐體中所有引線的測(cè)試計(jì)數(shù)矩陣。之后,將用最終枚舉法生成的所有錐體的向量重新集合或合并,以熟悉這種技術(shù)的人士所理解的方式產(chǎn)生出一套完整的測(cè)試組。
從節(jié)點(diǎn)h開(kāi)始,并包括以驅(qū)動(dòng)關(guān)系連到與門(mén)G6的與門(mén)G4和G5的電路,稱(chēng)為再匯聚扇出回路,其中的門(mén)電路G6是再匯聚門(mén),而節(jié)點(diǎn)h是根部。初始的測(cè)試計(jì)數(shù)過(guò)程(其結(jié)果在圖10中用測(cè)試計(jì)數(shù)矩陣作為范例)并不能精確處理再匯聚扇出。但測(cè)試計(jì)數(shù)過(guò)程為扇出回路的輸入引線也為扇出回路外的引線提供了初步的測(cè)試計(jì)數(shù)。特別是使用局部枚舉法以其端處被再征用的測(cè)試計(jì)數(shù)來(lái)重新存儲(chǔ)任一漏失的信息。對(duì)于一個(gè)扇出回路的局部枚舉法而言,要產(chǎn)生一組部分解答以顯示回路的傳輸性能。而對(duì)于那些其結(jié)局測(cè)試計(jì)數(shù)大于原始生成的測(cè)試計(jì)數(shù)的引線來(lái)說(shuō),要調(diào)節(jié)相關(guān)的測(cè)試計(jì)數(shù)大以反映新的重新存儲(chǔ)起來(lái)的信息。應(yīng)該了解,在有邏輯冗余的場(chǎng)合,某些故障永遠(yuǎn)也檢測(cè)不到。合理的過(guò)程結(jié)果是,制造一種已知電路是可能的不方便的。
局部枚舉法首先被用于節(jié)點(diǎn)h和k間的再匯聚扇出回路。為了解釋局部枚舉法,如圖10中說(shuō)明的相同電路,以及為了解釋全局枚舉用的相繼圖形都在圖11至19中重復(fù)出現(xiàn)。圖11被指定為這個(gè)回路的局部枚舉法的步驟1,回路中的節(jié)點(diǎn)h1采用了圖7中所示的前向敏感驅(qū)動(dòng)以及圖8和9的后向敏感和鈍感驅(qū)動(dòng)對(duì)0+(帶圈號(hào))進(jìn)行枚舉。引線h1上的敏感值0+被向前驅(qū)動(dòng)到再匯聚門(mén)G6,并后向驅(qū)動(dòng),導(dǎo)致在附有扇出回路的圖11中的引線上所注明的敏感和鈍感值。使用這個(gè)過(guò)程,可看出引線h1和h2有一個(gè)矛盾,因而h1=0+被認(rèn)為是冗余的。
圖12是局部枚舉的步驟2,該過(guò)程枚舉了h2=0+。再次利用圖7至9的敏感和鈍感驅(qū)動(dòng),在各有關(guān)再匯聚扇出回路的引線上確定出各自的敏感和鈍感值。h1和h2又再次有一個(gè)矛盾,因而h2=0+是冗余的。
在某些例子中,這樣一種再匯聚扇出回路可能是不可測(cè)試的。但是,當(dāng)且僅當(dāng)其分支和相鄰引線是完全可測(cè)(即0+和1+的存在可以驗(yàn)證)時(shí),一個(gè)再匯聚扇出回路才是完全可測(cè)的。一個(gè)未被檢測(cè)出的故障一旦被標(biāo)出位置來(lái),所有等值的故障(如有的話)也就可以定位了。
在冗余的情況中,敏感值的不存在并不意味是不可檢測(cè)的根部。圖11和12中的步驟1和2指出h1=0+和h2=0+并不存在。但多路徑敏感的可能性仍能使根部h=0+是可檢測(cè)的。參看圖13,即局部枚舉處理例子的步驟3,當(dāng)且僅當(dāng)再匯聚路徑說(shuō)明了再匯聚門(mén)的所有輸入引線而且它們?nèi)际窃试S的u路徑時(shí),多路徑敏感條件才可能被滿足。(注意圖6和根部分析用的表1,特別是情況1)圖13中的枚舉法步驟3滿足這些條件,因而多路徑敏感化可以使根部h=0+。
因此,每條分支上0+和1+的存在首先被驗(yàn)證以提供冗余的早期征兆。所有沿再匯聚路徑的相鄰引線也必須對(duì)0+和1+的存在加以驗(yàn)證。在冗余的情況下,有可能確定根部的敏感是不可檢測(cè)的,但另一方面,可能確定多路徑的敏化。
進(jìn)而到圖14,局部枚舉法的步驟4,于是枚舉h1=1+。可以看出,不會(huì)像導(dǎo)致圖14中注明的敏感值那樣,從敏感驅(qū)動(dòng)產(chǎn)生出矛盾。接下去枚舉圖15中即g=0+的步驟5的節(jié)點(diǎn)g。在圖16即步驟6中,用與再匯聚扇出回路有關(guān)的各引線上所指出的結(jié)果枚舉e=0+。
在圖17即步驟7中,從步驟4,如圖10說(shuō)明那樣,用與節(jié)點(diǎn)h相關(guān)測(cè)試計(jì)數(shù)矩陣復(fù)制部分解答。即根據(jù)測(cè)試計(jì)數(shù)矩陣,節(jié)點(diǎn)h上敏感值1+的測(cè)試計(jì)數(shù)已經(jīng)在步驟1至6中加以累積了。
同理,在步驟8即圖18中,從步驟5即圖15得到的部分解答被復(fù)制以滿足節(jié)點(diǎn)g上的額外要求,因?yàn)閷?huì)看出,圖10中節(jié)點(diǎn)g的測(cè)試計(jì)數(shù)矩陣指出了0+敏感值的兩個(gè)計(jì)數(shù)。
通過(guò)圖18的步驟8,在再匯聚扇出回路的各分支和其它輸入處使用了各種敏感驅(qū)動(dòng),一直到回路的測(cè)試計(jì)數(shù)矩陣數(shù)目滿足到可能將冗余考慮進(jìn)去的程度為止。與步驟有關(guān)的解答,即有關(guān)的敏感與鈍感值被存儲(chǔ)起來(lái)。
在圖19中,再匯聚扇出回路的測(cè)試計(jì)數(shù)矩陣是以冗余計(jì)數(shù)量0來(lái)調(diào)整的。重復(fù)TMA或測(cè)試計(jì)數(shù)的前向傳輸和后向傳輸,因此,要注意在引線h1和h2上的測(cè)試計(jì)數(shù),敏悉值0+被置為0。相應(yīng)地使用先前解釋過(guò)的在關(guān)系式(1)至(8)中所提出的約束、在第二輪的TMA調(diào)整余下的測(cè)試計(jì)數(shù)矩陣。
在這里用例子來(lái)說(shuō)明的電路中,只出現(xiàn)了一個(gè)再匯聚扇出回路。當(dāng)然,如果碰到不止一個(gè)這樣的回路,就要為各個(gè)回路作局部枚舉。如果回路位于另一個(gè)回路里,就要首先為最里面的回路進(jìn)行局部枚舉。
在局部枚舉和第二輪TMA(圖19)后,要進(jìn)行全局枚舉,以便在輸入端處供應(yīng)所需的測(cè)試向量來(lái)滿足由圖19中的第二輪TMA所引起的測(cè)試計(jì)數(shù)矩陣的測(cè)試計(jì)數(shù)。在圖20至26中說(shuō)明了電路的全局枚舉法。
參看圖20(全部過(guò)程的步驟10),從C=O+驅(qū)動(dòng)(按圖7所說(shuō)明的敏感驅(qū)動(dòng))電路,c和d輸入離開(kāi)Z處的主輸出最遠(yuǎn)。按圖7-9說(shuō)明的驅(qū)動(dòng),向前而又后向地驅(qū)動(dòng)這個(gè)敏感值,在各節(jié)點(diǎn)導(dǎo)致如圖20說(shuō)明的數(shù)值。因?yàn)楣?jié)點(diǎn)h有一敏感值0+,故部分地為再匯聚扇出回路選用了從步驟3(圖13)得來(lái)的部分解答。電路中的其它節(jié)點(diǎn)都賦予符合敏感和鈍感驅(qū)動(dòng)的數(shù)值。
在圖21的步驟11中,我們從c=1+驅(qū)動(dòng),并為扇出區(qū)選用來(lái)自步驟4的部分解答。同理,在步驟12(圖22)中,我們從d=1+驅(qū)動(dòng),并為扇出區(qū)選用來(lái)自步驟7的部分解答,而在步驟13(圖23)中,我們從a=1+驅(qū)動(dòng),并選用來(lái)自步驟5的部分解答。在步驟14(圖24)中,我們從b=1+驅(qū)動(dòng),并為扇出區(qū)選用來(lái)自步驟8的部分解答。在步驟15(圖25)中,驅(qū)動(dòng)是從e=0+開(kāi)始的,并選用來(lái)自步驟6的部分解答。在步驟16中,驅(qū)動(dòng)是從f=1+開(kāi)始的,我們抄錄來(lái)自步驟12(圖22)的解答,但以所有敏感改變?yōu)殁g感來(lái)滿足K=0-。
由步驟10至16(圖20至26)所表示的部分解答被存進(jìn)存儲(chǔ)器里,即在一個(gè)分開(kāi)的選定輸入驅(qū)動(dòng)的各組中,各節(jié)點(diǎn)處的敏感和鈍感被適當(dāng)?shù)卮孢M(jìn)存儲(chǔ)器里。必須注意的是,各種部分解答(表示在圖20至26中)滿足圖19中所提出的代表第二輪TMA的測(cè)試計(jì)數(shù)矩陣。各種逐次所選驅(qū)動(dòng),它們或滿足測(cè)試計(jì)數(shù),或驅(qū)動(dòng)其它引線以滿足測(cè)試計(jì)數(shù),一直到總測(cè)試計(jì)數(shù)累積到大體上是部分解答為止。在每一情況下,并不需要以每一個(gè)用測(cè)試計(jì)數(shù)矩陣所代表的敏感和鈍感值去驅(qū)動(dòng)每一個(gè)具體的輸入節(jié)點(diǎn),因?yàn)?,正如從上面參考圖可以看出的那樣,常以一個(gè)敏感值或鈍感值的驅(qū)動(dòng)決定其它輸入節(jié)點(diǎn)的敏感或鈍感值,這在累積中將滿足測(cè)試計(jì)數(shù)。
圖27中說(shuō)明了先前過(guò)程的全套測(cè)試組合,即圖中重直線左側(cè)處的七個(gè)測(cè)試向量。前此利用的敏感驅(qū)動(dòng)再次用加圈號(hào)說(shuō)明,以方便比較。
參看圖27的測(cè)試組合,當(dāng)加上給定的輸入測(cè)試向量(在圖27的左側(cè))時(shí),將在特殊節(jié)點(diǎn)出現(xiàn)的總敏感和鈍感值應(yīng)對(duì)應(yīng)于圖19中的該節(jié)點(diǎn)的測(cè)試計(jì)數(shù)。例如,根據(jù)圖19中節(jié)點(diǎn)j的測(cè)試計(jì)數(shù)矩陣,節(jié)點(diǎn)j應(yīng)賦予0+一次,1+二次,0-一次,1-二次。從圖27的列j可見(jiàn),這些要求在所推導(dǎo)的測(cè)試組合里是能滿足的。在該測(cè)試計(jì)數(shù)的基礎(chǔ)上,無(wú)需常規(guī)的故障模擬就可知道故障復(fù)蓋。注意,主輸出引線Z將至少取用0+四次,1+三次,換句話說(shuō),這證實(shí)了有七個(gè)輸入向量,采用了測(cè)試所說(shuō)明的電路。
這種所描述的測(cè)試生成法于是直接用可測(cè)試性信息以建立測(cè)試向量。各引線上的測(cè)試計(jì)數(shù)矩陣的物理意義將加以解釋?zhuān)员阋悦舾泻外g感數(shù)來(lái)提供該引線上的需要。通過(guò)在電路中前向地和后向地驅(qū)動(dòng)各引線處的敏感值來(lái)供應(yīng)正確的測(cè)試向量組合,以便以通常形成一個(gè)被存儲(chǔ)的規(guī)定測(cè)試向量的部分解答,為其余網(wǎng)絡(luò)提供敏感和鈍感值x。包括測(cè)試向量在內(nèi)的部分解答適于一次存儲(chǔ)一個(gè),這種處理要重復(fù)進(jìn)行直到所有的測(cè)試計(jì)數(shù)全都用盡為止。結(jié)果,得到一組滿足具體需要的向量。以這種方式出現(xiàn)的測(cè)試生成包括一種獲得已知是存在的解答的方法,和先前大多數(shù)測(cè)試生成算法對(duì)照,后者是盲目地尋找解答的。
雖然有人提議上述部分解答要序貫地加以引導(dǎo),也要注意各個(gè)枚舉處理(局部的和全局的)是彼此獨(dú)立的。換句話說(shuō),這方法適于并行處理以得到各種測(cè)試向量,如果是這樣要求的話。
現(xiàn)要參看圖28至32,它們包括用于執(zhí)行局部枚舉的軟件的流程說(shuō)明。就如我們記得的,局部枚舉參與為再匯聚扇出回路提供部分解答,并代表全部枚舉處理的第一部分。即,一個(gè)電路里的再匯聚扇出回路的部分解答是在最終或全局枚舉之前進(jìn)行的。
首先參看圖28,如方框40所提出的,處理是以未枚舉的最里的再匯聚扇出回路開(kāi)始的。于是,利用電路本身計(jì)算機(jī)模擬,選定一個(gè)最里的再匯聚扇出回路。程序然后前進(jìn)至圖28中方框42所指出的例行程序“枚舉這扇出回路的傳輸條件”,這種例行程序在圖29中的P1和P2間還要再加以說(shuō)明。參看圖29,看出程序流指向圖30中標(biāo)志P3-P4間的例行程序“冗余檢查”44。
參看圖30,判定方框46進(jìn)入到確定至今是否產(chǎn)生過(guò)任何的部分解答。就第一輪來(lái)說(shuō),結(jié)果一般是“沒(méi)有”。但如果某些部分解答因要說(shuō)明某些與特殊再匯聚扇出回路有關(guān)的節(jié)點(diǎn)的測(cè)試計(jì)數(shù)而已用公式表示過(guò),則從所有相應(yīng)計(jì)數(shù)減去部分解答。例如,參看圖5A的測(cè)試計(jì)數(shù)矩陣,如果已知節(jié)點(diǎn)的一個(gè)部分解答包括敏感值1+,則圖5A的矩陣中行上面的數(shù)字1會(huì)暫時(shí)減低至零,這表明在這個(gè)范圍內(nèi)已經(jīng)由這個(gè)部分解答滿足了測(cè)試計(jì)數(shù)矩陣。
在任何一種情況下,接下去程序流都指向判定方框58,在這里確定出那些從公共根部分支出去的引線是否枚舉過(guò)。如果所有的分支都沒(méi)有枚舉過(guò),就在方框60選擇一未加枚舉的分支作為每個(gè)圖7的敏感驅(qū)動(dòng)的“驅(qū)動(dòng)”引線。如果所有分支都已枚舉過(guò),則進(jìn)入判定方框62以確定所有相鄰引線是否都已枚舉過(guò)。再匯聚扇出回路的相鄰引線,包括例如圖10中的引線g或e。如果答案再次為是,則返回到圖29的P4處。如果答案是否,則在圖30的方框64中選擇一個(gè)未枚舉過(guò)的相鄰引線作為如圖7中所說(shuō)明的敏感驅(qū)動(dòng)的驅(qū)動(dòng)引線。一般說(shuō)來(lái),輸入引線是在方框60和64,以最遠(yuǎn)的分支,即離開(kāi)再匯聚門(mén)最遠(yuǎn)的分支(或相鄰引線)開(kāi)始來(lái)選擇輸入引線的。然后,逐步接近應(yīng)用的靈敏度值(目前它尚未發(fā)現(xiàn)和需用以滿足特殊驅(qū)動(dòng)引線上的測(cè)試計(jì)數(shù)),以選擇較近再匯聚門(mén)的引線。在這些離再匯聚門(mén)具有相同距離的引線中,以隨意的次序或連續(xù)的次序的方式取用這種輸入。
在圖30的點(diǎn)p5處,程序前進(jìn)到“驅(qū)動(dòng)引線上敏感值的回路枚舉”即點(diǎn)P5和P6間圖31中66的例行程序。參看圖31,程序流再指向圖32中的點(diǎn)P7-P8間的子程序“朝再匯聚門(mén)敏感性前向驅(qū)動(dòng)”68。
現(xiàn)參看圖32,在方框70里,選定的驅(qū)動(dòng)引線被置于未曾枚舉的敏感值,即0+或1+。在判定方框72中,要作出確定這個(gè)驅(qū)動(dòng)引線即在再匯聚扇出回路的端點(diǎn)處是否是一個(gè)再匯聚點(diǎn),如果答案是是,則要經(jīng)點(diǎn)P8回到圖31的程序。另一方面,如果答案是否,則進(jìn)入判定方框74。顯然,每個(gè)圖7的前向敏感驅(qū)動(dòng)要考慮的門(mén)電路的輸入開(kāi)始從門(mén)到門(mén)前進(jìn),直到到達(dá)再匯聚點(diǎn)為止。在判定方框74中要確定驅(qū)動(dòng)引線是否是異或門(mén)一元門(mén)或內(nèi)扇出回路的一個(gè)輸入。在第三種情中,要考慮到本輪的例行程序可能是為擁有一個(gè)已經(jīng)枚舉過(guò)的內(nèi)回路的再匯聚扇出回路的例行程序,然后在方框76中,在該處所獲得的并被存儲(chǔ)的適用的部分解答,如前面指出的,例如在圖20至25加以選用。所選用的部分解答是一種符合于節(jié)點(diǎn)直到所說(shuō)內(nèi)回路的現(xiàn)有解答或處理的部分解答。然后在方框78中,取決于這種部分解答的內(nèi)回路輸出被選擇成新的驅(qū)動(dòng)引線。在方框78之后,程序前進(jìn)到方框88,其中的新驅(qū)動(dòng)引線的敏感性是按照這種部分解答來(lái)確定的。
回到判定方框74,如果要驅(qū)動(dòng)的門(mén)電路類(lèi)型是一元門(mén)(它是“與”門(mén)、“或”、“與非”、“或非”或“非”邏輯元件),就要在關(guān)于驅(qū)動(dòng)引線值的判定方框80中做出確定,即它是否是“控制性的”或“非控制性的”值。一個(gè)控制性的驅(qū)動(dòng)引線值是唯一確定門(mén)電路輸出的一個(gè)邏輯值。因此,例如對(duì)一個(gè)與門(mén)來(lái)說(shuō),在輸入處的0+敏感性對(duì)所有其它(如與門(mén))敏感輸入都是1-時(shí),才是控制性的敏感。如果該邏輯值不是唯一地確定門(mén)電路的輸出,則這個(gè)驅(qū)動(dòng)引線值是非控制性的。因此,如果與門(mén)的所有其它敏感輸入對(duì)一個(gè)與門(mén)來(lái)說(shuō)都是1+時(shí),則輸入到與門(mén)的1+就是非控制性的。在方框82中,如果驅(qū)動(dòng)引線值是控制性的,則所有其它輸入都要設(shè)定為非控制性和鈍感的輸入。根據(jù)方框84,如果驅(qū)動(dòng)引線值是非控制性的,則所有其它輸入都要設(shè)定為非控制性和敏感的輸入。于是在方框86中,門(mén)電路的輸出被指定為新的驅(qū)動(dòng)引線。在方框86后,程序前進(jìn)到方框88,其中新驅(qū)動(dòng)引線的敏感性是按照?qǐng)D7指出的向前敏感驅(qū)動(dòng)來(lái)確定的。
如果按判定方框74確定的門(mén)電路類(lèi)型是一個(gè)異或門(mén),程序流就到達(dá)方框90,其中路徑(假定不止一個(gè))中最后一個(gè)異或門(mén)(或者如只有一個(gè)異或門(mén)時(shí)的唯一異或門(mén))的輸出成為新的驅(qū)動(dòng)引線。然后在方框92中,這種驅(qū)動(dòng)引線的值,對(duì)一個(gè)部分解答來(lái)說(shuō)設(shè)定為0+,而對(duì)另一個(gè)部分解答來(lái)說(shuō)設(shè)定為1+,故提供了兩個(gè)截然不同的解答。在方框88或方框92之后,為確定驅(qū)動(dòng)引線是否是再匯聚點(diǎn)而返回判定方框72。當(dāng)達(dá)到再匯聚點(diǎn)時(shí),程序經(jīng)標(biāo)志P8回到圖31的程序而進(jìn)入方框94。根據(jù)方框94,以后向敏感和鈍感驅(qū)動(dòng)(圖8和9)來(lái)證明所有分支路徑上的敏感值的含意,從而確定朝再匯聚扇出回路輸入側(cè)的各種其它節(jié)點(diǎn)上的敏感值。在方框96中,如果檢測(cè)出一個(gè)矛盾(例如連同圖11和12所敘述的例子),則在方框98宣告扇出回路是冗余的。如果沒(méi)有矛盾,則在方框100中用表1指出的根部分析,完成根部敏感性的確定,且將所有新的枚舉值如方框102所提出的作為一個(gè)部分解答存儲(chǔ)起來(lái)。在方框98或方框102之后,經(jīng)點(diǎn)P6而返回圖30的程序。然后根據(jù)圖30,在所有分支和相鄰引線都枚舉(在步驟58和62中)后,回到圖29的程序P4。下面要敘述的是,在判定方框104中,(從方框98的結(jié)果)要作出確定扇出回路是不是冗余的。如果是,在方框106中,如圖19所說(shuō)明的那樣,以所有冗余計(jì)數(shù)都置于零來(lái)重新運(yùn)行TMA。然后回到點(diǎn)P3,而且不需要選擇會(huì)導(dǎo)致重復(fù)確定冗余的再匯聚扇出回路敏感值,就可以重新運(yùn)行過(guò)程。多路徑的敏感化也可以按根部分析(表1)來(lái)選擇。如果判定方框104的確定是,扇出回路不是冗余的,則程序流通到方框108,它因所有負(fù)計(jì)數(shù)都加以它們的補(bǔ)償值而適于重新運(yùn)行TMA。這個(gè)步驟的必要,是因?yàn)樵惠喌腡MA,例如如圖10所描述的是不精確的,并且作為從方框48中計(jì)數(shù)演繹的結(jié)果,會(huì)得到一或多個(gè)負(fù)計(jì)數(shù)。于是計(jì)數(shù)要加以改正以提供正計(jì)數(shù)。
在方框108后,程序回到圖28的點(diǎn)P2處和判定方框110,方框110需判定是否存在有任一個(gè)再匯聚扇出回路,其中嵌套有現(xiàn)有的再匯聚扇出回路。如果情況確是這樣,則模擬要用于方框112中的外扇出回路,而整個(gè)過(guò)程要為該外扇出回路重復(fù)。如果沒(méi)有這種外扇出回路,程序就前進(jìn)到方框114,以確定在研究中的并不擁有現(xiàn)有扇出回路的電路中是否存在另一個(gè)未枚舉的再匯聚扇出回路。如果存在有尚未枚舉的另一個(gè)再匯聚扇出回路,則要在方框116中選擇這種回路而回到方框40。如果沒(méi)有其它再匯聚扇出回路,則結(jié)束程序。
為了進(jìn)行全局枚舉,可遵循基本上相同的程序,自然也無(wú)需從最里的回路等等開(kāi)始。反而,要考慮的是最初的輸入和主輸出之間的整個(gè)電路,同時(shí)按前述方法導(dǎo)出規(guī)定輸入向量的部分解答。此外,如果這種重新運(yùn)行需要遵循全局枚舉的話,全局枚舉處理就以圖19的重新運(yùn)行TMA開(kāi)始。當(dāng)然,方框72將參照錐體的主輸出而不參照再匯聚點(diǎn)。在后向驅(qū)動(dòng)或“后向追蹤”中,如輸出引線是敏感的,而且如果門(mén)電路是再匯聚門(mén),則選擇從局部枚舉得到的部分解答。如果門(mén)電路不是再匯聚門(mén)但輸出引線是敏感的,則要進(jìn)行后向敏感驅(qū)動(dòng)并減縮測(cè)試計(jì)數(shù)。如果門(mén)電路是一個(gè)再匯聚門(mén)且輸出引線是鈍感的,則要選擇從局部枚舉得到的部分解答。如果門(mén)電路不是一個(gè)再匯聚門(mén)且輸出引線也不是敏感的,則要完成后向鈍感驅(qū)動(dòng)。如果輸出是0-(對(duì)于一與門(mén)來(lái)說(shuō))或1-(對(duì)于一或門(mén)來(lái)說(shuō)),則什么也不用做。測(cè)試計(jì)數(shù)是減量的。如果在后向追蹤中有含糊不清處,即多于一組的可能的輸入敏感值,則要選出一組能滿足測(cè)試計(jì)數(shù)。
完整的處理算法可如下形式化。粗體字代表子程序調(diào)用,斜體字代表電路引線或內(nèi)變量。鑒于先前已有描述,這些算法和所包括的注釋一起基本上是顯然的。
程序測(cè)試-生成(){
預(yù)處理();
全局枚舉();
后處理();
}過(guò)程預(yù)處理(){劃分網(wǎng)絡(luò)成錐體;
對(duì)于每一錐體{對(duì)每一個(gè)輸入引線a{開(kāi)始測(cè)試計(jì)數(shù)矩陣;
從主輸出計(jì)算其所測(cè)深度}當(dāng)測(cè)試計(jì)數(shù)矩陣是不穩(wěn)定時(shí){前向傳輸();
后向傳輸();
}如有任一個(gè)再匯聚扇出則作扇出處理();
}過(guò)程前進(jìn)_傳輸();
{從主輸入前向傳輸矩陣至主輸出;
}過(guò)程后向_傳輸();
{從主輸出后向傳輸矩陣至主輸入;
}過(guò)程后處理();
{合并不同錐體所產(chǎn)生的子向量;
}過(guò)程扇出_處理(){對(duì)每群有關(guān)的再匯聚扇出回路{/**從最里一個(gè)回路開(kāi)始*遞歸算出扇出回路條件,*/從最里回路至最外回路循環(huán){局部_枚舉();
如測(cè)試計(jì)數(shù)有改變或有冗余存在則重新調(diào)用TMA以精煉測(cè)試計(jì)數(shù)矩陣;
}}}過(guò)程局部_枚舉(){從最深的分支到最淺的分支(從P.0.測(cè)量起){/**在分支上驗(yàn)證靈敏1和0的存在*/對(duì)于e_val=0+和1+{如e_val未在分支上枚舉則{以前向和后向敏感/鈍感驅(qū)動(dòng)驗(yàn)證e_val的存在;如有可用的,就利用從內(nèi)回路得到的部分解答;如沒(méi)有矛盾則{完成根部分析以確定根部邏輯和敏感值;記錄枚舉作為一部分解答;
}
此外說(shuō)明未檢測(cè)的分支故障和等價(jià)故障;
}}}/**如果通過(guò)敏化任一分支還不能敏化*根部,通過(guò)多路徑敏化,根部敏化仍有*可能;
*/如在根部上還未枚舉0+或1+則{檢查多路徑敏化的可能性;
如多路徑敏化失敗則說(shuō)明根部故障是不可檢測(cè)的;
否則記錄枚舉作為部分解答;
}/**沿所有再匯聚路徑枚舉所有相鄰的引線。
*/從最深的相鄰引線至最淺相鄰引線{對(duì)于e_val=0+和1+{如e_val在曾在引線上枚舉則
{以前向和后向驅(qū)動(dòng)邏輯及敏感值在引線上驗(yàn)證e_val的存在,如有可能就利用從回路得到的部分解答;
如果沒(méi)有矛盾則記錄枚舉作為一個(gè)部分解答;
否則說(shuō)明引線故障和等值故障是不可檢測(cè)的;
}}}/**如果用局部枚舉建立的傳輸條件(部*分解答)不能從前級(jí)滿足所有的需要,就復(fù)*制某些現(xiàn)有的部分解答以滿足那些未被滿*足的需要;
*/如根部和任一相鄰引線的枚舉數(shù)比相應(yīng)的敏感測(cè)試計(jì)數(shù)少,則復(fù)制現(xiàn)有部分解答以滿足其余測(cè)試需要;
}過(guò)程全局_枚舉(){預(yù)定所有引線為“未置”;
對(duì)各最深的非零敏感測(cè)試計(jì)數(shù)的主輸入{如敏感測(cè)試計(jì)數(shù)是對(duì)0+而言的則設(shè)輸入引線至0+;
否則設(shè)輸入引線至1+;
給主輸入引線記為“置”;
將測(cè)試計(jì)數(shù)減1;
現(xiàn)行_引線=該主輸入引線當(dāng)現(xiàn)行_引線<>主輸出引線;
{如下一個(gè)門(mén)電路是一個(gè)再匯聚扇出則取一適用的部分解答;
否則完成前后敏感驅(qū)動(dòng);
給所有有關(guān)引線記為“置”;
減少現(xiàn)行門(mén)的輸出和其它輸入的測(cè)試計(jì)數(shù);
現(xiàn)行_引線=門(mén)電路的輸出引線;
}}對(duì)于有“置”輸出和“未置”輸入{后向追蹤()記所有關(guān)系引線為“置”;
}}}過(guò)程后向追蹤(){如輸出引線是靈敏的則如門(mén)電路是再匯聚門(mén)選出一適用的部分解答;
否則{完成后向靈敏性驅(qū)動(dòng);
如有模糊不清,檢查測(cè)試計(jì)數(shù);
減少所有輸入上的測(cè)試計(jì)數(shù)。
}否則,如門(mén)電路是一個(gè)再匯聚門(mén),則選出一適用的部分解答;
否則{完成后向鈍度驅(qū)動(dòng);
如有模糊不清,檢查測(cè)試計(jì)數(shù);
輸出為0(對(duì)與門(mén)來(lái)說(shuō))或1(對(duì)或門(mén)來(lái)說(shuō)),則什么也不用做;或減少輸入上的測(cè)試計(jì)數(shù)}}在展示了和敘述了本發(fā)明的一個(gè)最佳實(shí)施例的同時(shí),對(duì)于那些熟悉這種技術(shù)的人士來(lái)說(shuō),顯然可以作出許多改變和改進(jìn)而無(wú)需在較大方面偏離本發(fā)明。因而,所附上的權(quán)利要求
是要包括屬于本發(fā)明真實(shí)精神和領(lǐng)域內(nèi)的所有這種改變和改進(jìn)。
權(quán)利要求
1.一種用于測(cè)試一個(gè)集成電路網(wǎng)絡(luò)的一組測(cè)試向量的確定方法,所說(shuō)集成電路網(wǎng)絡(luò)包括多個(gè)門(mén)電路,門(mén)電路被互連在包括所說(shuō)集成電路網(wǎng)絡(luò)的輸入和輸端的節(jié)點(diǎn)處,這種方法用以揭露所說(shuō)網(wǎng)絡(luò)中的預(yù)定種類(lèi)的故障,其特征在于下列步驟根據(jù)一種測(cè)試計(jì)數(shù)過(guò)程測(cè)量所說(shuō)集成電路網(wǎng)絡(luò)的可測(cè)試性,這個(gè)過(guò)程包括通過(guò)該網(wǎng)絡(luò)的介入門(mén)電路從輸入端前向至主輸出端又后向返回到所說(shuō)輸入端的敏感測(cè)試計(jì)數(shù)的傳輸,以便為包括所說(shuō)輸入和輸出端的所說(shuō)網(wǎng)絡(luò)節(jié)點(diǎn)提供測(cè)試計(jì)數(shù)矩陣,通過(guò)連續(xù)多次從所說(shuō)輸入端處的測(cè)試計(jì)數(shù)矩陣前向驅(qū)動(dòng)各個(gè)敏感值至一所說(shuō)輸出端又后向返回到所說(shuō)輸入端,從所說(shuō)矩陣枚舉測(cè)試計(jì)數(shù),以便在所說(shuō)節(jié)點(diǎn)累積為所說(shuō)矩陣所敘述的測(cè)試計(jì)數(shù),以及分開(kāi)存儲(chǔ)一組敏感值,所說(shuō)輸入端每一次都被驅(qū)動(dòng)到這些敏感值,各組都包括所說(shuō)網(wǎng)絡(luò)的測(cè)試向量。
2.根據(jù)權(quán)利要求
1的方法其特征在于,枚舉測(cè)試計(jì)數(shù)包括首先為再匯聚扇出回路局部地枚舉敏感值,以確定扇出回路根部的敏感性,然后為其余所說(shuō)電路網(wǎng)絡(luò)全局地枚舉敏感值。
3.一種用于測(cè)試一個(gè)集成電路網(wǎng)絡(luò)的一群測(cè)試向量的確定方法,所說(shuō)集成電路網(wǎng)絡(luò)包括多個(gè)門(mén)電路,門(mén)電路被互連在包括所說(shuō)集成電路網(wǎng)絡(luò)的輸入和輸出端節(jié)點(diǎn)處,這種方法的特征在于下列步驟以一測(cè)試計(jì)數(shù)過(guò)程測(cè)量電路網(wǎng)絡(luò)的可測(cè)試性,以便為網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)提供測(cè)試計(jì)數(shù),以及多次枚舉各個(gè)敏感值以滿足所說(shuō)測(cè)試計(jì)數(shù),每次都為測(cè)試所說(shuō)電路網(wǎng)絡(luò)規(guī)定一輸入向量,每次都包括根據(jù)出現(xiàn)在被驅(qū)動(dòng)的相鄰引線上敏感性的邏輯確定通過(guò)所說(shuō)網(wǎng)絡(luò)前向地和后向地驅(qū)動(dòng)一個(gè)敏感值。
4.根據(jù)權(quán)利要求
3的方法,其特點(diǎn)在于所說(shuō)測(cè)試計(jì)數(shù)過(guò)程包括按已知約束在所說(shuō)網(wǎng)絡(luò)中傳輸測(cè)試值。
5.一種為一個(gè)集成電路網(wǎng)絡(luò)的一群測(cè)試向量的確定方法,所說(shuō)集成電路網(wǎng)包括多個(gè)門(mén)電路,門(mén)電路被互連在包括所說(shuō)集成電路網(wǎng)絡(luò)的輸入和輸出端的節(jié)點(diǎn)處,這種方法用以揭露所說(shuō)網(wǎng)絡(luò)中的預(yù)定種類(lèi)的故障,其包括測(cè)試計(jì)數(shù)的可測(cè)試性信息對(duì)所說(shuō)網(wǎng)絡(luò)來(lái)說(shuō)是已知的,所說(shuō)方法的特征包括在所說(shuō)網(wǎng)絡(luò)中,根據(jù)邏輯確定從輸入端前向驅(qū)動(dòng)各自的敏感值至一輸出端,以及在所說(shuō)網(wǎng)絡(luò)中,根據(jù)邏輯確定后向驅(qū)動(dòng)各自的敏感和鈍感值直到所說(shuō)測(cè)試計(jì)數(shù)被滿足為止,在所說(shuō)輸入端上的敏感和鈍感值作為包括所說(shuō)網(wǎng)絡(luò)的測(cè)試向量的所說(shuō)過(guò)程的結(jié)果。
專(zhuān)利摘要
一種用以提供適用于測(cè)試超大規(guī)模集成電路器件的測(cè)試向量方法,包括測(cè)量可測(cè)試性的步驟,它應(yīng)用測(cè)試計(jì)數(shù)過(guò)程以提供多個(gè)測(cè)試計(jì)數(shù)矩陣。然后從輸入端處開(kāi)始通過(guò)電路前向地和后向地驅(qū)動(dòng)各自的敏感值,來(lái)枚舉敏感值,直到累積到所需測(cè)試計(jì)數(shù)為止。枚舉法規(guī)定的測(cè)試向量能測(cè)試實(shí)際的電路。如果電路包括再匯聚扇出回路,則這些回路在隨后的全局枚舉期間首先被枚舉以提供所采用的部分解答。
文檔編號(hào)G01R31/3183GK86107798SQ86107798
公開(kāi)日1987年5月20日 申請(qǐng)日期1986年11月15日
發(fā)明者安吉洛·C·J·洪, 弗朗西斯·C·王 申請(qǐng)人:特克特朗尼克公司導(dǎo)出引文BiBTeX, EndNote, RefMan