4 / 63 · 概念
NAND・NOR と否定記号の読み方
否定の範囲を区別し、ド・モルガンの法則で同じ機能の記号と式を結び付けます。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
小さな丸は出力値全体を否定します
NAND は AND の結果を、NOR は OR の結果を否定します。NAND は「各入力を否定した AND」という意味ではありません。まず否定否定 0 を 1 に、1 を 0 に変える NOT 演算です。式の上の線は、その下の式全体に NOT を適用することを表します。がかかる範囲を確認してください。
| a | b | NAND | NOR |
|---|---|---|---|
| 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| a | b | y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
NAND を選び、11 のときだけ出力が 0 になることを確認します。次に NOR に変えると、00 のときだけ出力が 1 です。否定した出力も有効な 0/1 信号であり、「まだ計算されていない値」ではありません。
ド・モルガンの法則はゲートを読む方法です
AND の出力の否定を入力へ移すと、演算も OR に変わります。丸の位置だけ移して AND のままにすると、別の関数になります。 で NAND は 1 ですが、 は 0 なので、すぐに反例が得られます。
- NAND: Y = NOT (a AND b)
- 各入力を否定: NOT a と NOT b を作る
- OR で結合: Y = (NOT a) OR (NOT b)
Active-low は信号が有効になる極性です
reset_n のように 0 のとき動作する信号を active-lowactive-low 信号が 0 のときに要求や機能が有効になる規則です。末尾の _n は一般的な命名慣習で、実際の動作は仕様で定めます。 と呼びます。名前の _n は慣習であり、動作は仕様と回路が決めます。二つの要求 req0_n、req1_n のどちらかが 0 のときに警報 alarm を 1 にするには、次のように計算します。
各信号の上の線は、その信号に NOT を適用します。最後の長い線は二つの信号の AND 全体に NOT を適用するので、一つの NAND で実装できます。例えば入力が 11 なら要求がなく alarm=0、01 なら最初の要求が有効なので alarm=1 です。
信号の「有効」と数値の 1 は、常に同じとは限りません。入力を読む際は、論理値・有効条件・否定記号を別々に確認してください。
自分で考えてみましょう
二つの active-low 許可信号 permit0_n、permit1_n がともに有効なときだけ go=1 にします。NAND と NOR のどちらを接続しますか。
解説を見る
両方が 0 のときだけ 1 にするので NOR です。go=NOT(permit0_n OR permit1_n) となります。「両方」という言葉だけで AND を選ぶと、信号の有効極性を見落とします。