ブール代数

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