本發(fā)明涉及一種數(shù)字組合邏輯電路短接故障的檢測方法,尤其是涉及一種數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的檢測方法。
背景技術(shù):
隨著集成電路集成度的不斷提高和集成電路功能的不斷增加,集成電路內(nèi)部的連接變得越來越復(fù)雜,使得集成電路生產(chǎn)過程中的連接錯誤變得不可避免,從而導(dǎo)致集成電路邏輯功能錯誤。因而電路故障測試已成為集成電路設(shè)計(jì)與生成過程中一個非常重要的內(nèi)容。由于現(xiàn)有的集成電路的結(jié)構(gòu)非常復(fù)雜,因此人工手動完成一個電路故障測試已經(jīng)變得越來越不可能,而更多的是借助計(jì)算機(jī)來完成電路故障測試工作,并已經(jīng)成為電子設(shè)計(jì)自動化(eda,electronicsdesignautomation)中的一個重要內(nèi)容。在電路故障測試中,可以借助計(jì)算機(jī)生成相應(yīng)的測試輸入,這些測試輸入作用在待測集成電路的輸入端,然后通過比對實(shí)際輸出與預(yù)想中的設(shè)計(jì)結(jié)果的差別來判斷集成電路是否存在邏輯功能錯誤。
以兩個數(shù)字組合邏輯電路輸出發(fā)生短接,且短接結(jié)果為線“或”的短接故障檢測為例。圖1給出了兩個數(shù)字組合邏輯電路輸出發(fā)生線“或”短接的示意圖,圖1中的兩個方塊表示兩個數(shù)字組合邏輯電路,這兩個數(shù)字組合邏輯電路的邏輯功能分別用f(x)和g(x)表示,f(x)的輸出用f表示,g(x)的輸出用g表示,這兩個數(shù)字組合邏輯電路的n(n≥1)個輸入變量集合用x表示,圖1中的虛框表示因封裝等原因使得虛框內(nèi)電路不可見。從圖1中可以看出,顯然,當(dāng)f和g沒有發(fā)生短接時,f和f'的輸出應(yīng)該是一致的,但是考慮到電路在制造過程中,因?yàn)槟撤N原因可能會使f被g短接,短接點(diǎn)為a,并且f與g短接后形成線“或”關(guān)系,即f變成了f'=f+g。為了判別是否存在這類的短接,導(dǎo)致電路邏輯功能錯誤,需要選擇一些適當(dāng)?shù)臏y試輸入組合t,當(dāng)輸入的n個輸入變量集合為xt時,xt屬于t,那么滿足f(xt)的原來的輸出f為0而g(xt)的輸出g為1,這樣只要存在電路f(x)和g(x)的輸出為線“或”型短接時,就可以通過觀察f'的值與預(yù)想中的f值是否一致,進(jìn)而判斷電路是否存在故障。
假設(shè)f(x)的電路如圖2a所示,f(x)對應(yīng)的邏輯表達(dá)式為
對于小電路,符合
雖然
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的檢測方法,其通過利用數(shù)字組合邏輯電路對應(yīng)的邏輯函數(shù)之間的不相交銳積操作,實(shí)現(xiàn)邏輯函數(shù)的邏輯“反”操作和邏輯函數(shù)之間的邏輯“與”操作,獲得用于故障檢測的測試輸入組合,進(jìn)而能夠有效判斷相應(yīng)的短接故障,且適合兩個大的數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的檢測。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的檢測方法,其特征在于包括以下步驟:
①將待檢測的兩個數(shù)字組合邏輯電路分別記為f(x)和g(x);并設(shè)定f(x)展開有p個乘積項(xiàng),f(x)表示為其p個乘積項(xiàng)的邏輯“或”形式,g(x)展開有q個乘積項(xiàng),g(x)表示為其q個乘積項(xiàng)的邏輯“或”形式;其中,x表示f(x)和g(x)的輸入變量集合,x中至少包含有1個輸入變量,p≥1,q≥1;
②將f(x)的p個乘積項(xiàng)構(gòu)成的集合記為cf(x),將g(x)的q個乘積項(xiàng)構(gòu)成的集合記為cg(x);
③令u表示全集;然后對u與cf(x)進(jìn)行兩個布爾邏輯函數(shù)乘積項(xiàng)集合之間的不相交銳積運(yùn)算,再將運(yùn)算結(jié)果保存于集合
④對cg(x)與
⑤對cg(x)與cg(x)_d進(jìn)行兩個布爾邏輯函數(shù)乘積項(xiàng)集合之間的不相交銳積運(yùn)算,再將運(yùn)算結(jié)果保存于集合ct中,
⑥將步驟⑤得到的測試輸入組合加到f(x)和g(x)的輸入端,若f(x)的輸出值與預(yù)期值不一致,則判定f(x)和g(x)輸出發(fā)生線“或”短接故障。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:本發(fā)明方法利用數(shù)字組合邏輯電路對應(yīng)的邏輯函數(shù)之間的不相交銳積操作,實(shí)現(xiàn)邏輯函數(shù)的邏輯“反”操作和邏輯函數(shù)之間的邏輯“與”操作,本發(fā)明方法在生成測試輸入組合時,不涉及待處理電路的卡諾圖展開或最小項(xiàng)展開,因此本發(fā)明方法的處理速度與待處理電路的輸入變量的數(shù)量沒有直接關(guān)系,更適合兩個大的數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的檢測;另外,電路故障檢測是現(xiàn)代電子設(shè)計(jì)自動化(eda)技術(shù)中一個重要內(nèi)容,本發(fā)明方法適合在計(jì)算機(jī)上編程實(shí)現(xiàn),使得本發(fā)明方法很容易與其他電子設(shè)計(jì)自動化技術(shù)實(shí)現(xiàn)整合。
附圖說明
圖1為兩個數(shù)字組合邏輯電路輸出發(fā)生線“或”短接的示意圖;
圖2a為兩個數(shù)字組合邏輯電路中的其中一個數(shù)字組合邏輯電路f(x)的示例示意圖;
圖2b為兩個數(shù)字組合邏輯電路中的另一個數(shù)字組合邏輯電路g(x)的示例示意圖;
圖2c為圖2a所示的電路的輸出f與圖2b所示的電路的輸出g發(fā)生線“或”短接的示意圖;
圖3a為圖2a所示的電路的互補(bǔ)卡諾圖;
圖3b為圖2b所示的電路的卡諾圖;
圖3c為圖3a所示的卡諾圖和圖3b所示的卡諾圖進(jìn)行邏輯“與”的結(jié)果示意圖;
圖4為本發(fā)明方法的總體實(shí)現(xiàn)框圖。
具體實(shí)施方式
以下結(jié)合附圖實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)描述。
本發(fā)明提出的一種數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的檢測方法,其總體實(shí)現(xiàn)框圖如圖4所示,其包括以下步驟:
①將待檢測的兩個數(shù)字組合邏輯電路分別記為f(x)和g(x);并設(shè)定f(x)展開有p個乘積項(xiàng),f(x)表示為其p個乘積項(xiàng)的邏輯“或”形式,g(x)展開有q個乘積項(xiàng),g(x)表示為其q個乘積項(xiàng)的邏輯“或”形式;其中,x表示f(x)和g(x)的輸入變量集合,x中至少包含有1個輸入變量,p≥1,q≥1。
②將f(x)的p個乘積項(xiàng)構(gòu)成的集合記為cf(x),將cf(x)中的第i個乘積項(xiàng)記為
③令u表示全集;然后對u與cf(x)進(jìn)行兩個布爾邏輯函數(shù)乘積項(xiàng)集合之間的不相交銳積運(yùn)算,再將運(yùn)算結(jié)果保存于集合
④對cg(x)與
⑤對cg(x)與cg(x)_d進(jìn)行兩個布爾邏輯函數(shù)乘積項(xiàng)集合之間的不相交銳積運(yùn)算,再將運(yùn)算結(jié)果保存于集合ct中,
⑥將步驟⑤得到的測試輸入組合加到f(x)和g(x)的輸入端,若f(x)的輸出值與預(yù)期值不一致,則判定f(x)和g(x)輸出發(fā)生線“或”短接故障。
以下為對本發(fā)明方法進(jìn)行試驗(yàn),以驗(yàn)證本發(fā)明方法的可行性與有效性。
假設(shè)x={x1,x2,x3,x4},x1,x2,x3,x4為x中的四個輸入變量,并假設(shè)
表1給出了利用本發(fā)明方法用于兩個數(shù)字組合邏輯電路輸出發(fā)生線“或”短接故障的測試輸入組合的生成。表1中的電路f(x)取自mcnc標(biāo)準(zhǔn)測試電路;電路g(x)為截取電路f(x)的展開表達(dá)式的前10項(xiàng),然后隨意修改部分乘積項(xiàng)得到;t/ms表示利用本發(fā)明方法生成ct的時間,單位為毫秒,“<1”表示生成ct的時間小于1毫秒。從表1中可以看出,本發(fā)明方法可以完成輸入變量數(shù)為66的電路處理,而且處理速度均比較快。
表1本發(fā)明用于實(shí)驗(yàn)測試的結(jié)果