電子回路の場合,こうした論理はAND,ORの代わりにNANDやNORを使って
実現する必要がある。
まず,ド・モーガンの法則(de Morgan's law)について説明しよう。
これは,次の二つの法則をまとめたものである。
| (4.7) |
まず前者であるが,すでに述べたように左辺のORはすべての入力が0
のときだけ0となる論理である。
一方,右辺のANDはすべてが1のときだけ1となるから,
すべての入力を反転してANDに与える,つまり
とすることで,
すべての入力が0のときだけを例外処理とする。
この出力を反転させれば,すべての入力が0のときだけ0となり,
両辺は一致する。
後者については,各自で解いて欲しい。
例えば前節に示した
は,四つの要素
のORからなっているが,
そのORをド・モーガンの法則を使って,
に差し替える。
次に各
の否定が必要となるが,各
はAND
により構成されているので,NANDとなる。
| (4.8) |
| (4.9) |
つまり,OR(AND)=NAND(NAND)とNANDだけがあれば,いかなる論理も 構成できてしまうのである。 厳密にはNOTとNANDで構成できると言うべきかもしれない。 しかし,NOTは1入力NANDとみなすこともできるので, 「どんな論理もNANDだけで構成できる」と表現することが多い。 これをNAND-NAND回路(NAND-NAND circuit)と言う。
これらを回路図にすると図 4.5のようになる。 ただし,いくつの入力を持つNANDでも手に入るという前提で書いた。 なお,この図の一番上のNANDゲートは, 最終出力にいっさい関係しておらず,不要である。 しかし,現在の集積回路の内部では見やすい構造とすることを 旨としているので,不要な回路でも真理値表との対応関係から, 残しておくことが多い。
これを,
簡略化して図 4.6のように表すことがある。
多入力NANDの入力を1本の線にまとめて表すこの表記法は,実際の回路と
対応がとれず,誤解を招きやすいので,安易な導入は危険であるが,
見やすいのでしばしば利用されている。
なお,実際にいくつかの論理の出力を1本の線に接続すると,いわゆる
短絡状態を起こす可能性があり,場合によっては論理回路の壊滅的破壊を
招きかねないので,絶対に行ってはならない。
この図を,図 4.4の真理値表と比較してみると,
極めて強い対応がとれていることが理解できよう。
左半平面のNAND面では,真理値表の入力側の1に対して,
との接続が対応し,真理値表の0に対して,
との接続が対応している。
また右半平面のNAND面では,真理値表の出力側の1が対応している。
この左半分のNAND回路は,
桁の2進表現された数を解析して,
その数の内容に対応した
本の線のいずれかを選ぶ回路である。
2進表現コードを展開することからデコーダ(decoder)と呼ばれる。
ここに示したNAND回路は,選ばれた線だけが0となる回路である。
デコーダとは厳密には1本の線にだけ1を出す回路であるが,
その場合にはすべての線にNOTを付加すればよい。
なお,デコーダと分配器,デコーダと選択器の組合せもよく用いられる。