---
title: 論理ゲートとブール代数
url: https://doc.liz6.com/ja/hardware/05-digital-circuits/01-logic-gates-and-boolean-algebra
locale: ja
area: hardware
tags:
- hardware
- digital-circuits
date: 2026-06-30
modified: 2026-07-16
description: 論理ゲートとブール代数 ブール代数の基礎 3つの基本演算 真理値表 基本定理 --- 基本論理ゲート 記号と式 NAND / NOR の汎用性 --- 組合せ論理の簡略化 カルノ図 (Karnaugh Map) 競争とハザード --- 論理レベル TTL vs CMOS 入力タイプ --- 実際のゲート回路 CMOS …
---

# 論理ゲートとブール代数

## ブール代数の基礎

### 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*
