EnsekiTT Blog

EnsekiTTが書くブログです。

NANDロジックでNOT, AND, OR, NOR, XORロジックを実現した話

つまり何したの?

NAND回路を組み合わせて基本的なロジックを実現してみた。
せっかくなので2入力のロジックについてはNANDの汎用ロジックICを使って実際に実装してみた。

NANDロジックでNOT, AND, OR, NOR, XORロジックを実現した話

今回実現する汎用ロジック

  • NOT
  • AND
  • NOR
  • OR
  • XOR

の5つ(実装時は比較のためにNANDを入れて6つ)

それぞれの真理値表は以下のようになる

A B NOT forA AND NOR OR XOR
0 0 1 0 1 0 0
0 1 1 0 0 1 1
1 0 0 0 0 1 1
1 1 0 1 0 1 0

NANDを汎用ロジックICで実現する

前回、NAND回路はトランジスタで作ったが、作れることがわかったので今度はNAND回路を内包した汎用ロジックICを使う。汎用ロジックICとは汎用的に使われる論理演算等のロジックをICで実現したもの。

ensekitt.hatenablog.com

まずベースとなる2入力、1出力のNANDロジックは以下のような記号で表す。左から0か1(電圧が低いか高いかで表される)の信号が入力され、右からNANDロジックの結果が出力される。

NAND

実際に使うNANDの汎用ロジックICはこのようなもので、74HCというシリーズの汎用ロジックICが店頭に手に入りやすいのでそれを採用した。
図の読み方として、A,Bから信号を入力しYに信号を出力される。VccとGNDは電源用のピンのこと。

74HC00

実物はこんな感じ。

実際の74HC00

NANDロジックで他の汎用ロジックを表す

NOT

NOTロジック(インバータとも)は1つの入力の信号を論理反転して出力するもの。
A,Bどちらにも同じ信号を入れると結果が反転されるため1つのNANDロジックで実現できる。

NOT

AND

一般的な論理回路の教科書ではNANDロジックよりも先に紹介される非常にメジャーなロジック。文字通りA,Bどちらの入力も1の場合に出力が1になる。
そしてANDの出力を反転させるとNANDロジックになるため、NANDロジックで実現する場合にはNANDロジックの出力をNOTロジックで反転して実現する。

AND

OR

ORロジックはこちらも文字通りA,Bどちらかもしくは両方の入力が1の場合に出力が1になる。
入力信号を反転させてからNANDロジックに入力することで、ORロジックを実現できる。

OR

NOR

NORロジックはORを反転させたロジックなのでORロジックをNOTで反転して実現できる。

NOR

XOR

XORロジックは2つの入力が異なる場合に1を出力するロジックである。あまり直感的ではないがよく使われる。
データの暗号化や整合性チェックなどかなり色々な場面で使われているが具体的な使い方はまた今度。
4つのNANDロジックを使ってほかよりも少し複雑な形で実現される。

XOR

実際に回路を組んでみる

A,Bは入力で、各ロジックの出力をいかに示す。

A B NOT forA NAND AND NOR OR XOR
0 0 1 1 0 1 0 0
0 1 1 1 0 0 1 1
1 0 0 1 0 0 1 1
1 1 0 0 1 0 1 0

実際の回路でも同じ順番で並ぶように設計してみた。

回路図

表1. 部品リスト


実際のICで実現すると結構配線が大変で、ユニバーサル基盤で実現するときにはポリウレタン銅線を多用した。
ICを使うのでパスコン(0.1uF)を申し訳程度につけてみた。(写真に写っていないが、ICの上側にある。あと、電源側のパスコン(100uFの電解コンデンサ)は買ってきたのにつけ忘れた。
左側のスイッチがA,右側のスイッチがB, 各LEDは左からNOT, NAND, AND, NOR, OR, XORの順で並んでおり1になると光る。
各状態を以下に示す。

State A:0, B:0

NOT: 1, NAND: 1, AND: 0, NOR: 1, OR: 0, XOR: 0

State A:1, B:0

NOT: 0, NAND: 1, AND: 0, NOR: 0, OR: 1, XOR: 1

State A:0, B:1

NOT: 1, NAND: 1, AND: 0, NOR: 0, OR: 1, XOR: 1

State A:1, B:1

NOT: 0, NAND: 0, AND: 1, NOR: 0, OR: 1, XOR: 0

まとめ

NANDロジックで様々な汎用ロジックを作ることができるらしいので組み合わせて作ってみた。
今回はNANDを使ってNOT, AND, OR, NOR, XORロジックを実際の回路でつくることができることを確認した。
ちょっと小さい基盤に作ったら目も当てられない感じの裏側になっている。。。

裏側
クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。