ディジタル回路
DATE :
2. ブール代数 と 論理ゲート
五島 正裕
ディジタル回路
2
今日の内容
1. 本論
1. 論理ゲート
2. ブール代数
3. 論理関数
4. 論理関数の完全性
「すべての論理回路は, AND , OR , NOT の組み合わせでできる」
2. 今日のまとめ
ディジタル回路
3
論理ゲート
ディジタル回路
論理ゲート
a b z
0 0 0
0 1 0
1 0 0
1 1 1
a z
0 1
1 0
a
bz
a
bz a z
z = a∙b z = a’
z = a
AND OR NOT
MIL 記号
MIL symbol
論理式
logic expression
真理値表
truth table
(論理積) (論理和) (論理否定)
z = ¬ aa b z
0 0 0
0 1 1
1 0 1
1 1 1
z = a + b
ディジタル回路
論理ゲート
a
bz
a
bz a z
z = (a∙b)’ z = (a + b)’ z = a
NAND NOR buffer?
MIL 記号
MIL symbol
論理式
logic expression
真理値表
truth table
a b z
0 0 1
0 1 1
1 0 1
1 1 0
a b z
0 0 1
0 1 0
1 0 0
1 1 0
a z
0 0
1 1
ディジタル回路
論理ゲート
a
bz
a
bz
z = a
XOR (EOR) XNOR (EQ)
MIL 記号
MIL symbol
論理式
logic expression
真理値表
truth table
(排他的論理和)
b z = a b
a b z
0 0 0
0 1 1
1 0 1
1 1 0
a b z
0 0 1
0 1 0
1 0 0
1 1 1
ディジタル回路
7
余談 1/2
MIL 記号
MIL : 米国軍用規格( Military Standard )
JIS の論理記号もある(が,誰も使わない)
ディジタル回路
8
余談 2/2
OR と XOR
OR : (包含的)論理和 (inclusive-OR)
XOR : 排他的 論理和 (exclusive-OR)
日常の「または」は,どっち?
1 年以下の懲役 または 100 万円以下の罰金
x = 0, 1
英語の A and/or B
ディジタル回路
9
組み合わせ回路 (Combinational Circuit)
a
b
c
d
z
z = a∙b + c∙d
ディジタル回路
10
ブール代数
ディジタル回路
11
ブール代数
ブール代数 (Boolean Algebra)
George Bool
論理計算のために考案
Claude Shannon
論理回路に応用
ディジタル回路
ブール代数の公理
交換則
x ∙ y = y ∙ x
x + y = y + x
結合則
(x ∙ y) ∙ z = x ∙ (y ∙ z)
(x + y) + z = x + (y + z)
分配則
x ∙ (y + z) = x ∙ y + x ∙ z
x + y ∙ z = (x + y) ∙ (x + z)
単位元 1 が存在する
∀x, x∙1 = x
零元 0 が存在する
∀x, x + 0 = x
補元 x’ が存在する
∀x, x∙x’ = 0
∀x, x + x’ = 1
ディジタル回路
14
ブール代数の例 ― 論理演算
論理演算
単位元 : 1
零 元 : 0
論理積 : 0 ・ 0 = 0, 0 ・ 1 = 0, 1 ・ 0 = 0, 1 ・ 1 = 1
論理和 : 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 1
補 元 : 0’ = 1, 1’ = 0
ディジタル回路
ブール代数の定理
対合則
(x’)’ = x
べき等則
x ∙ x = x
x + x = x
吸収則1
x ∙ (x + y) = x
x + (x ∙ y) = x
吸収則2
x ∙ (x’ + y) = x ∙ y
x + (x’ ∙ y) = x + y
ド・モルガンの定理
(x∙y)’ = x’ + y’
(x + y)’ = (x’)∙(y’)
ディジタル回路
ド・モルガンの法則
(x∙y)’ = x’ + y’
(x + y)’ = (x’)∙(y’)
ベン図
ディジタル回路
17
双対性 (Duality)
ブール代数の公理は「ペア」
“∙” (AND) ⇔ “ +” (OR) , “ 0” ⇔ “1” を入れ替えると入れ替わる
分配則:“+” も分配する
x ∙ (y + z) = (x ∙ y) + (x ∙ z)
x + (y ∙ z) = (x + y) ∙ (x + z)
双対とは,いわば,「対等」
ディジタル回路
18
論理関数
ディジタル回路
19
論理関数
f : (i1, i2, …, in) → o (i1, i2, …, in, o : ブール変数)
2 入力論理関数:先ほどの AND , OR 等
1 入力論理関数: NOT , BUF 等
真理値表 (truth table)
関数の定義
i1 i2 … in o
0 0 … 0 0/1
0 0 … 1 0/1
… … … … …
1 1 … 1 0/1
ディジタル回路
20
表による定義
式 表
普通の関数 f(x) = x 定義 定義ではない
x f(x)
0 0
1 1
… …
論理関数 f(x) = x 定義 定義
x f(x)
0 0
1 1
ディジタル回路
21
n 入力論理関数の数
n 入力の論理関数は 22
n とおり
入力は 2n とおり
そのそれぞれに, 0 または 1 を指定できる
i1 i2 … in o
0 0 … 0 0/1
0 0 … 1 0/1
… … … … …
1 1 … 1 0/1
2n
ディジタル回路
すべての 1 , 2 入力論理関数
i1 o0 o1 o2 o3
0 0 0 1 1
1 0 1 0 1
i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15
00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
21 = 2
22 = 4
221 = 4
222 = 16
すべての 1 入力論理関数
すべての 2 入力論理関数
ディジタル回路
すべての 1 , 2 入力論理関数
i1 o0 o1 o2 o3
0 0 0 1 1
1 0 1 0 1
i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15
00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
21 = 2
22 = 4
221 = 4
すべての 1 入力論理関数
すべての 2 入力論理関数
AND
XOR
OR
NOR
XNOR NAND
ディジタル回路
24
完全性
ディジタル回路
25
完全性( Completeness ,完備性)
完全集合 (Complete Set)
論理関数の集合で,その要素の組み合わせによって,すべての論理関数を表現できる
完全集合の例
{AND, OR, NOT}
{AND, NOT}
{OR, NOT}
{NAND}
{NOR}
ディジタル回路
26
完全性の証明 {AND, OR, NOT}
数学的帰納法:
1. 1 入力の論理関数は {AND, OR, NOT} の組合せで表現できる
2. n 入力の関数を {AND, OR, NOT} の組合せで表現できたと仮定して,(n + 1) 入力の関数が表現できることをいう
ディジタル回路
27
完全性の証明 {AND, OR, NOT}
1.1 入力の論理関数はすべて, {AND, OR, NOT} の組合せで表現できる.
i1 o0 o1 o2 o3
0 0 0 1 1
1 0 1 0 1
o
0
= 0 o
1
= i
1
o
2
= i’
1
o
3
= 1
0 1
ディジタル回路
すべての 1 , 2 入力論理関数
i1 o0 o1 o2 o3
0 0 0 1 1
1 0 1 0 1
i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15
00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
すべての 1 入力論理関数
すべての 2 入力論理関数
ディジタル回路
29
完全性の証明 {AND, OR, NOT}
1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう
f
10
f
11
i
1
i
2
= 0
0
1
f = i’
2 ∙ f
10 + i
2 ∙ f
11
ディジタル回路
30
完全性の証明 {AND, OR, NOT}
1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう
i
2
= 1
f = i’
2 ∙ f
10 + i
2 ∙ f
11
0
1
f
10
f
11
i
1
ディジタル回路
たとえば AND
i1 o0 o1 o2 o3
0 0 0 1 1
1 0 1 0 1
i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15
00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
すべての 1 入力論理関数
すべての 2 入力論理関数
AND
ディジタル回路
32
たとえば AND
1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう
i
2
= 0
f = i’
2 ∙ f
10 + i
2 ∙ f
11
f
10
f
11
i
1
1
0
ディジタル回路
33
たとえば AND
1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう
i
2
= 1
f
10
f
11
f = i’
2 ∙ f
10 + i
2 ∙ f
11
1
0
i
1
ディジタル回路
34
完全性の証明 {AND, OR, NOT}
1. n 入力の関数を {AND, OR, NOT} の組合せで表現できたと仮定して,
(n + 1) 入力の関数が表現できることをいう
in+1 in … i2 i1 o
0
0 … 0 0
0 … 0 1
… … … … …
1 … 1 1
1
0 … 0 0
0 … 0 1
… … … … …
1 … 1 1
f = i’
n+1∙ f
n0 + i
n+1∙ f
n1
f
n0
f
n1
i
n+1
i
1i
2
i
n…
……
ディジタル回路
35
LUT による完全性の証明 1/3
LUT : Look-Up Table
ハードウェアで,真理値表そのものを作る方法
1-bit × 2n-word のメモリ
FPGA (Field-Programmable Gate Array) で多用される
ディジタル回路
LUT による完全性の証明 2/3
i2i1i0 : アドレス
i2 i1 i0 o
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
i
1
i
0
i
2
o
ディジタル回路
LUT による完全性の証明 3/3
in in−1… i0 o
0 0 … 0
0 0 … 1
… … … … …
1 1 … 0
1 1 … 1
1 0 … 0
1 0 … 1
… … … … …
1 1 … 0
1 1 … 1
i
n
…
i
1
i
n+1
…o
…
…
…
ディジタル回路
38
完全性の証明 一般の場合
{AND, OR, NOT} が作れることを言う
ex) {NAND}
AND OR NOT
ディジタル回路
42
今日のまとめ
ディジタル回路
43
ブール代数
完全集合:
すべての論理関数が作れる
完全集合の例:
{AND , OR , NOT}
{NAND}
完全集合をディジタル回路で作ればよい!
実際は, {NAND , NOR , NOT, XOR (XNOR)}