アフィリエイト広告
アフィリエイト広告

論理回路 / 基本的な論理回路

これまでにも扱ったことのある論理回路について。もう少し勉強してみたいところもあるので、ロジック IC などと戯れてみようかと思います。

まずは、おさらいから。

基本的な論理回路

論理回路の基本というと、AND、OR、NOT です。が、TTL とか DTL とかに遡っていくと、もっとも単純な論理回路は NAND なんだそうな。たしかに俺の頭の中でも、いつも NAND が基本にあったりするし、品番も 00 番だったりするし。

実験用の回路

図 1 ロジック IC 実験回路

わかってることでも、もう一度実際に確認してみよう。ってんで作った実験用の回路 (図 1)。

押しボタンを押すと、ゲートに HIGH が入力されると同時に、入力側の LED が点灯します。出力が HIGH のとき、出力側の LED が点灯します。

図 1 は NAND ゲートが入っていますが、AND や OR を入れれば、それぞれの動きが確認できます。

ちなみに、回路図の右側はロジック IC の電源と未使用ゲートの処理について書いてます。もちろん状況によって変化しますが、電源 Vcc と GND 間にコンデンサ 0.1μF を入れるとか、未使用ゲートは入力を Vcc または GND につないでおくこと、出力はオープンにしておくこと、これらは基本です。
回路図に書いてなくても、やるんですよ。

NAND ゲート

NAND ゲート、 74HC シリーズでは 74HC00 などです。

NAND ANSI Labelled.svg
By InductiveloadOwn work, Public Domain, Link

Input AInput BOutput Q
001
011
101
110
図 2 NAND ゲート

真理値表のように、2つの入力A、Bがともに “1” のときだけ、出力 Q が “0” になります。それ以外はすべて “1” です。
“1” とは HIGH レベル、”0″ は LOW レベルと考えて下さい。実験回路では、押しボタンを 2 つとも押したときだけ、出力 LED が消灯 (LOW)。その他の状態では点灯 (HIGH) したままです。

出力がいきなり負理論になっちゃうのでややこしいですが、AND の出力を NOT で反転したもの、と考えるとわかりいいかも、です。

論理式は、

Q = A・B

解説によっては、こんな式もでてきます。

Q = A・B = A + B

これは何だ?って話。

ひとつには、A を NOT した A と、B を NOT した B を、OR ゲートに入れると、NAND と同じ結果が得られるよ、ということ。

もうひとつは、この論理式は真理値表から導き出されている、ってこと。真理値表で Q = 0 になるのは、A、B がともに 1 のときだけ。したがって、論理式は、

Q = A + B

となる。これ、「主乗法標準形」っていいます。こいつを、ド・モルガンの法則にあてはめると、

Q = A + B = A・B

になり、どっちも同じ結果になる、ってことがわかります。

NOT ゲート

NOT ゲート、74HC シリーズでは 74HC04 など。「インバータ」ともいいます。

NOT ANSI Labelled.svg
By InductiveloadOwn work, Public Domain, Link

Input AOutput Q
01
10
図 3 NOT ゲート

NOT ゲートは、1 つの入力と 1 つの出力だけ。入力は反転して出力されます。

論理式は、

Q = A

簡単ですね。

NAND の出力の ○ は、負理論の意味もあるけど、NOT を表しているんだとか。

論理式を少し変換してみます。

図 4 NAND ゲートで作る NOT 回路
Q = A = A + A = A・A

ってことで、

fNOT(A) = fNAND(A,A)

つまり、NAND ゲートの 2 つの入力をショートして、同じ信号を入れると、NOT ゲートになる、ってことです (図 4)。

AND ゲート

AND ゲート、74HC シリーズでは 74HC08 など。

AND ANSI Labelled.svg
By InductiveloadOwn work, Public Domain, Link

Input AInput BOutput Q
000
010
100
111
図 5 AND ゲート

入力 A、B がともに 1 のときだけ、出力 Q が 1 になります。

論理式は、

Q = A・B

真理値表から導き出すには「主加法標準形」を使います。出力 Q が 1 になるのは、A、B がともに 1 のときだけです。したがって、

Q = A・B

うーん、そのまんまだ。

NAND は、AND の出力を NOT したものだと、上で書きました。逆に言うと、NAND の出力を NOT すると、AND になる。

図 6 NAND ゲートで作る AND 回路

fNOT(X) = fNAND(X,X) なので、

fAND(A,B) = fNOT(fNAND(A,B)) = fNAND(fNAND(A,B),fNAND(A,B))

これを論理回路にすると、図 6 のようになります。

OR ゲート

OR ゲート、74HC シリーズでは 74HC32 などです。

OR ANSI Labelled.svg
By InductiveloadOwn work, Public Domain, Link

Input AInput BOutput Q
000
011
101
111
図 7 OR ゲート

入力 A、B のどちらか一方でも 1 ならば、1 が出力されます。

論理式は、

Q = A + B

主乗法標準形でも、Q = 0 のとき f(0,0) なので、

Q = A + B

ですね。

ちなみに、

から、

fOR(A,B) = fNAND(A,B) = fNAND(fNOT(A),fNOT(B))

となります。

図 8 NAND ゲートで作る OR 回路

さらに変換して、NAND で構成してみましょう。

fOR(A,B) = fNAND(fNOT(A),fNOT(B)) 
         = fNAND(fNAND(A,A),fNAND(B,B))

図 8 のようになりました。
この論理回路を組んで、入力の 1 つ以上の押しボタンを押すと、出力の LED が点灯します。どちらの押しボタンも押していないときだけ、消灯します。OR 回路になっていますね。

HTML で二重の上線をつけられないので、一部の式が画像になってます。統一されてなくて、すんまへん m(_ _;)m

XOR ゲート

基本論理回路に入るのか、入らないのか、排他的論理和。74HC86 です。

XOR ANSI Labelled.svg
By InductiveloadOwn work, Public Domain, Link

Input AInput BOutput Q
000
011
101
110
図 9 XOR ゲート

2つの入力が異なる値のときに、出力が 1 になる論理回路です。

論理式は、主加法標準形により、

Q = A・B + A・B

となります。

XOR を他の論理ゲートを利用して作る方法が、ググるといろいろと紹介されています。俺がもっとも好きなのは、NAND ゲート 4 個を使って作るもの。これなら、74HC00 が 1 個あれば作れちゃいますからね。

論理式を変換してみましょう。まず、

A・B = A・B + B・B = B ( A + B ) = B・A・B

と変形できますので、

図 10 NAND ゲートで作る XOR 回路

これは、

fXOR(A,B) = fNAND(fNAND(fNAND(A,B),B),fNAND(A,fNAND(A,B)))

と表せられますので、論理回路は図 10 のようになりました。

後記

ああ、もう、小難しい論理演算はおしまいです。疲れました (;´Д`)

タイトルとURLをコピーしました