危障 (數碼電路)
危障(hazard)又稱作險象或冒險,,是一種由於數碼電路內部設計或者外部影響造成錯誤數碼訊號的不良效應。
產生原因
數碼電路中,輸入的數碼訊號改變或進行一些邏輯運算(如非、與、或等)時,輸出訊號沒有能完全同步改變,從而引發短暫時間內的錯誤訊號脈衝輸出,這種錯誤訊號的脈衝很窄,被稱作「毛刺」(英語:glitch)[1]。
分類
最常見的三種危障現象分別是靜態危障、動態危障和功能危障。
- 靜態危障(static hazard):輸入訊號的改變只引起一個錯誤訊號脈衝
- 動態危障(dynamic hazard):輸入訊號的改變引起多個錯誤訊號脈衝
- 功能危障(function hazard):多個輸入訊號變化不同步產生的錯誤訊號
輸出訊號毛刺為負向脈衝的為0型危障,通常在與或、與非、與或非型電路中出現;輸出訊號為順向脈衝的為1型危障,通常在或與、或非型電路中出現。[2]:95頁
危害
危障現象持續的時間很短暫,但是危害卻不小。特別是在序向邏輯電路中,如果危障發生在時間邊沿時,輸出訊號的危障會造成嚴重的後果。
消除方法
危障現象是一種臨時性的問題,因為電路最終會穩定在所需要的功能訊號上。儘管這樣,消除危障還是十分必要,特別是當訊號需要接入下一級系統裏時。
設計無危障的電路
設計一個不發生危障的數碼電路是消除危障的最理想的辦法。但是,這種方式對於一些複雜的電路來說,設計出的電路會比較複雜,使電路變得更為複雜,甚至導致成本的上升。簡單電路的靜態危障則可以應用這個方法。
卡諾圖
在卡諾圖中圈選「1」或「0」的時候,如果可以避免某一個所選區域與另一個區域相切,即可避免危障現象的發生。不過,這種卡諾圖圈選方式雖然可以消除因邏輯設計產生的危障,以上圈選方式得到的最小項積之和式或最大項和之積式很可能不是最簡與或式或最簡或與式,即產生了冗餘項。[2]:96頁
選通法
危障通常是在輸入訊號改變後的較短時間內發生,如果在錯誤訊號的脈衝消退後再進行讀值,也能避免錯誤訊號造成的危害。實際可以使用選通電路來實現此功能。
使用濾波電路
採用額外的濾波電路也可以緩解錯誤訊號的脈衝。通常,錯誤訊號脈衝都是高頻訊號,和正常的、所需要的訊號頻率差別較大,可以通過濾波電路進行消除。這種方式的缺點則在於,錯誤訊號雖然被消除了,但是輸出訊號的上升沿和下降沿也隨之被破壞。[2]:94頁
參考文獻
- ^ 劉寶琴、王德生、羅嶸. 逻辑设计与数字系统. 北京: 清華大學出版社. : 111頁. ISBN 978-7-302-09320-6 (中文(中國大陸)).
- ^ 2.0 2.1 2.2 鄧元慶、關宇、賈鵬、石會. 数字设计基础与应用. 北京: 清華大學出版社. ISBN 978-7-302-21406-9 (中文(中國大陸)).