ブール代数の基本概念

デジタル回路は 0(偽・Low)と 1(真・High)の2値で動作する。 この2値を扱う代数系を ブール代数と呼ぶ(George Boole 1847年考案、Claude Shannon が電気回路に応用)。 すべての論理演算は下記3つの基本演算から構成される。

演算記号意味
NOT(否定)A入力を反転する
AND(論理積)A · B両方が1のときだけ1
OR(論理和)A + Bどちらか一方でも1なら1

7つの基本ゲート — MIL記号・真理値表・ブール式

A Y
NOT ゲート

NOT(インバータ)

Y = A
AY
01
10

入力を反転。1入力・1出力。

A B Y
AND ゲート

AND(論理積)

Y = A · B
ABY
000
010
100
111

両入力が 1 のときのみ 1 を出力。

A B Y
OR ゲート

OR(論理和)

Y = A + B
ABY
000
011
101
111

どちらか一方でも 1 なら 1 を出力。

A B Y
NAND ゲート

NAND(否定論理積)

Y = A · B
ABY
001
011
101
110

AND を反転。NAND だけで全ゲートを構成できる(論理的完全性)。

A B Y
NOR ゲート

NOR(否定論理和)

Y = A + B
ABY
001
010
100
110

OR を反転。NAND と同様に論理的完全性をもつ。

A B Y
XOR ゲート

XOR(排他的論理和)

Y = A ⊕ B
ABY
000
011
101
110

入力が異なるときのみ 1。加算のビット和に相当。左側の二重曲線が識別記号。

A B Y
XNOR ゲート

XNOR(排他的否定論理和)

Y = A ⊕ B
ABY
001
010
100
111

入力が等しいときに 1。一致検出・比較回路に使われる。


ブール代数の法則

これらを使って論理式を簡略化し、ゲート数を減らせる。

法則AND 形OR 形
同一律A · 1 = AA + 0 = A
零元律A · 0 = 0A + 1 = 1
冪等律A · A = AA + A = A
補元律A · A = 0A + A = 1
二重否定律A = A
交換律A · B = B · AA + B = B + A
結合律(A·B)·C = A·(B·C)(A+B)+C = A+(B+C)
分配律A·(B+C) = A·B + A·CA+(B·C) = (A+B)·(A+C)
吸収律A·(A+B) = AA + A·B = A

ド・モルガンの定理(De Morgan's Laws)

NOT を AND/OR の内側に分配する最重要定理。NAND・NOR の等価変換に直接応用できる。

A · B  =  A + B    (NAND = 各入力を反転して OR)
A + B  =  A · B    (NOR = 各入力を反転して AND)

覚え方: バーを中に分配したら演算子を反転(AND ↔ OR)する。


論理式と回路図の対応

優先順位は NOT > AND > OR(乗算=AND が加算=OR より優先)。 括弧で明示的に順序を指定できる。

例: Y = A · B + C

A  — A を NOT で反転
A · B  — ①の出力と B を AND
③ ② + C  — ②の出力と C を OR  → Y
A B C Y ① NOT ② AND ③ OR
Y = A · B + C の回路構成

応用:半加算器(Half Adder)

1ビット同士の加算を行う最小単位の回路。A と B を加算し、 Sum(和ビット)Cout(桁上がり)を出力する。

真理値表

ABS (Sum)C (Carry)
0000
0110
1010
1101
S  = A ⊕ B   (XOR ゲート)
Cout = A · B   (AND ゲート)

例: 1+1 = 10₂  → S=0、Cout=1(桁上がり発生)

前の桁からの繰り上がり(Cin)を扱えない点が「半」の意味。 2ビット目以降には 全加算器(Full Adder)が必要。

A B S Cout XOR AND
半加算器の回路(XOR + AND)