Document

0
0
1
0
1
0
1
1
電子回路学
講義#9:論理関数の標準形、関数⇄回路の対応
(設計)
1
0
0
1
0
1
0
1
1
n 
論理式
幾つかの論理変数を掛け合わせてできる式を単項式と
いい、幾つかの単項式の和として表される式を論理式
といいます
例:
xy + yz + xw
2
1
0
0
1
0
1
0
1
1
n 
n 
論理関数
論理式の値によって値の決められるものを論理関数と
いいます
多数の値を提供する関数もあります
例: G = wx + yz
例: F [f1, f2]
f1 = xy + xz + yz
f2 = xw + yx + zw
3
0
0
1
0
1
0
1
1
n 
真理値表
論理式の変数が取り得る値の全組み合わせを列挙して
関数の値を示す表を真理値表といいます
F = x + xy
xy
00
01
10
11
F
0
1
1
1
4
2
完全定義論理関数
0
0
1
0
1
0
1
1
n 
真理値表の変数の全ての組み合わせに対して論理関数
の値を定義するものを完全定義論理関数といいます
xy
00
01
10
11
F
0
1
1
1
5
0
0
1
0
1
0
1
1
n 
n 
未完全定義論理関数
該当の真理値表に全ての値が定義されていない論理関
数を未完全定義論理関数といいます
未定義の値の表し方は多数で、下記のように*(0も1
も)可能、u (unknown:未知)、−(未定義)等の表記が
ある
xy
00
01
10
11
F
0
u
1
1
xy
00
01
10
11
F
0
*
1
1
xy
00
01
10
11
F
0
1
1
6
3
論理関数の標準形
0
0
1
0
1
0
1
1
n 
論理関数の式の各項に全ての変数が出現すると、その
式を論理関数の標準形といいます
F(x , y) = x + xy
F(x , y) = xy + xy + xy
×
◎
標準形
7
加法標準形
0
0
1
0
1
0
1
1
n 
n 
論理関数を論理積項の論理和で表現する形式を加法標
準形といいます
加法標準形の各項を最小項といいます
x
0
0
1
1
y
0
1
0
1
F
0
1
1
0
F(x, y) = xy + xy
8
4
加法標準形の作成
0
0
1
0
1
0
1
1
n 
真理値表を対象に
n 
n 
出力に対応する列(関数名F)の1の値を起こす入力の組み合
わせを式の右に出現する項で表されます
組み合わせの値は、1のとき変数名を、0のときは否定の変数
名をかけて一つの項を構成します
x
0
0
1
1
y
0
1
0
1
F
0
1
1
0
F(x, y) = x ⋅ y
9
加法標準形の作成
0
0
1
0
1
0
1
1
n 
上記のように構成して行く各々の項の論理和をとり、
加法形の論理式を書き出します
x
0
0
1
1
y
0
1
0
1
F
0
1
1
0
F(x, y) = x ⋅ y + x ⋅ y
10
5
乗法標準形
0
0
1
0
1
0
1
1
n 
n 
論理関数を論理和項の論理積で表現する形式を乗法標
準形といいます
乗法標準形の各項を最大項といいます
x
0
0
1
1
y
0
1
0
1
G
1
0
0
1
G(x, y) = (x + y )(x + y)
11
乗法標準形の作成
0
0
1
0
1
0
1
1
n 
加法形と対称的に、
n 
n 
出力を0にする入力の組み合わせに着目します
組み合わせの値は0のときは変数名、1のときは否定の変数名
を用い、その論理和を括弧で囲んで、
x
0
0
1
1
y
0
1
0
1
G
1
0
0
1
G(x, y) = (x + y )
12
6
乗法標準形の作成
0
0
1
0
1
0
1
1
n 
...、その他の組み合わせも、同様に変数の論理和を括
弧で囲んで、論理積で乗法標準形の式を書き出します
x
0
0
1
1
y
0
1
0
1
G
1
0
0
1
G(x, y) = (x + y )⋅ (x + y)
13
0
0
1
0
1
0
1
1
n 
n 
加法標準形への変換:その一
関数の式を加法標準形で表すにはシャノンの展開定理
が用いられる
例:次の式の一つの項には、yは現れていないので、y
を中心に関数の式を展開する
F(x,y) = x + xy
= y F(x,1) + y F(x,0) (Shannon展開)
= y(x+x1) + y(x+x0)
= yx + yx + yx (加法標準形)
14
7
0
0
1
0
1
0
1
1
n 
n 
加法標準形への変換:その二
関数の式を加法標準形で表すには、否定に関する性質
が用いられる
例:変数を欠けている式の項には、その変数を対象に
否定に関する性質を利用して式を展開する
F(x,y) = x + xy (y+y)=1であるため
= x (y+y)+ xy 展開すると、
= xy + xy + xy (加法標準形)
15
0
0
1
0
1
0
1
1
n 
n 
乗法標準形への変換:その一
この場合もシャノンの展開が使用できる
例:次の式の一つの項には、yは現れていないのでyを
中心に関数の式を展開する
F(x,y) = (x) (x+y)
= (y+F(x,0)) (y+F(x,1)) (Shannon展開)
= (y+(x)(x+0))(y+(x)(x+1))
= (y+x)(y+x)(y+x) (乗法標準形)
16
8
乗法標準形への変換:その二
0
0
1
0
1
0
1
1
n 
n 
この場合も、否定に関する性質が用いられる
例:変数を欠けている式の項には、その変数を対象に
否定に関する性質を利用して式を展開する
F(x,y) = (x)(x+y) yy=0であるため
= (x+yy)(x+y) 展開すると、
= (x+y)(x+y)(x+y) (乗法標準形)
17
加法標準形の作成:簡易法
0
0
1
0
1
0
1
1
n 
非標準形の加法系の関数の場合は
n 
n 
真理値表を作成して
真理値表から、再び論理関数を求める
x y F
0 0 0
F(x,y) = x + xy 0 1 1
1 0 1
1* 01
1 1 1
F = xy + xy + xy 18
9
加法標準形の作成:簡易法
0
0
1
0
1
0
1
1
n 
非標準形の乗法系の関数の場合は
n 
n 
n 
項を掛けて、カッコをなくし、
加法系に式を変えて、真理値表を作成する
真理値表から、再び論理関数を求める
x y F
F(x,y) = (x)(x+y)
= xx + xy
0 0 0
= 0 + xy
0 1 0
= xy 1 0 0
1 1 1
11
F = xy 19
乗法標準形の作成:簡易法
0
0
1
0
1
0
1
1
n 
非標準形の乗法系の関数の場合は
n 
n 
n 
項を掛けて、カッコをなくし、
加法系に式を変えて、真理値表を作成する
真理値表から、再び論理関数を求める
n 
0のとき、変数名;1のとき、変数名を否定する
x y F
F(x,y) = (x)(x+y)
= xx + xy
0 0 0
= 0 + xy
0 1 0
= xy 1 0 0
1 1 1
11
F = (x+y)(x+y)(x+y) 20
10
乗法標準形の作成:簡易法
0
0
1
0
1
0
1
1
n 
非標準形の加法形の関数の場合は
n 
n 
真理値表を作成する
真理値表から、乗法標準形の論理関数を求める
n 
0のとき、変数名;1のとき、変数名を否定する
x y F
0 0 0
F(x,y) = x + xy 0 1 1
1 0 1
1* 01
1 1 1
F = (x+y) 21
0
0
1
0
1
0
1
1
n 
n 
ME試験問題【30-33】
次の論理式で誤っているのはどれか
解答例:可能な限り、両側を「加法標準形」にして、
比較する
1) A ⋅ (B + C) = A ⋅ B + A ⋅ C
AB + AC = AB + AC
22
11
0
0
1
0
1
0
1
1
n 
ME試験問題【30-33】
...両側を「加法標準形」、にして、比較する
2) A ⋅ (A + B) = A
A⋅ A+ A⋅B = A
A(B + B) + A ⋅ B = A(B + B)
AB + AB + AB = AB + AB
AB + AB = AB + AB
23
0
0
1
0
1
0
1
1
n 
ME試験問題【30-33】
...両側を「加法標準形」にして、比較する
3) 公理であり、真
24
12
0
0
1
0
1
0
1
1
n 
ME試験問題【30-33】
...両側を「加法標準形」にして、比較する
4) DeMorganの定理
真
25
0
0
1
0
1
0
1
1
n 
ME試験問題【30-33】
...両側を「加法標準形」にして、比較する
5) A + B = A ⋅ B
A(B + B) + (A + A)B = AB
AB + AB + AB + AB = AB
AB + AB + AB = AB
同じではない!
26
13
0
0
1
0
1
0
1
1
n 
n 
n 
ME試験問題【32-36】
次の論理式で誤っているのはどれか
解答例:一つずつの式を確かめる
左側を右側の形に変更していく
1) A ⋅ B + A ⋅ B = A
A ⋅ B + A ⋅ B = A ⋅ (B + B)
AB + AB = AB + AB
27
0
0
1
0
1
0
1
1
n 
n 
n 
ME試験問題【32-36】
次の論理式で誤っているのはどれか
解答例:一つずつの式を確かめる
左側を右側の形に変更していく
2) A ⋅ (A + B) = A
A⋅ A+ A⋅B = A
A(B + B) + A ⋅ B = A(B + B)
AB + AB + AB = AB + AB
AB + AB = AB + AB
28
14
ME試験問題【32-36】
0
0
1
0
1
0
1
1
n 
n 
n 
次の論理式で誤っているのはどれか
解答例:一つずつの式を確かめる
左側を右側の形に変更していく
3)
A+ A⋅B = A+B
A(B + B) + A ⋅ B = A(B + B) + B(A + A)
AB + AB + AB = AB + AB + BA + BA
AB + AB + AB = AB + AB + AB + AB
AB + AB + AB = AB + AB + AB
!
29
0
0
1
0
1
0
1
1
n 
n 
n 
ME試験問題【32-36】
次の論理式で誤っているのはどれか
解答例:一つずつの式を確かめる
個の場合は、DeMorganの定理で容易に確認できる
4) A + B = A ⋅ B
A⋅B = A⋅B
30
15
ME試験問題【32-36】
0
0
1
0
1
0
1
1
n 
n 
n 
次の論理式で誤っているのはどれか
解答例:一つずつの式を確かめる
左側を右側の形に変更していく
5) A ⋅ (B + C) = A ⋅ B + A ⋅ C
AB + AC = AB + AC
上記から 3) は
違っている
31
ME試験問題【33-35】
0
0
1
0
1
0
1
1
n 
n 
論理式として、A・(B+C) に等しいのはどれか
解答例:まず、与えられた論理式のカッコを無くす
(分配則)
n 
すると、AB+ACとなり、選択(正解)の 4)に等しい
A ⋅ (B + C)
= A⋅ B + A⋅C
= AB + AC
32
16
34回ME第2種
0
0
1
0
1
0
1
1
n 
n 
n 
【34A35】:次の論理式で、誤っているのはどれか。
1),2),3)は基本定理で◯、4)はド・モルガンの法則で◯
正解は、5) である
n 
加法標準形で確認できる(下記を参照)
1) A +1 = 1
A+ A⋅B = B
2) A + A = 1
A(B + B) + A ⋅ B = (A + A)B
3) A ⋅ A = 0
AB + AB + AB = AB + AB
4) A + B = A ⋅ B
AB + AB ≠ AB + AB
5) A + A ⋅ B = B
33
真理値表
0
0
1
0
1
0
1
1
n 
n 
回路の動作を表すもの
回路の各入力の組み合わせに対応する出力を表す表
xy
00
01
10
11
z
0
1
1
1
OR
x
y
z
x y sum carry
00 0 0
01 1 0
10 1 0
11 0 1
x
y
sum
HA
carry
34
17
0
0
1
0
1
0
1
1
n 
n 
真理値表の作成
入力の組み合わせは、通常すべてを記述する
このため、最初の列に、0と1を交互に記入する
y1
y0
Z
0
1
0
1
入力
出力
35
0
0
1
0
1
0
1
1
n 
真理値表の作成
入力の次の列の0と1の数を倍にして同様に記述
y1
y0
0
0
0
1
1
0
1
1
入力
Z
出力
36
18
真理値表の作成
0
0
1
0
1
0
1
1
n 
出力は回路によって異なる!
y1
y0
Z
0
0
1
0
1
0
1
0
0
1
1
0
入力
出力
37
真理値表の作成例
0
0
1
0
1
0
1
1
n 
0と1の1個ずつ交互に記入する(入力、左から)
Y1
Y2
Y3
Z
0
1
0
1
0
1
0
1
入力
出力
38
19
真理値表の作成例
0
0
1
0
1
0
1
1
n 
0と1の2個ずつ交互に記入する(入力、左から)
Y1
Y2
Y3
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
入力
Z
出力
39
真理値表の作成例
0
0
1
0
1
0
1
1
n 
0と1の4個ずつ交互に記入する(入力、左から)
n 
注意:出力は、回路によって異なります
Y1
Y2
Y3
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
入力
Z
出力
40
20
真理値表から論理関数へ
0
0
1
0
1
0
1
1
n 
真理値表から次のように論理関数を導く
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
F
0
1
0
1
1
0
0
1
① Fが1の行のxyzの項を出して、
001 と 011 と 100 と 111
② 得た各0,1の並びをx,y,zの項に
書き換えて、
xyz と xyz と xyz と xyz
③ Fの1の項のため、論理和でつなぐ
F = xyz + xyz + xyz + xyz
41
真理値表から乗法論理関数へ
0
0
1
0
1
0
1
1
n 
この場合は、Fが0のを用いる
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
F
0
1
0
1
1
0
0
1
① Fが0の行のxyzの項を出して、
000 と 010 と 101 と 110
②  0を肯定の変数、1を否定の変数に対応
させながら得た各0,1の並びをx,y,zの和
項に書き換えて、
(x+y+z) と (x+y+z) と (x+y+z) と (x+y+z)
③ Fの0の項のため、論理積でつなぐ
F = (x+y+z)(x+y+z)(x+y+z)(x+y+z)
42
21
0
0
1
0
1
0
1
1
n 
論理関数から真理値表へ
式(論理関数)右辺から変数の個数を算出して、次の
ように真理値表を作成する
F = A⋅ B ⋅C + A⋅ B⋅C
101の項、かつ110の項
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
0
0
0
0
0
1
1
0
43
0
0
1
0
1
0
1
1
n 
論理関数から真理値表へ
未完全な項の場合
F = A ⋅ B + B ⋅ C
10*の項、かつ*11の項 *:0でも1でもよい(don’t care)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
0
0
0
1
1
1
0
1
44
22
0
0
1
0
1
0
1
1
n 
論理関数から真理値表へ
乗法論理関数の右辺から変数の個数を算出して、次の
ように真理値表を作成する
G = (x1 + x2 + x3 )(x1 + x2 + x3 )
肯定変数→0,否定変数→1に
010の項、かつ001の項
得た組の行にFが0、その他に1
x1 x2 x3
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
G
1
0
0
1
1
1
1
1
45
0
0
1
0
1
0
1
1
n 
論理関数から真理値表へ
未完全な項の場合
M = (A + B)(B + C)
01*の項、かつ*00の項 *:0でも1でもよい(don’t care)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
M
0
1
0
0
0
1
1
1
46
23
論理式から回路へ
0
0
1
0
1
0
1
1
n 
変換例
F = A ⋅ B ⋅ C + B ⋅ C
B
C
F
B
C
A
B
C
A
47
論理式から回路へ
0
0
1
0
1
0
1
1
n 
変換例
G = (x + y)⋅ (x + y + z )
x
y
x
y
z
G
z
x
y
48
24