デジタルロジック では、ハザードとは、同期回路[要出典]と非同期回路の両方において、システムの欠陥または外部の影響によって引き起こされる望ましくない効果のことです。[1] :43 ロジックハザードは、ロジック要素( NOT、AND、ORゲートなど)によって引き起こされる何らかの遅延により、入力変数の変化が出力を正しく変更しない問題の現れです。その結果、ロジックが機能を正しく実行しなくなります。最も一般的な3種類のハザードは、通常、静的ハザード、動的ハザード、および機能ハザードと呼ばれます。
ハザードは一時的な問題であり、ロジック回路は最終的に目的の機能に落ち着くことになります。したがって、同期設計では、回路の出力を別のクロック ドメインで使用する前、またはシステムからルーティングする前に登録して、ハザードが問題を引き起こさないようにするのが標準的な方法です。ただし、そうでない場合は、接続されている他のシステムに影響を与える可能性があるため、ハザードを排除することが不可欠です。
静電気による危険
静的ハザードとは、信号が一定であると予想されるときに、信号状態が2回連続して変化することです。[1] : 48 1つの入力信号が変化すると、出力は正しい値に安定する前に瞬間的に変化します。静的ハザードには2つのタイプがあります。
- 静的-1ハザード: 出力は現在1であり、入力が変化すると、出力は瞬間的に0,1に変化し、その後1に落ち着く。
- 静的0ハザード: 出力は現在0で、入力が変化すると、出力は瞬間的に1,0に変化し、その後0に落ち着きます。
Sum Of Products 式に基づいて適切に形成された 2 レベルの AND-OR ロジックでは、静的 0 のハザードは発生しません (ただし、静的 1 のハザードは発生する可能性があります)。逆に、Product Of Sums 式の OR-AND 実装では、静的 1 のハザードは発生しません (ただし、静的 0 のハザードは発生する可能性があります)。
静的ハザードを排除するために最も一般的に使用される方法は、冗長ロジック(ロジック式のコンセンサス項)を追加することです。
静電気による危険の例
AND ゲートなどの物理的な論理要素の遅延の影響を受ける不完全な回路を考えてみましょう。
この単純な回路は次のような機能を実行します。
開始図を見ると、遅延が発生しなければ回路は正常に機能することがわかります。ただし、2 つのゲートがまったく同じに製造されることはありません。この不完全性により、最初の AND ゲートの遅延は、対応するゲートとはわずかに異なります。したがって、入力が変化するとエラーが発生し、この問題を解決するには、カルノー マップを参照します。2 つのゲートは実線のリングで示され、ハザードは破線のリングの下に表示されます。Huffman [2]によって証明された定理によると、冗長ループ 'BC' を追加することでハザードが排除されます。
したがって、元の関数は次のようになります。
これで、不完全なロジック要素があっても、A の状態が変わっても、この例ではハザードの兆候は現れないことがわかります。この理論は、どのロジック システムにも適用できます。現在、この作業のほとんどはコンピュータ プログラムで処理されますが、単純な例では、手動でデバッグする方が迅速です。入力変数が多数ある場合 (たとえば 6 個以上)、カルノー マップでエラーを「確認」するのは非常に困難になります。
ダイナミックハザード
動的ハザードとは、信号の状態が一度だけ変化すると予想される場合に、信号の状態が連続して複数回変化する現象のことです。[1] : 48 動的ハザードとは、1回の入力の変化によって出力が複数回変化する可能性がある現象です。
動的ハザードは、多くの場合、出力(入力から)への経路が異なる大規模なロジック回路で発生します。経路ごとに遅延が異なる場合、必要な出力や期待される出力とは異なる出力値が変化する可能性があることがすぐに明らかになります。
たとえば、論理回路は出力状態を1から0に変更するはずですが、実際には1から0に、次に1に変わり、最終的に正しい値0で止まります。これは動的ハザードです。
原則として、動的ハザードの解決はより複雑ですが、回路から静的ハザードがすべて排除されていれば、動的ハザードは発生しないことに注意してください。
機能上の危険性
静的および動的ハザードとは対照的に、機能的ハザードは複数の入力に適用される変更によって引き起こされるハザードです。これを排除するための特定の論理的解決策はありません。1つの非常に信頼性の高い方法は、入力が同時に変更されないようにすることですが、場合によっては適用できません。したがって、回路は各パスで遅延が均等になるように慎重に設計する必要があります。[3]
その他
- 組み合わせ論理の危険性
- 組み合わせ論理では、論理回路内の信号伝播遅延の分布と実装された論理回路機能の全体的な設計に依存する危険性がある。[1] :43
- 複合機能ハザード
- 組み合わせ論理には、出力論理関数を研究し修正することで、プログラミングのより高いレベルで検出し抑制できる危険性がある。[1] : 43
- 連続した危険
- ループシステムで見られる望ましくない信号変化の一種である。[1] : 43
参照
参考文献
- ^ abcdef Lopes, Jeremy (2018-11-26) [2017]. 「宇宙用途向けの革新的な GALS (Globally Asynchronous Locally Synchronous) 不揮発性集積回路の設計」(PDF)。モンペリエ大学。
- ^ ハフマン、DA(1957)、「ハザードフリースイッチングネットワークの設計と使用」、Journal of the ACM、4、J. ACM 4、47:47–62、doi:10.1145 / 320856.320866、S2CID 1765037
- ^ 「ハザード」www.ee.surrey.ac.uk . 2018年3月17日閲覧。
- http://www.ee.surrey.ac.uk/Projects/Labview/Sequential/Course/02-Hazards/hazards.htm#FunctionHazards
