基本介紹
定義,分類,靜態冒險,動態冒險,功能冒險,競爭冒險的判斷,代數法,卡諾圖法,消除方法,設計無險象的電路,選通法,使用濾波電路,
定義
冒險現象(Hazard)是一種由於數字電路內部設計或者外部影響造成錯誤數位訊號的不良效應。數字電路中,輸入的數位訊號改變或進行一些邏輯運算(如非、與、或等)時,輸出信號沒有能完全同步改變,從而引發短暫時間內的錯誤信號脈衝輸出,這種錯誤信號的脈衝很窄,被稱作“毛刺”(glitch)。
信號在器件內部通過連線和邏輯單元時,都有一定的延時。延時的大小與連線的長短和邏輯單元的數目有關,同時還受器件的製造工藝、工作電壓、溫度等條件的影響。信號的高低電平轉換也需要一定的過渡時間。由於存在這兩方面因素,多路信號的電平值發生變化時,在信號變化的瞬間,組合邏輯的輸出有先後順序,並不是同時變化,往往會出現一些不正確的尖峰信號,這些尖峰信號稱為"毛刺"。如果一個組合邏輯電路中有"毛刺"出現,就說明該電路存在冒險。
毛刺並不是對所有的輸入都有危害,例如D觸發器的D輸入端,只要毛刺不出現在時鐘的上升沿並且滿足數據的建立和保持時間,就不會對系統造成危害,所以D觸發器的D輸入端對毛刺不敏感。根據這個特性,在系統設計時儘可能採用同步電路,這是因為同步電路信號的變化都發生在時鐘沿,只要毛刺不出現在時鐘的沿口並且不滿足數據的建立和保持時間,就不會對系統造成危害。實際上,由於毛刺很短,多為幾納秒,基本上都不可能滿足數據的建立和保持時間。
分類
最常見的三種冒險現象分別是靜態險象、動態險象和功能險象。
靜態冒險
輸入信號的改變只引起一個錯誤信號脈衝。組合邏輯電路即使在輸入邏輯值沒有發生變化的情況下也可能發生躍變,產生這些非預期的干擾脈衝“假信號”。稱可能發生假信號脈衝的電路存在冒險。如果輸入有變化而輸出不應發生變化的情況下,出現了單個窄脈衝,稱為電路產生了靜態冒險。只有存在靜態冒險才可能導致動態冒險。
動態冒險
dynamichazard,輸入信號的改變引起多個錯誤信號脈衝
功能冒險
functionhazard,多個輸入信號變化不同步產生的錯誤信號
輸出信號毛刺為負向脈衝的為0型險象,通常在與或、與非、與或非型電路中出現;輸出信號為正向脈衝的為1型險象,通常在或與、或非型電路中出現。
輸出信號毛刺為負向脈衝的為0型險象,通常在與或、與非、與或非型電路中出現;輸出信號為正向脈衝的為1型險象,通常在或與、或非型電路中出現。
競爭冒險的判斷
在組合電路的設計中,為克服冒險,應對競爭冒險的可能性加以判斷,判斷方法大致有兩種。
代數法
判斷的方法是在或與輸入端的兩個輸入的變數是否正好相反,或者在與輸入端的兩個變數是否正好相反並有延時。如果滿足此兩種情況,則可能存在競爭冒險的現象。
卡諾圖法
利用卡諾圖可以判斷組合邏輯電路是否可能存在競爭冒險,方法為: 根據邏輯函式的表達式,作出其卡諾圖,若卡諾圖中填入1的格所形成的卡諾圖有兩個相鄰的圈相切但不相交,則該電路存在競爭冒險的可能性。
消除方法
冒險現象是一種臨時性的問題,因為電路最終會穩定在所需要的功能信號上。儘管這樣,消除險象還是十分必要,特別是當信號需要接入下一級系統里時。
在對組合邏輯電路進行分析及設計時,通常沒有考慮器件的延時問題,而實際的器件是存在延時的,競爭冒險現象就是由於器件的延時造成的。為了保證電路工作的穩定性及可靠性,必須設法消除競爭冒險。在現代電子設計中,冒險現象突出表現為毛刺,必須加以消除。
設計無險象的電路
設計一個不發生險象的數字電路是消除險象的最理想的辦法。但是,這種方式對於一些複雜的電路來說,設計出的電路會比較複雜,使電路變得更為複雜,甚至導致成本的上升。簡單電路的靜態險象則可以套用卡諾圖方法。
在卡諾圖中圈選“1”或“1”的時候,如果可以避免某一個所選區域與另一個區域相切,即可避免冒險現象的發生。不過,這種卡諾圖圈選方式雖然可以消除因邏輯設計產生的險象,以上圈選方式得到的最小項積之和式或最大項和之積式很可能不是最簡與或式或最簡或與式,即產生了冗餘項。
在卡諾圖中圈選“1”或“1”的時候,如果可以避免某一個所選區域與另一個區域相切,即可避免冒險現象的發生。不過,這種卡諾圖圈選方式雖然可以消除因邏輯設計產生的險象,以上圈選方式得到的最小項積之和式或最大項和之積式很可能不是最簡與或式或最簡或與式,即產生了冗餘項。
選通法
險象通常是在輸入信號改變後的較短時間內發生,如果在錯誤信號的脈衝消退後再進行讀值,也能避免錯誤信號造成的危害。實際可以使用選通電路來實現此功能。
在電路上加上一個選通信號,當輸入信號變化時,輸出端與電路斷開,當輸入穩定後,選通信號工作,使電路輸出到輸出端。
使用濾波電路
採用額外的濾波電路也可以緩解錯誤信號的脈衝。通常,錯誤信號脈衝都是高頻信號,和正常的、所需要的信號頻率差別較大,可以通過濾波電路進行消除。這種方式的缺點則在於,錯誤信號雖然被消除了,但是輸出信號的上升沿和下降沿也隨之被破壞。
如果邏輯電路在較慢速度下工作,其輸出的波形寬度非常窄,可以在輸入端並聯一個電容器,其容量為4~ 20pf之間,這主要靠電容的平波作用,來濾去其尖脈衝,使其落在能進行正常邏輯判斷的電平值之內,從而消除輸出端邏輯出錯的可能。