第1章 論理回路の基礎
1.1 ブール代数
�コンピュ タ 基礎と 論理体系 9世紀中頃 英国 数学者
ブ ル George Boole が考案したブ ル代数
つ 要素 と を含む集合B上
項演算 +と および単項演算  ̄ が定義さ ていて
つぎ 公理を満たす代数系 <B, +, ,  ̄ , , >
演算 + ブ ル和 ブ ル積  ̄ 反転
ブール代数の公理
1 ベ 等律 a + a = a a ・a = a
2 交換律 a + b = b + a a ・b = b ・a
3 結合律 (a + b) + c = a + (b + c) (a ・b) ・c = a ・(b ・c) 4 吸収律 a + (a ・b) = a a ・ (a + b) = a
5 分配律 (a + b) ・c = (a ・c) + (b ・c)
(a ・b ) + c = (a + c) ・(b + c) 6 対合律
7 相補律
8 単位元 1・a = a 0 + a = a 9 零元 1 + a = 1 0・a = 0 10 ド・モル ン )eMorgan 律
a = a
a + a = 1
a⋅ a = 0(a + b) = a⋅ b
(a⋅ b) = a + b論理代数
ブール代数 <B, +, ・,  ̄ , 0, 1> は 一般に、B = {0, 1, a, b, c, …. }
特に、B = {0,1} の場合,論理代数と呼ぶ
+ 論理和
・ 論理積
 ̄ 論理否定 と呼ぶ
論理和、論理積、論理否定
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1
0・0 = 0 0・1 = 0 1・0 = 0 1・1 = 1
0 = 1 1 = 0
+ 論理和
・ 論理積
 ̄ 論理否定
普通の代数との違い
論理式、論理関数
論理代数 <{0,1}, +, ・,  ̄ , 0, 1> において 0,1の値をとる変数を 論理変数
論理変数と0と1に演算 +, ・ ,  ̄ を施して得られる式を論理式 論理式で表現する関数を論理関数
論理関数は論理式で表現される
例えば、多数決関数と呼ばれる論理関数はつぎの論理式
f(x
1, x
2, x
3) = x
1x
2+ x
2x
3+ x
3x
1論理式による表現
積項
和項
論理和形
論理積形 x1x2x3
x1 + x2 + x3 x1x2x3 x1x2x3 +
(x1+x2+x3) (x1+x2+x3)
主加法標準形 主乗法標準形
最小項 最大項 あとで説明
論理式による表現
x1 x2 x3 f 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 1 0 1 1 1
表1.1 多数決論理関数の真理値表
論理式による表現 (最小項)
x1 x2 x3 f 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 1 0 1 1 1
表1.1 多数決論理関数の真理値表
x1・x2・x3
最小項
論理式による表現 (最小項)
x1 x2 x3 f 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 1 0 1 1 1
表1.1 多数決論理関数の真理値表
x1・x2・x3
最小項
論理式による表現 (最小項)
x1 x2 x3 f 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 1 0 1 1 1
表1.1 多数決論理関数の真理値表
x1・x2・x3
最小項
論理式による表現 (最小項)
x1 x2 x3 f 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 1 0 1 1 1
表1.1 多数決論理関数の真理値表
x1・x2・x3
最小項
論理式による表現(主加法標準形)
x1 x2 x3 f 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 1 0 1 1 1
主加法標準形 = 最小項の論理和形 最小項
x1x2x3 x1x2x3
x1x2x3 x1x2x3 +
f = + +
デモ: trueLogic
論理ゲート
AND OR NOT
Q = A•B Q = A+B Q = A
0 0 0 0 1 0 1 0 0 1 1 1
A•B A B
0 0 0 0 1 1 1 0 1 1 1 1
A+B A B
0 1 1 0 A A
論理積 論理和 論理否定
論理ゲート
NAND NOR XOR
Q = A•B Q = A+B
0 0 1 0 1 1 1 0 1 1 1 0
A•B A B
0 0 1 0 1 0 1 0 0 1 1 0
A+B A B
0 0 0 0 1 1 1 0 1 1 1 0
A + B A B
Q = A + B 排他的論理和
論理回路
入力値、出力値、内部状態の値が0または1の組合せとして 表現できる回路を論理回路(ディジタル回路)
入力 内部状態 出力
(記憶)
組合せ回路 内部状態(記憶)がない
順序回路 内部状態(記憶)がある
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
3二つの論理式を調べてみよう
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
3f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
31
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
31
1
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
31
1
1
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
3f1のカルノー図
1
1
1
1
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
3f1のカルノー図
1
1
1
1
x
1x
2x
31
1
1
1
f 1 とf 2 は等価な論理式?
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
31
x
1x
2x
3f1のカルノー図
1
1
1
1 1
x
1x
2x
31
1
1
1
f 1 とf 2 は等価な論理式?
f = x
1+ x
2x
31
x
1x
2x
3f1のカルノー図
1
1
1
1 1
x
1x
2x
31
1
1
1
f2のカルノー図
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f
1とf
2は等価である!
より小さな論理回路で実現
f
2= x
1+ x
2x
3f
1= x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3より小さな論理回路で実現
f
2= x
1+ x
2x
3f
1= x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3回路の大きさは
ANDゲートの個数(積項数) 入力線の総数(リテラル数)
で評価できる
論理式の簡単化
積項数が最小の論理和形を、項数最小論理和形
項数最小論理和形のうちで
リテラルの総数が最小の論理和形を、最小論理和形
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3f = x
1+ x
2x
3積項数=5, リテラル数=15
積項数=2, リテラル数=3
カルノー図による簡単化
1
x
1x
2x
31
1
1
1
最小項
f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3カルノー図による簡単化
ブール代数の公理、分配律、相補律 x•a + x•a = x•(a + a) = x
1
x
1x
2x
31
1
1
1
x1x2x3 x1x2x3 x2x3
x1•x2•x3 + x1•x2•x3 = (x1 + x1)•x2•x3 = x2•x3
隣接するループを併合
カルノー図による簡単化
ブール代数の公理、分配律、相補律 x•a + x•a = x•(a + a) = x
1
x
1x
2x
31
1
1
1
x1x2
x1x2 x1 x1•x2 + x1•x2 = x1• (x2 + x2) = x1
隣接するループを併合
カルノー図による簡単化
隣接するループを併合し続ける
これ以上併合できないループ(極大なループ)を 主項と呼ぶ
1
x
1x
2x
31
1
1
1
x1 x2x3
f = x
1+ x
2x
3f = x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3+ x
1x
2x
3第2章 組合せ回路の設計
組合せ回路の設計手順
組合せ回路の設計手順
(1)実現しようとする組合せ回路の機能の仕様を記述する 具体的には、入力と出力の対応を記述する
(2)仕様を満たす真理値表を作成する
(3)真理値表の各出力に対応する論理関数の簡単化を行なう (4)論理図を描く
半加算器の設計
半加算器は1ビットの加算を行う回路
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
0 0 0 1
1
表2.1 半加算器の真理値表
Sum 和 Carry
桁上げ
0 0 0 1
1
半加算器の設計
表2.1 半加算器の真理値表
S = X Y + X Y = X ⊕ Y
C = X Y
0 0 0 1
1
半加算器の設計
表2.1 半加算器の真理値表
S = X Y + X Y = X ⊕ Y
C = X Y
0 0 0 1
1
半加算器の設計
表2.1 半加算器の真理値表
S = X Y + X Y = X ⊕ Y
C = X Y
0 0 0 1
1
半加算器の設計
表2.1 半加算器の真理値表
S = X Y + X Y = X ⊕ Y
C = X Y
0 0 0 1
1
半加算器の設計
表2.1 半加算器の真理値表
S = X Y + X Y = X ⊕ Y
C = X Y
図2.4 半加算器の論理図
全加算器の設計
表2.2 全加算器の真理値表
図2.6 全加算器の論理図
下位ビットからの 桁上げ
上位ビットへの 桁上げ
和
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
全加算器の設計
表2.2 全加算器の真理値表
図2.5 全加算器のカルノー図
図2.5 全加算器のカルノー図
全加算器の設計
YZ
XZ
XY
C
XYZ
Z
Y
X
Z
Y
X
Z
Y
X
S
+
+
=
+
+
+
=
論理式
Y)
Z(X
XY
C
Z
Y
X
S
⊕
+
=
⊕
⊕
=
論理式の簡単化
S = X ⊕ Y ⊕ Z
C = X Y + Z (X ⊕ Y)
全加算器の設計
図2.6 全加算器の論理図
図2.7 4ビット並列加算器
4ビット並列加算器
デコーダの設計
nビットの信号 An-1An-2…A1A0 が入力されると、そのnビット 2進数に対応する番号の出力線に信号を出す回路
A0 A1 A2
D0 D1 D2 D3 D4 D5 D6 D7
デコーダ DEC
デコーダの設計
nビットの信号 An-1An-2…A1A0 が入力されると、そのnビット 2進数に対応する番号の出力線に信号を出す回路
D0 D1 D2 D3 D4 D5 D6 D7 A0
A1 A2 1 0
0
0 1 0 0 0 0 0 0 (001)2 = 1
デコーダの設計
nビットの信号 An-1An-2…A1A0 が入力されると、そのnビット 2進数に対応する番号の出力線に信号を出す回路
D0 D1 D2 D3 D4 D5 D6 D7 A0
A1 A2 1 1
0
0 0 0 1 0 0 0 0 (011)2 = 3
デコーダの設計
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
表2.3 3入力8出力デコーダの真理値表
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D0 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D1 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D2 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D3 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D4 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D5 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D6 = A2 A1 A0
表2.3 3入力8出力デコーダの真理値表
デコーダの設計
D7 = A2 A1 A0
図2.8 3入力8出力デコーダの論理図 68
デコーダの設計
D0 = A2 A1 A0 D1 = A2 A1 A0 D2 = A2 A1 A0 D3 = A2 A1 A0 D4 = A2 A1 A0 D5 = A2 A1 A0 D6 = A2 A1 A0 D7 = A2 A1 A0
マルチプレクサの設計
多数の入力線の中から1つの入力線を選択し、その入力線の信号を 出力線に伝える回路をマルチプレクサと呼ぶ、セレクタとも呼ぶ
Y D0
D1 D2 D3
マルチ プレクサ S1 S0
MUX
マルチプレクサの設計
Y D0
D1 D2 D3
MUX
S1 S0 S
1 S0 Y
0 0 0 1 1 0 1 1
D0 D1 D2 D3
マルチプレクサの設計
Y D0
D1 D2 D3
MUX
S1 S0 S
1 S0 Y
0 0 0 1 1 0 1 1
D0 D1 D2 D3
Y = S1 S0 D0 + S1 S0 D1 + S1 S0 D2 + S1 S0 D3
マルチプレクサの設計
Y D0
D1 D2 D3
MUX
S1 S0 S
1 S0 Y
0 0 0 1 1 0 1 1
D0 D1 D2 D3
Y = S1 S0 D0 + S1 S0 D1 + S1 S0 D2 + S1 S0 D3
マルチプレクサの設計
Y D0
D1 D2 D3
MUX
S1 S0 S
1 S0 Y
0 0 0 1 1 0 1 1
D0 D1 D2 D3
Y = S1 S0 D0 + S1 S0 D1 + S1 S0 D2 + S1 S0 D3
マルチプレクサの設計
Y D0
D1 D2 D3
MUX
S1 S0 S
1 S0 Y
0 0 0 1 1 0 1 1
D0 D1 D2 D3
Y = S1 S0 D0 + S1 S0 D1 + S1 S0 D2 + S1 S0 D3
75
マルチプレクサの設計
図2.11 4入力マルチプレクサ
Y = S1 S0 D0
+ S1 S0 D1 + S1 S0 D2 + S1 S0 D3
第3章 順序回路の設計
順序回路の構成
図3.1 順序回路の構成
順序回路の構成
図3.2 ッ パ 図3.3 同期式順序回路の構成
クロックパルスで 時間を刻む 時刻を知らせる
順序回路の構成
図3.2 ッ パ 図3.3 同期式順序回路の構成
クロックで同期する記憶素子 フリップフロップ
D フリップフロップ
図3.8 制御入力を含 D ッチ
0
1 0
1
1
0
1 0
1
1 1
1
0
0
1
0
D フリップフロップ
0
1 0
1
1
0
1 0
1
1 1
1
0
0
1
0
D フリップフロップ
0
1 0
1
1
D フリップフロップ
Q Q D
C ッ
3.3 順序回路の設計例
Z0 3ビットカウンタ X
Z2 Z1
X から入力される1の個数を3ビット2進数で表示する 000→001→010→011→100→101→110→111
3.3 順序回路の設計例
図3.12 ビッ カウンタ
Z0 3ビットカウンタ X
Z2 Z1
000
001
010
011 100
101 110
111
3.3 順序回路の設計例
表3.5 ビッ カウンタの状態遷移表
表3.4 状態割当
87
3.3 順序回路の設計例
3.13 D
88
3.3 順序回路の設計例
D
Y0
= Y
0X + Y
0X = Y
0⊕ X
3.13 D
89
DY
1 = Y1 Y0 + X + Y1Y0X = Y1 ⊕ Y0X
3.3 順序回路の設計例
3.13 D
90
DY
2 = Y2 Y1 + Y0 + X + Y2Y1Y0X = Y2 ⊕ Y1Y0X
3.3 順序回路の設計例
3.13 D
91
DY
0 = Y0X + Y0X = Y0 ⊕ X
DY
2 = Y2 Y1 + Y0 + X + Y2Y1Y0X = Y2 ⊕ Y1Y0X
DY
1 = Y1 Y0 + X + Y1Y0X = Y1 ⊕ Y0X
3.3 順序回路の設計例
3.14
3.3 順序回路の設計例
図3.15 タイミン 信号の生成
3.3 順序回路の設計例
図3.15 タイミン 信号の生成
0
0 1 0
0 0
0 0
T0 = 1
3.3 順序回路の設計例
図3.15 タイミン 信号の生成
1
0 0 1
0 0
1 0
T1 = 1
3.3 順序回路の設計例
図3.15 タイミン 信号の生成
0
1 0 0
1 0
0 1
T2 = 1
3.3 順序回路の設計例
図3.15 タイミン 信号の生成
1
1 0 0
0 1
1 1
T3 = 1
97
3.3 順序回路の設計例
3.16
図3.17 タ
3.3 順序回路の設計例
図3.18 RAMの ッ 図 RAM
Random Access Memory
99
3.3 順序回路の設計例
図3.19 ビッ × 語 RAM
図3.20 記憶セ
100
3.3 順序回路の設計例
図3.19 ビッ × 語 RAM
図3.20 記憶セ 0
1 0
1
0
1 1 1
1
書 込
1
書 込
0
101
3.3 順序回路の設計例
図3.19 ビッ × 語 RAM
図3.20 記憶セ 1
1 0
1
0 1
1 0
0
読 出し
1
1 1
読 出し
1
3.3 順序回路の設計例
ア を
設定
ータを 設定
書 込
3.3 順序回路の設計例
ア を
設定
読 出し
ータ
読 出された