ハザード (論理回路)
ANDゲートなどの遅延を受ける不完全な回路を考える。単純な回路は次のような関数を持つ。
f = X1 * X2 + X1' * X3
始めの図を見ると、遅延が発生しなければ回路が正常に動作することは明らかである。しかし、2つのゲートが全く同じように製造されることはない。この不完全性により、第1ANDゲートの遅延は、もう1つのものとわずかに異なる。よって入力が111から011に変化するとき、すなわちX1の状態が変わるときにエラーが発生する。
ハザードがどのように発生するかは大まかには分かっているが、この問題を解決するより明確な図と解決策のためにカルノー図を見ていく。2つのゲートは太線の輪で示され、ハザードは破線の輪の下に示される。ハフマンにより証明された定理は、冗長ループX2X3を加えることでハザードを排除できることを示している。
元の関数は次のようになる: f = X1 * X2 + X1' * X3 + X2 * X3
これにより、不完全な論理要素であっても、X1が状態を変える際にハザードの兆候は見られなくなる。この理論はあらゆる論理システムに当てはめることができる。コンピュータのプログラムではこの作業の大部分を処理しているが、簡単な例では手作業でデバッグを行うほうが早い。多くの入力変数(6やそれ以上)があるとき、カルノー図の上でエラーを「見る」ことは非常に難しくなる。