|
當(dāng)一個(gè)門(mén)的輸入有兩個(gè)或兩個(gè)以上的變量發(fā)生改變時(shí),由于這些變量是經(jīng)過(guò)不同路徑產(chǎn)生的,使得它們狀態(tài)改變的時(shí)刻有先有后,這種時(shí)差引起的現(xiàn)象稱為競(jìng)爭(zhēng)(Race)。競(jìng)爭(zhēng)的結(jié)果若導(dǎo)致冒險(xiǎn)或險(xiǎn)象(Hazard)發(fā)生(例如毛刺),并造成錯(cuò)誤的后果,那么就稱這種競(jìng)爭(zhēng)為臨界競(jìng)爭(zhēng)。若競(jìng)爭(zhēng)的結(jié)果沒(méi)有導(dǎo)致冒險(xiǎn)發(fā)生,或雖有冒險(xiǎn)發(fā)生,但不影響系統(tǒng)的工作,那么就稱這種競(jìng)爭(zhēng)為非臨界競(jìng)爭(zhēng)。
組合邏輯電路的險(xiǎn)象僅在信號(hào)狀態(tài)改變的時(shí)刻出現(xiàn)毛刺,這種冒險(xiǎn)是過(guò)渡性的,它不會(huì)使穩(wěn)態(tài)值偏離正常值,但在時(shí)序電路中,冒險(xiǎn)是本質(zhì)的,可導(dǎo)致電路的輸出值永遠(yuǎn)偏離正常值或者發(fā)生振蕩。
組合邏輯電路的冒險(xiǎn)是過(guò)渡性冒險(xiǎn),從冒險(xiǎn)的波形上,可分為靜態(tài)冒險(xiǎn)和動(dòng)態(tài)冒險(xiǎn)。
輸入信號(hào)變化前后,輸出的穩(wěn)態(tài)值是一樣的,但在輸入信號(hào)變化時(shí),輸出信號(hào)產(chǎn)生了毛刺,這種冒險(xiǎn)是靜態(tài)冒險(xiǎn)。若輸出的穩(wěn)態(tài)值為0,出現(xiàn)了正的尖脈沖毛刺,稱為靜態(tài)0險(xiǎn)象。若輸出穩(wěn)態(tài)值為1,出現(xiàn)了負(fù)的尖脈沖毛刺,則稱為靜態(tài)1冒險(xiǎn)。
輸入信號(hào)變化前后,輸出的穩(wěn)態(tài)值不同,并在邊沿處出現(xiàn)了毛刺,稱為動(dòng)態(tài)險(xiǎn)象(冒險(xiǎn))。
從引起冒險(xiǎn)的具體原因上,冒險(xiǎn)可以分為函數(shù)冒險(xiǎn)和邏輯冒險(xiǎn)。函數(shù)冒險(xiǎn)是邏輯函數(shù)本身固有的,當(dāng)多個(gè)輸入變量發(fā)生變化時(shí),常常會(huì)發(fā)生邏輯冒險(xiǎn)。避免函數(shù)冒險(xiǎn)的最簡(jiǎn)單的方法是同一時(shí)刻只允許單個(gè)輸入變量發(fā)生變化,或者采用取樣的辦法。
單個(gè)輸入變量改變時(shí),不會(huì)發(fā)生函數(shù)冒險(xiǎn),但電路設(shè)計(jì)不合適時(shí),仍會(huì)出現(xiàn)邏輯冒險(xiǎn)。通過(guò)精心設(shè)計(jì),修改電路的結(jié)構(gòu),可以消除邏輯冒險(xiǎn)。
|
|