馮錦 胥森譯 胥學(xué)金
【摘要】本文對(duì)邏輯電路中的競(jìng)爭(zhēng)與冒險(xiǎn)現(xiàn)象產(chǎn)生的原因、險(xiǎn)象的分類(lèi)和判斷及消除方法進(jìn)行了較全面的認(rèn)識(shí)和論述。對(duì)競(jìng)爭(zhēng)與冒險(xiǎn)現(xiàn)象在邏輯電路中的廣泛性進(jìn)行了討論,對(duì)邏輯電路在時(shí)序匹配和電路結(jié)構(gòu)上,與電路功能之間的矛盾和不合理性,用時(shí)空觀進(jìn)行了初探的同時(shí),對(duì)險(xiǎn)象提出了一分為二的處理方法。
【關(guān)鍵詞】邏輯電路;競(jìng)爭(zhēng);險(xiǎn)象
一、引言
在討論邏輯電路,特別是組合電路時(shí),常常為了分析問(wèn)題的方便,沒(méi)有考慮信號(hào)傳輸中的時(shí)延問(wèn)題;或者只考慮了靜態(tài)過(guò)程和穩(wěn)態(tài)輸出。實(shí)際上,信號(hào)經(jīng)過(guò)任何邏輯門(mén)和導(dǎo)線(xiàn)都會(huì)產(chǎn)生時(shí)間延遲,這就使得當(dāng)電路所有輸入達(dá)到穩(wěn)定狀態(tài)時(shí),輸出并不是立即達(dá)到穩(wěn)定狀態(tài),而有一個(gè)過(guò)渡過(guò)程(或暫態(tài)),嚴(yán)重時(shí)還可能有尖峰脈沖,俗稱(chēng)“毛刺”產(chǎn)生。
一般來(lái)說(shuō),延遲時(shí)間對(duì)數(shù)字系統(tǒng)是一個(gè)有害的因素。例如,使得系統(tǒng)操作速度下降,引起電路中信號(hào)的波形參數(shù)變壞,以及產(chǎn)生競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象引起錯(cuò)誤輸出等問(wèn)題。下面對(duì)后一個(gè)問(wèn)題進(jìn)行討論。
二、競(jìng)爭(zhēng)現(xiàn)象與險(xiǎn)象的產(chǎn)生
(一)競(jìng)爭(zhēng)的概念與類(lèi)型
邏輯電路中各條路徑上延遲時(shí)間的長(zhǎng)短,不僅與信號(hào)經(jīng)過(guò)的門(mén)的級(jí)數(shù)和具體邏輯門(mén)的時(shí)延大小有關(guān),還與導(dǎo)線(xiàn)的長(zhǎng)短有關(guān),因此,輸入信號(hào)經(jīng)過(guò)不同路徑到達(dá)輸出端的時(shí)間有先有后,這種現(xiàn)象稱(chēng)為競(jìng)爭(zhēng)現(xiàn)象。
1.競(jìng)爭(zhēng):由于延遲時(shí)間的影響,使得輸入信號(hào)經(jīng)過(guò)不同路徑到達(dá)輸出端的時(shí)間有先有后,這一現(xiàn)象稱(chēng)為競(jìng)爭(zhēng)。
通常,可以更廣義地把競(jìng)爭(zhēng)理解為多個(gè)信號(hào)到達(dá)某一點(diǎn)有時(shí)差的現(xiàn)象。
2.競(jìng)爭(zhēng)的類(lèi)型:根據(jù)競(jìng)爭(zhēng)結(jié)果引起錯(cuò)誤輸出信號(hào)與否,競(jìng)爭(zhēng)可以分為兩種類(lèi)型:
(1)非臨界競(jìng)爭(zhēng)——不產(chǎn)生錯(cuò)誤輸出的競(jìng)爭(zhēng)稱(chēng)為非臨界競(jìng)爭(zhēng);
(2)臨界競(jìng)爭(zhēng)——導(dǎo)致錯(cuò)誤輸出的競(jìng)爭(zhēng)稱(chēng)為臨界競(jìng)爭(zhēng)。
(二)險(xiǎn)象定義、分類(lèi)
1.險(xiǎn)象定義:由競(jìng)爭(zhēng)導(dǎo)致的錯(cuò)誤輸出信號(hào)的現(xiàn)象,叫冒險(xiǎn)現(xiàn)象,即險(xiǎn)象。
在組合電路中的險(xiǎn)象是一種瞬態(tài)現(xiàn)象,它表現(xiàn)為在輸出端產(chǎn)生不應(yīng)有的尖脈沖,暫時(shí)地破壞正常邏輯關(guān)系。一旦瞬態(tài)過(guò)程結(jié)束,即可恢復(fù)正常邏輯關(guān)系。
2.險(xiǎn)象的分類(lèi):
(1)在組合電路中的險(xiǎn)象可分為靜態(tài)險(xiǎn)象和動(dòng)態(tài)險(xiǎn)象。
1)靜態(tài)險(xiǎn)象:如果在輸入變化而輸出不應(yīng)發(fā)生變化的情況下,輸出端產(chǎn)生了短暫的錯(cuò)誤輸出,則稱(chēng)為靜態(tài)險(xiǎn)象。靜態(tài)險(xiǎn)象一般只有單種尖峰,要么“0”型,要么“1”型.
2)動(dòng)態(tài)險(xiǎn)象:如果在輸入變化而輸出應(yīng)該發(fā)生變化的情況下,輸出在變化過(guò)程中產(chǎn)生了短暫的錯(cuò)誤輸出,則稱(chēng)為動(dòng)態(tài)險(xiǎn)象。動(dòng)態(tài)險(xiǎn)象一般存在“0”型和“1”型兩種交替尖峰.
3)動(dòng)、靜態(tài)險(xiǎn)象的關(guān)系:有動(dòng)態(tài)險(xiǎn)象,必有靜態(tài)險(xiǎn)象;消除了靜態(tài)險(xiǎn)象,也就消滅了動(dòng)態(tài)險(xiǎn)象,因?yàn)閯?dòng)態(tài)險(xiǎn)象是由靜態(tài)險(xiǎn)象引起的。
(2)按錯(cuò)誤輸出脈沖信號(hào)的極性可分為:“0”型險(xiǎn)象與“1”型險(xiǎn)象。
1)“0”型險(xiǎn)象:錯(cuò)誤輸出信號(hào)為負(fù)脈沖。
2)“1”型險(xiǎn)象:錯(cuò)誤輸出信號(hào)為正脈沖。
(3)從消除的險(xiǎn)象的方法上,區(qū)分邏輯險(xiǎn)象與功能險(xiǎn)象:
通過(guò)修改邏輯設(shè)計(jì),就能消除的險(xiǎn)象,叫邏輯險(xiǎn)象;否則,叫功能險(xiǎn)象。
邏輯險(xiǎn)象,一般由同一變量經(jīng)過(guò)不同傳輸門(mén)或延時(shí)路徑而不能同時(shí)到達(dá)輸出級(jí)的輸入端,引起邏輯競(jìng)爭(zhēng)而產(chǎn)生的臨界競(jìng)爭(zhēng)現(xiàn)象。它可以通過(guò)修改邏輯設(shè)計(jì),即增加冗余項(xiàng)辦法來(lái)消除。而功能險(xiǎn)象,往往由多個(gè)變量輸入到達(dá)輸出級(jí)輸入端不同時(shí),即有先有后的時(shí)差引起;或由兩個(gè)變量同時(shí)向相反方向變化,但客觀上因有上升、下降時(shí)間存在引起過(guò)渡過(guò)程,實(shí)際上不可能做到在同一時(shí)刻點(diǎn)上同時(shí)變化,而產(chǎn)生的臨界競(jìng)爭(zhēng)現(xiàn)象。功能險(xiǎn)象不能用修改邏輯設(shè)計(jì)辦法來(lái)消除,如譯碼電路引起的譯碼噪聲。
(三)競(jìng)爭(zhēng)與險(xiǎn)象的關(guān)系:
由上面分析可知,有競(jìng)爭(zhēng)未必有險(xiǎn)象,有險(xiǎn)象必有競(jìng)爭(zhēng),這就是競(jìng)爭(zhēng)與險(xiǎn)象的關(guān)系。
三、險(xiǎn)象的判斷與檢測(cè)
判斷電路是否可能產(chǎn)生險(xiǎn)象的方法,有代數(shù)法和卡諾圖法。
針對(duì)前面分析的情況可知,當(dāng)某個(gè)變量x同時(shí)以原變量和反變量的形式出現(xiàn)在函數(shù)表達(dá)式中,且在一定條件下該函數(shù)表達(dá)式可簡(jiǎn)化成F=X+x或者F=X·x的形式時(shí),該函數(shù)表達(dá)式對(duì)應(yīng)的電路在x發(fā)生變化時(shí),可能由于邏輯競(jìng)爭(zhēng)而產(chǎn)生邏輯險(xiǎn)象;當(dāng)有多個(gè)輸入變量在某時(shí)刻點(diǎn)發(fā)生變化時(shí),要考慮功能險(xiǎn)象是否存在。
(一)代數(shù)法
檢查函數(shù)表達(dá)式中是否存在具備競(jìng)爭(zhēng)條件的變量,即是否有某個(gè)變量x同時(shí)以原變量和反變量的形式出現(xiàn)在函數(shù)表達(dá)式中。
若存在具備競(jìng)爭(zhēng)條件的變量x,則消去函數(shù)式中的其他變量,看函數(shù)表達(dá)式是否會(huì)變?yōu)镕=X+x或者F=X+x的形式。若有,則說(shuō)明對(duì)應(yīng)的邏輯電路可能產(chǎn)生險(xiǎn)象。
(二)卡諾圖法:
當(dāng)描述電路的邏輯函數(shù)為“與一或”表達(dá)式時(shí),采用卡諾圖判斷險(xiǎn)象比代數(shù)法更為直觀、方便。
對(duì)邏輯險(xiǎn)象,作出函數(shù)卡諾圖,并畫(huà)出和函數(shù)表達(dá)式中各“與”項(xiàng)對(duì)應(yīng)的卡諾圈。若卡諾圈之間存在“相切”關(guān)系,即兩卡諾圈之間存在不被同一卡諾圈包含的相鄰最小項(xiàng),(好比項(xiàng)鏈,中間斷了一圈),則該電路可能產(chǎn)生邏輯險(xiǎn)象。
對(duì)功能險(xiǎn)象,在函數(shù)卡諾圖,相鄰最小項(xiàng)一值向另一等值變化,途經(jīng)中間的相鄰最小項(xiàng)時(shí),有異值情況存在時(shí)發(fā)生。
險(xiǎn)象的檢測(cè)可以通過(guò)計(jì)算機(jī)模擬仿真或?qū)嶒?yàn)觀測(cè),來(lái)發(fā)現(xiàn)尖峰脈沖。
(三)時(shí)序分析
通過(guò)在計(jì)算機(jī)上運(yùn)行數(shù)字電路的模擬程序,能夠迅速查出是否存在競(jìng)爭(zhēng)一冒險(xiǎn)現(xiàn)象。目前已有這類(lèi)成熟的軟件程序可供使用。
(四)實(shí)驗(yàn)檢查
用實(shí)驗(yàn)方法來(lái)檢查邏輯電路的輸出端波型上是否有尖峰脈沖產(chǎn)生。這時(shí)加到輸入端的信號(hào)波形應(yīng)該包含輸入變量的所有可能發(fā)生的狀態(tài)變化。