電子回路 ロジック回路
L. ロジック回路(Digital Logic Circuits)
ロジック回路は、電圧レベルを 0 / 1(Low / High) の 2 値として扱い、
論理演算(AND, OR, NOT など)を実現する回路である。
本章では
- 論理値とブール代数
- 基本論理ゲートと組み合わせ回路
- カルノー図による論理簡略化
- フリップフロップ・レジスタ・カウンタなどの順序回路
- クロックとタイミング
を整理する。
L1. 論理値とブール代数
(1) 2値論理
論理値:
\[
0 \ (\text{False}), \quad 1 \ (\text{True})
\]
電圧に対応させると
- 0:GND 付近(例:0~0.8 V)
- 1:電源電圧付近(例:2.0~5.0 V)
(2) ブール代数の基本演算
-
論理積(AND):
\[
z = x \cdot y
\]
-
論理和(OR):
\[
z = x + y
\]
-
否定(NOT):
\[
z = \bar{x}
\]
(3) 代表的な公式
-
交換則:
\[
x + y = y + x,\quad xy = yx
\]
-
結合則:
\[
(x + y) + z = x + (y + z)
\]
\[
(xy)z = x(yz)
\]
-
分配則:
\[
x(y + z) = xy + xz
\]
\[
x + yz = (x + y)(x + z)
\]
-
ド・モルガンの法則:
\[
\overline{x + y} = \bar{x} \cdot \bar{y},\quad
\overline{xy} = \bar{x} + \bar{y}
\]
L2. 基本論理ゲート
(1) 基本ゲート
- NOT(反転)ゲート:\( z = \bar{x} \)
- AND ゲート:\( z = x \cdot y \)
- OR ゲート:\( z = x + y \)
(2) 複合ゲート
- NAND:\( z = \overline{xy} \)
- NOR:\( z = \overline{x + y} \)
-
EX-OR(排他的 OR):
\[
z = x \oplus y = x\bar{y} + \bar{x}y
\]
-
EX-NOR(排他的 NOR):
\[
z = \overline{x \oplus y}
\]
(3) NAND・NOR 完全性
NAND ゲートや NOR ゲートだけで、任意の論理回路を構成できる(機能完全)。
L3. 真理値表と論理式
(1) 真理値表から論理式へ
出力が 1 になる行を列挙し、
それぞれの行を「積項」として OR で足し合わせた表現を 標準形という。
例:2 変数の場合
x y | z
---------
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
出力 1 の行は (0,1) と (1,0) なので
\[
z = \bar{x}y + x\bar{y} = x \oplus y
\]
(2) 積和形と和積形
- 積和形(SOP):AND の和(OR)で表す形
- 和積形(POS):OR の積(AND)で表す形
L4. カルノー図(Karnaugh Map)
(1) カルノー図とは
真理値表を 2 次元グリッドに並べ、
1 のマスをまとめて論理式を簡略化する手法。
(2) 2 変数・3 変数・4 変数カルノー図
変数の組み合わせをグレイコード順に並べることで、
隣接セルが 1 ビットだけ異なるようにする。
(3) グルーピングのルール
- 1, 2, 4, 8 ...(2 のべき)個単位でグループ化
- できるだけ大きいグループを作る(式が簡略化される)
- 四辺はループしているとみなしてよい
(4) 簡略化の効果
論理ゲート数を削減でき、回路規模・消費電力・遅延の低減につながる。
L5. 組み合わせ論理回路
入力の現在値だけで出力が決まる回路を組み合わせ回路という。
代表例:
(1) デコーダ(Decoder)
n ビット入力 → \(2^n\) 本の出力線のうち 1 本だけを High にする。
(2) エンコーダ(Encoder)
デコーダの逆。複数の入力のうち、どれが選ばれたかをビット列で出力する。
(3) マルチプレクサ(MUX)
複数の入力のうち 1 本を選択線で選び、出力に接続する回路。
(4) 加算器(Adder)
半加算器(Half Adder):
\[
S = A \oplus B,\quad
C = A \cdot B
\]
全加算器(Full Adder):
\[
S = A \oplus B \oplus C_{in}
\]
\[
C_{out} = AB + B C_{in} + A C_{in}
\]
L6. 順序回路とフリップフロップ
順序回路は、現在の入力だけでなく、過去の状態にも依存して出力が決まる回路。
記憶素子としてフリップフロップ(FF)やラッチを用いる。
(1) RS フリップフロップ
- 入力:R(Reset), S(Set)
- 出力:Q, \(\bar{Q}\)
(2) D フリップフロップ(D-FF)
クロック立ち上がり(or 立下り)で D の値を Q に取り込む。
\[
Q_{n+1} = D_n
\]
(3) JK / T フリップフロップ
- JK-FF:J, K 入力により Set / Reset / Toggle を制御
- T-FF:入力 T=1 でトグル動作。カウンタに便利
L7. レジスタ・カウンタ
(1) レジスタ
D-FF を並べたもの。n ビットの 2 進数を保持する:
- 並列入力・並列出力(PIPO)
- シフトレジスタ(SIPO / PISO / SISO)
(2) カウンタ
クロック入力を数える回路。
例:T-FF を用いた 2 進カウンタ
各段の T=1 とし、前段の Q をクロックとして接続。
L8. クロックとタイミング設計
(1) クロック信号
デジタルシステム全体の「時間の基準」となる矩形波。
周波数 f に対して、周期 T は
\[
T = \frac{1}{f}
\]
(2) セットアップ時間・ホールド時間
- セットアップ時間 \(t_{su}\):クロックエッジ前にデータが安定しているべき時間
- ホールド時間 \(t_h\):クロックエッジ後にデータを保持すべき時間
(3) タイミングマージン
配線遅延・ゲート遅延を考慮し、
セットアップ・ホールド違反が起きないようクロック周波数を決める。
(4) メタステーブル
非同期信号を D-FF で取り込むときなどに発生する「不安定状態」。
→ 2 段 FF で同期化するなどの対策を取る。