摘 要:競爭冒險是數字電路中特有的現象,該現象主要于器件的延時造成的。在對組合邏輯電路進行設計時,人們通常會忽視這個問題,導致邏輯上準確無誤,實際調試時卻得到了錯誤結果的現象。本文在對競爭冒險產生的原因、判斷方法分析的基礎上,辯證的提出了不同情況下消除競爭冒險的可行方法,并總結了實際應用中的競爭冒險的敏感度問題。
關鍵詞:競爭冒險尖峰脈沖卡諾圖
中圖分類號:TN791文獻標識碼:A文章編號:1674-098X(2011)08(a)-0009-01
信號經過邏輯門電路都需要一定的時間,由于各個門電路延遲時間的差異,或者不同路徑上門電路的級數不同,因此,信號從不同的路徑、經過不同的門電路到達輸出端時,電路在輸入信號變化的瞬間,可能與穩態下的邏輯功能不一致,輸出端出現一些不正確的尖峰脈沖(毛刺)。當一個邏輯門的兩個輸入端信號同時向相反方向變化,而變化的時間有差異的現象,稱為競爭,由競爭產生出干擾脈沖的現象稱為冒險。如果說電路中存在競爭冒險,并不等于一定有干擾脈沖產生,在設計時,既不可能知道傳輸路徑和門電路傳輸時間的準確數值,也無法知道各個波形上升時間和下降時間的微小差異,只能說有產生干擾脈沖的可能性,這就是冒險一詞的具體含義。
1 競爭冒險的判斷
根據定義可知,在一定的條件下,門電路的輸出端表達式可以簡化成兩個互補信號相加或者相乘的形式,即或的形式,那么就可以判斷電路存在競爭冒險。一下介紹判斷競爭冒險的幾種常用方法。
1.1 代數法
代數法緊扣競爭冒險最基本的定義,在n個變量的邏輯表達式中,在一定條件下,表達式可以化簡為或的形式,就可以判斷該電路存在競爭冒險。
1.2 卡諾圖法
從邏輯表達式的卡諾圖上觀察,如果有兩個卡諾圈相切,則必然存在競爭冒險。需要注意的是,判斷是否相切時,必須考慮卡諾圖的循環相鄰特性,即最左邊的列與最右邊的列是相鄰的,最上面的行與最下面的行也是相鄰的。
1.3 仿真法和實驗法
代數法和卡諾圖法都比較簡單,但不適用于多個變量輸入的情況,因此可以采用計算機軟件仿真法來判斷,例如Multisim、MAX+plusll等軟件都能有效地檢測出電路中存在的競爭冒險現象。而由于電路本身存在的誤差等問題,還需要進一步通過實驗的手段來判斷是否存在競爭冒險,該方法雖然繁瑣,但可靠性高,是電路設計的必經階段。
2 消除競爭冒險的方法
2.1 增加冗余項法
根據邏輯代數的冗余律可知:若將表達式增加冗余項,等效為,其表達式的邏輯結果不變。而通過分析可知,前者當A=B=1時,,構成了競爭冒險產生的條件,而后者當且僅當A=B=1時,才會出現C與C同時出現的情況,而此時冗余項起了作用,+1,不會出現只有互補項相加的結果。該方法比較簡單,主要用于電路的理論設計階段,用代數法或者卡諾圖法判斷出競爭冒險以后,直接對邏輯表達式進行修改,進而修改電路,但局限性比較大,不適合輸入變量較多及較復雜的電路。
2.2 脈沖選通法
脈沖選通法包括兩個方面:一是引入封鎖脈沖,即引入一個負脈沖,如圖1,在輸入信號轉換前到達,轉換后消失。
二是引入選通脈沖,即只有當電路達到了新的穩態后,選通脈沖才為正脈沖,使電路輸出有效。由于有效脈沖出現在電路達到穩態以后,所以不會出現尖峰脈沖。選通脈沖剛好與封鎖脈沖相反,表現為丄凸波形,只需將圖1中P1下凹脈沖改為上凸脈沖即可實現。
但是值得注意的是,無論是引入封鎖脈沖還是選通脈沖,脈沖選通法最后的輸出信號將變為脈沖信號,該方法不需要增加電路元件就可以從根本上消除尖峰脈沖,但要求脈沖與輸入信號同步,且對取樣脈沖的寬度和作用時間有較高的要求。
2.3 加濾波電容法
組合邏輯電路由競爭冒險產生的尖峰脈沖通常高頻分量很豐富,因此,可以在輸出端添加一個濾波電容,構成低通濾波器,從而起到通低頻阻高頻的作用。該方法簡單易行,電容對窄脈沖起到了平波作用,使輸出端不會發生邏輯錯誤,但同時也時輸出波形上升沿或下降沿變得緩慢,僅適用于對輸出波形上下沿要求不高的情形。
2.4 采用可靠性編碼
在數字電路設計中,設計者常常采用格雷碼計數器來代替普通的二進制計數器,因為格雷碼加1時,只有一個輸出位發生跳變,這樣就消除了競爭冒險發生的條件。
3 實際應用中競爭冒險的敏感度問題
在實際應用中必須認識到一點:不同的電路對于尖峰脈沖的敏感度是不一樣的。例如:時鐘端口、清零和置位端口對毛刺十分敏感,任何一點尖峰都會使系統出錯,影響電路的穩定性。但是對于D觸發器來說,由于它的狀態變化出現在時鐘上升沿,因此,只要毛刺不出現在時鐘上升沿并且滿足數據的建立和保持時間,就不會對系統造成危害,也就是說D觸發器的輸入端對尖峰不敏感。根據這個特性,在系統設計時要求設計者盡量使用同步電路,同步電路的信號變化通常出現在時鐘上升沿而且需要滿足數據的建立和保持時間,事實上,由于尖峰脈沖出現的時間很短,基本上很難滿足數據的建立和保持時間。所以,這種方法可行性較高。
參考文獻
[1]康華光,鄒壽彬.電子技術基礎數字部分(第五版)[M].北京:高等教育出版社,2009:133-136
[2]張文.競爭冒險現象研究.內江師范學院學報,2005,20(4):30-32.
[3]石飛飛,孫琳琳.組合邏輯電路中冒險現象的判斷和消除方法.科技資訊,2010,21:130-131.
[4]胡輝輝.數字電路中冒險的代數法檢測與消除.硅谷,2009,07:22.