このページの目次
論理ゲートとブール代数
ブール代数の基礎
3つの基本演算
AND (AND): Y = A · B 「両方が1の場合のみ1」
OR (OR): Y = A + B 「どちらかが1なら1」
NOT (NOT): Y = Ā 「反転」
真理値表
AND OR NOT
A B | Y A B | Y A | Y
0 0 | 0 0 0 | 0 0 | 1
0 1 | 0 0 1 | 1 1 | 0
1 0 | 0 1 0 | 1
1 1 | 1 1 1 | 1
基本定理
結合法則: (A·B)·C = A·(B·C)
(A+B)+C = A+(B+C)
交換法則: A·B = B·A
A+B = B+A
分配法則: A·(B+C) = A·B + A·C
ド・モルガンの定理 (極めて重要!):
───
A·B = Ā + B̄ 「ANDの否定 = NOTのOR」
───
A+B = Ā · B̄ 「ORの否定 = NOTのAND」
簡約:
A + Ā = 1
A · Ā = 0
A + 1 = 1
A · 0 = 0
A + A = A
A · A = A
= (二重否定)
A = A
基本論理ゲート
記号と式
AND: A ──┬──
│ )── Y Y = A·B
B ──┴──
OR: A ──┬──
│ )── Y Y = A+B
B ──┴──
NOT: A ──▷── Y Y = Ā
NAND: A ──┬──
│ )─○ Y Y = A·B̄ (AND + NOT)
B ──┴──
NOR: A ──┬──
│ )─○ Y Y = A+B̄ (OR + NOT)
B ──┴──
XOR: A ──┬──
│ )── Y Y = A⊕B = ĀB + AB̄
B ──┴── 「入力が異なれば1」
XNOR: A ──┬──
│ )─○ Y Y = A⊕B̄ 「入力が同じなら1」
B ──┴──
NAND / NOR の汎用性
NAND だけで任意の論理関数を実現できる!
NOT: A NAND A = Ā
AND: (A NAND B) NAND (A NAND B) = A·B
OR: (A NAND A) NAND (B NAND B) = A+B
NOR も同様にすべての論理を構築可能
これが NAND Flash や NOR Flash の名前の由来である
組合せ論理の簡略化
カルノ図 (Karnaugh Map)
2変数:
B
A 0 1
0 0 1
1 1 0 ← 出力値を填入
3変数: AB/C の順に配置
隣接する1をグループ化 (2ⁿ 個ずつ) → 最小項を導出 → 最簡式を得る
目的: 最少のゲート数で与えられた真理値表を実現する
競争とハザード
複数の信号経路で遅延が異なる → 出力に一時的な誤パルス (glitch) が発生
例: A と Ā が AND ゲートに同時に到達すべきだが、Ā はインバータを通るため遅延が生じる
→ 一瞬だけ A=1, Ā=1 (まだ0に切り替わっていない) → AND 出力が誤って1になる
解決策: 冗長項を追加するか、出力にコンデンサでフィルタリングを施す
論理レベル
TTL vs CMOS
TTL (5V) CMOS (5V) CMOS (3.3V)
VIH: > 2.0V > 3.5V > 2.0V
VIL: < 0.8V < 1.5V < 0.8V
VOH: > 2.4V > 4.4V > 2.9V
VOL: < 0.4V < 0.1V < 0.4V
ノイズマージン = min(VOH-VIH, VIL-VOL)
CMOS のノイズマージンは TTL より明らかに優れている
入力タイプ
浮遊入力 — 絶対に避けること! CMOS の入力が浮遊すると、不確実な状態 + 大きな消費電力になる
未使用の入力ピン: Vcc または GND に接続する (抵抗を介して)
実際のゲート回路
CMOS インバータ
Vdd
│
┌───┤ PMOS (上側トランジスタ)
│ │
A ──┤ ├── Y
│ │
└───┤ NMOS (下側トランジスタ)
│
GND
A=1 → NMOS ON, PMOS OFF → Y=0
A=0 → NMOS OFF, PMOS ON → Y=1
CMOS の最大の利点: 静止時の消費電力はほぼゼロ!
(切り替え時の瞬間のみ電力を消費する)
74 シリーズ早見表
74HC00: 2入力 NAND ゲート x 4
74HC02: 2入力 NOR ゲート x 4
74HC04: NOT ゲート (インバータ) x 6
74HC08: 2入力 AND ゲート x 4
74HC32: 2入力 OR ゲート x 4
74HC86: 2入力 XOR ゲート x 4
74HC14: シミットトリガ NOT ゲート x 6
74HC595: 8ビットシフトレジスタ (非常に一般的!)
74HC165: 8ビット並列→直列変換
キーワード: ブール代数, AND, OR, NOT, NAND, NOR, XOR, ド・モルガン, カルノ図, CMOS, TTL