Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
5장 부울 대수
한국기술교육대학교 전기전자통신공학부
5.1 부울대수
ã 부울대수(boolean algebra)를 근거로 한 스위칭 이론(switching theory)은 논
리설계에 있어서 이론적인 근거가 되는 수학적 체계.
ã 부울대수
- 부울상수와 부울변수로 구성, 0과 1의 두 개 값을 가짐
- 논리레벨의 여러 정의
논리 0 False Off Low No Open Switch
논리 1 True On High Yes Closed switch
- 부울대수는 논리회로의 입력 및 출력의 상관관계를 표현하는 방법
입력의 논리 레벨에 따라 출력 결정
논리변수 표현 : A, B.. 등과 같이 문자로 표현. 값은 A=0 또는 B=1 등으로 표현
ã 부울대수의 기본 연산 : 논리동작 (logic operation)
OR, AND, NOT
ã 논리 게이트 : 입력신호에 대해 기본 논리연산(OR, AND, NOT)을 수행하는 디지털 회로는 다이오드, 트랜지스터, 저항 등을 사용하여 구성
- 부울 변수를 전자회로에서 사용할 때 실제적인 전압 레벨
0~0.8 V 논리 레벨(logic level) 0, 2~ 5V 논리 레벨 1로 표시,
0.8~2V undefined 값, 논리레벨의 천이영역(transition region)
2
ã 1입력 논리식, 2입력 논리식, 3입력 논리식
입력 출력
X Y F0 00 11 01 1
YXF =
YXF =
YXF =
YXF =
2입력 논리식
입력 출력
X Y Z 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
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
3입력 논리식
입력 출력
X F01
XF =XF =
1입력 논리식
3한국기술교육대학교 전기전자통신공학부
v 2입력 논리식 예
v 3입력 논리식 예
입력 출력X Y F0 0 10 1 11 0 11 1 0
입력 출력X Y Z X=1 Z0 0 0 1 00 0 1 1 1 1 10 1 0 00 1 1 1 01 0 0 1 1 11 0 1 1 1 1 1 11 1 0 1 11 1 1 1 1 1
YXF +=
X=0 또는 Y=0일 때, 1을 출력하는 논리식
ZYXF +=
Y ZY ZYX +
X=1이거나 (Y=0이고 Z=1)일 때, 1을 출력하는 논리식
4한국기술교육대학교 전기전자통신공학부
한국기술교육대학교 전기전자통신공학부
5.2 부울대수 정리
Ý 단일변수에 관한 정리 (공리)
Ý Duality 성립 : 0 <-> 1, + <-> ·
5
한국기술교육대학교 전기전자통신공학부
다변수 부울 대수정리
교환법칙 (9) x+y = y+x (10) x · y =y · x
결합법칙 (11) x+(y+z) (12) x(yz)
= (x+y)+z = x+y+z = (xy)z = xyz
분배법칙 (13a) x (y + z) (13b) x + yz
= xy + xz = (x + y)(x + z)
Absorption (14a) x + xy = x (14b) x(x+y) = x
(15) x + x'y = x + y
Consensus (16a) xy+x'z+yz = xy+x'z (16b) (x+y)(x'+z)(y+z) =(x+y)(x'+z)
<사용예> 컨센서스 항
(13b) 역 유도 (x+y)(x+z) = xx+xz+xy+yz = x(1+z+y)+yz = x + yz
(14a) x + xy = x (1 + y) = x · 1 = x
(14b) x(x+y) = xx+xy = x + xy = x
(15) x+x'y =(x+x')(x+y) = 1 ·(x+y) = x+y (정리 13b)
(16a) xy+x'z+yz = xy+x'z+yz(x+x') = xy+x'z+xyz+x'yz
= xy(1+z) + x'z(1+y) = xy + x'z
6
한국기술교육대학교 전기전자통신공학부
드모르강 정리
Ý DeMorgan's theorems는 변수의 합이나 곱의 형태를서로 바꾸며 식을 단순화하게 한다.
(17a) x+y = x y NOR
(17b) x y = x + y NAND
<사용예> 식 F= 를 단순화하라.
F = = (A'+C)' + (B+D')'
= (A')' C' + B' (D')' = AC' + B'D
Ý 드 모르강 정리로 간략화할 때 전체 반전기호가 없어지면서 + 기호는 . 로, . 기호는 +로 변경, 단일 변수에 대한 반전만 남을 때까지 계속
<정리증명>
7
한국기술교육대학교 전기전자통신공학부
드모르강 논리게이트
좌변식: 입력변수 x 와 y를 갖는 NOR 게이트의 출력우변식: 입력변수 x 와 y를 각각 반전한 후 AND의 입력
인버트된 입력을 갖는 AND = NOR 연산
좌변식: 입력 x 와 y 의 NAND 게이트로 구성우변식: 반전된 두 입력 x 와 y를 OR 게이트 입력인버트된 입력을 갖는 OR게이트 = NAND 연산
8
ã 드모르강의 정리 예제
•
•
•
•
ZYZXZYXZYXZYX +=+=+=++ )()(
XYZYZWYZXWYZXWYZXW +=+=×+=++ )(
FEDFECFEBAFEDCBA
FEDCBAFEDCBAFEDCBA
++=×++=
×+++=××+=+++
)(
)()()(
ABCDFDEDFCECAB
ABCDFEDCAB
CDABFECDAB
CDABFECDABCDABFECDAB
+++++=
++++=
×+×+=
++++=++
))((
)(
)()())((
9한국기술교육대학교 전기전자통신공학부
v 회로에서 게이트를 거칠 때마다 게이트의 출력을 적어주면서 한 단계씩출력 쪽으로 나아가면 된다.
논리회로 논리식 유도 과정
5.3 논리회로의 논리식 변환
10한국기술교육대학교 전기전자통신공학부
v AND, OR, NOT을 이용하여 논리식으로부터 회로 구성
yzyxyx ++
보수 입력 사용NOT 게이트 사용
논리식의 회로 구성
))(( zyxyxf +++=
OR- AND
)( wxzvyxwzf +++=
다단계 논리회로
AND-OR
11한국기술교육대학교 전기전자통신공학부
한국기술교육대학교 전기전자통신공학부
5.4 부울 함수
ã 부울 함수의 표현
Ý 2진수(0, 1), 연산자(OR, AND, NOT), 괄호, 등호 등을 사용하여 표현
ã 부울 함수의 간소화Ý 게이트 수 (term)와 게이트의 입력이 되는 변수(literal)의 수
를 줄이는 것
Ý 간소화 방법
1. 부울 함수로 표현한다.
2. 부울 대수의 항등식 규칙 등으로 간소화한다.
3. 논리회로 구성
12
한국기술교육대학교 전기전자통신공학부
대수적 간소화 방법ã 항(term) 결합 : 두 개의 항을 결합하여 하나의 항으로 만든다.
ã 항 제거 : 항들을 제거하기 위하여 사용되는 정리.
ã 문자(literal) 제거 : 문자들을 제거하기 위하여 사용되는 정리.
ã 함수식의 의미가 변하지 않도록 주의하며, 적절한 항들을 함수식에 첨가
13
한국기술교육대학교 전기전자통신공학부
ã 콘센서스(consensus) 정리Ý 부울 대수식에 있어서 콘센서스 항을 더해도 부울 대수식은 변하지
않는다.
Ý 부울 표현식을 최소화하는데 유리하다.
xy + xz' + yz = xy(z+z')+xz'+yz = xyz+xyz'+xz'+yz
= yz(x+1) + xz'(y+1) = yz + xz'
(예) F = x'y' + xz + yz' + y'z + xy
x'y'와 xz의 컨센선스는 y'z
yz' 와 xz 의 컨센선스는 xy
컨센선스 y'z와 xy를 생략하여 간소화
F = x'y' + xz + yz'
(예) F = (x+y)(x'+z)(y+z)
= (x+y)(x'+z)
consensus
항
consensus
항
14
한국기술교육대학교 전기전자통신공학부
부울 함수의 보수ã 함수의 보수(complement of a function)구하는 방법
1. 부울 함수 F 값에서 1은 0으로, 0은 1로 바꾸어서 구할 수 있다.
2. 드모르강 정리를 이용하여 AND 연산자는 OR 연산자로, OR 연산자는 AND 연산자로 서로 바꾸고, 각 변수의 값도 1이면 0으로, 0이면 1로 바꾸어 구할 수 있다.
3. 연산자들의 쌍대를 구한 후 각 변수의 값에 보수를 취하면 된다. 함수의 쌍대는 AND 연산자와 OR 연산자를 상호 교환하고, 1과 0을 바꾸어 구할 수 있다.
F = x'y'z + xy'z' + x'z 의 보수함수 F' ?
(2) à F' = (x+y+z')(x'+y+z)(x+z')
(3) à F의 쌍대 (x'+y'+z)(x+y'+z')(x'+z)
각 변수를 보수화 F' = (x+y+z')(x'+y+z)(x+z')
15
한국기술교육대학교 전기전자통신공학부
5.5 부울함수의 정형과 표준형ã 논리곱(AND게이트), 논리합(OR게이트)로 나타냄.
ã 최소항 또는 표준곱(standard product)
Ý 2개의 변수 a와 b에 대해서는 4가지 조합(a'·b', a'·b, a·b', a·b)이 가능하며, AND연산의 항으로 표시
ã 최대항 또는 표준합(standard sum)
Ý 2개의 변수 x와 y에 대해서는 4개의 조합(a+b, a+b‘, a'+b, a'+b')이 가능하며, OR연산의 항으로 표시
ã 변수의 값이 0일 때는 ( ', bar) 기호로 하고, 1일 때는 붙이지 않는다.
16
입력 출력
a b f0 0 00 1 11 0 11 1 1
abbabaf ++=Þ
진리표로부터 최소항식 표현법
2 변수 최소항
2 변수 최대항
한국기술교육대학교 전기전자통신공학부
부울함수 표현형식(1) SOP 형식 (곱의 합, Sum of Products ) : standard form
- 예 : (a) ABC + A'BC' + B'
(b) AB + A'BC' + C'D' + D
2개 이상의 AND 항을 ORing ==> AND 결과들을 OR 입력
각 입력은 normal 혹은 inverted 형태로 사용
입력변수의 개수가 가변
(2) POS 형식 (합의 곱, Product of sums) : standard form
- 예 : (a) (A + B' + C)(A + C)
(b) (A + B)(C' + D)F
2개 이상의 OR 항을 ANDing
입력변수의 개수가 가변
(3) minterm 또는 standard product
n개의 변수는 0 - 2n-1의 값을 갖는 2n개의 minterm을 가짐
각 minterm은 모든 입력변수(normal/inverted)에 대하여 AND
(4) maxterm 또는 standard sum
n개의 변수는 0 - 2n-1의 값을 갖는 2n개의 maxterm을 가짐
각 maxterm은 모든 입력변수(normal/inverted)에 대하여 OR
17
q 2변수 최소항의 표현 방법
q3변수 최소항의 표현 방법
a b 최소항 기호
0 0 m0
0 1 m1
1 0 m2
1 1 m3
babababa
å=++=++=
)3,2,1(
),(
321
m
mmmabbababaf
a b c 최소항 기호
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
0mcbacbacbacbacbacbacbacba
1m
2m
3m
4m
5m
6m
7m
최소항 (minterm)
18한국기술교육대학교 전기전자통신공학부
ã 3변수 최소항의 표현 방법
x y z f 최소항 기호
0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1
0mzyxzyxzyxzyxzyxzyxzyxzyx
1m
2m
3m
4m
5m
6m
7m
xyzzyxyzxzyxzyx
mzyxf
++++=
=å
),,,,(),,( 75310
zxyzyxzyx
mzyxf
++=
=å
)6,4,2(),,(
zyxzyxzyxmzyxf
xyzzyxyzxzyxzyxmzyxf
++===
++++==
åå
)6,4,2(),,(
)7,5,3,1,0(),,(
xyzzyxyzxzyxzyxm
zyxzyxzyxmzyxf
++++==
++==
åå
)7,5,3,1,0(
)6,4,2(),,(
19한국기술교육대학교 전기전자통신공학부
예제 5-1 다음 진리표를 이용하여 f 와 를 최소항식으로 나타내어라.
a b c f0 0 0 0 10 0 1 1 00 1 0 1 00 1 1 1 01 0 0 1 01 0 1 1 01 1 0 0 11 1 1 0 1
f
cbacbabcacbacba
mcbaf
++++=
=å
)5,4,3,2,1(),,(
abccabcba
mcbaf
++=
=å
)7,6,0(),,(
f
20한국기술교육대학교 전기전자통신공학부
ã 4변수 최소항의 표현 방법
a b c d 최소항 기호 a b c d 최소항 기호
0 0 0 0 1 0 0 00 0 0 1 1 0 0 10 0 1 0 1 0 1 00 0 1 1 1 0 1 10 1 0 0 1 1 0 00 1 0 1 1 1 0 10 1 1 0 1 1 1 00 1 1 1 1 1 1 1
0m
1m
2m
3m
4m
5m
6m
7m
8m
9m
10m
11m
12m
13m
14m15m
dcbadcbadcbadcbadcbadcbadcbadcba
dcbadcbadcbadcbadcbadcbadcbadcba
사용예
abcdcdbadcbadcbadcbadcba
mdcbaf
+++++=
=å
)15,11,9,5,1,0(),,,(
21한국기술교육대학교 전기전자통신공학부
ã 최대항 표현 방법
a b c 최대항 기호
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
0M
cba ++cba ++cba ++cba ++cba ++cba ++cba ++
cba ++1M
2M
3M4M
5M
6M
7M
a b 최대항 기호
0 00 11 01 1
ba +ba +ba +ba +
0M
1M
2M
3M
2변수
3변수
최대항 (maxterm)
22한국기술교육대학교 전기전자통신공학부
a b c d 최대항 기호 a b c d 최대항 기호
0 0 0 0 1 0 0 00 0 0 1 1 0 0 10 0 1 0 1 0 1 00 0 1 1 1 0 1 10 1 0 0 1 1 0 00 1 0 1 1 1 0 10 1 1 0 1 1 1 00 1 1 1 1 1 1 1
0M
1M
2M
3M
4M
5M
6M
7M
8M
9M
10M
11M
12M
13M
14M
15Mdcba +++dcba +++
dcba +++
dcba +++
dcba +++
dcba +++
dcba +++
dcba +++
dcba +++dcba +++dcba +++
dcba +++
dcba +++
dcba +++
dcba +++
dcba +++
4변수 최대항
23한국기술교육대학교 전기전자통신공학부
최소항과 최대항과의 관계
v 최소항은 출력이 1인 항을 SOP로 나타낸 것이고, 최대항은 출력이 0인 항을 POS로 나타낸 것이다.
v 최소항과 최대항은 상호 보수의 성질을 가진다.
Ý minterm과 maxterm의 관계mj = Mj m3 = abc = a+b+c = M3
a b c f 최소항 기호 최대항 기호 관 계
0 0 0 0 10 0 1 1 00 1 0 1 00 1 1 1 01 0 0 1 01 0 1 1 01 1 0 0 11 1 1 0 1
0mcbacbacbacbacbacbacbacba
1m
2m
3m
4m
5m
6m
7m
f
cba ++cba ++cba ++cba ++cba ++cba ++cba ++cba ++ 0M
1M
2M
3M
4M
5M
6M
7M
00 mM =
11 mM =
22 mM =
33 mM =
44 mM =
55 mM =
66 mM =
77 mM =
24한국기술교육대학교 전기전자통신공학부
한국기술교육대학교 전기전자통신공학부
(5) Canonical formã 부울함수를 SOM(sum of minterms) 혹은 POM( product of
maxterms)로 표현
(a) sum of minterms
f1 = x'y' + xy' = m0 + m2
f2 = x'y'z + xyz' + xyz = m1 + m6 + m7
f3 = a'b'cd + a'bc'd + ab'cd' + abcd' = m3 + m5 + m10 + m14
f1(x,y) = ∑m(0, 2)
f2(x,y,z) =∑m(1, 6, 7)
f3(a,b,c,d) =∑m(3, 5, 10, 14)
(b) product of maxterms
f1 = (x+y+z)(x+y'+z)(x'+y'+z) = M0M2M6
f2 = (a+b+c+d')(a+b'+c+d) (a'+b+c+d') (a'+b'+c+d)
= M1M4M9M12
f1(x,y,z) = ∏M(0, 2, 6)
f2(a,b,c,d) = ∏M(1,4 , 9, 12)
25
한국기술교육대학교 전기전자통신공학부
(6) Canonical form의 상호 변환
f1 = x'y'z+xyz'+xyz = m1+m6+m7
f1'= x'y'z'+ x'yz'+ x'yz+ xy'z'+ xy'z
f1 = (f1')' = ( x'y'z'+ x'yz'+ x'yz+ xy'z'+ xy'z)'
= (x+y+z)(x+y'+z)(x+y'+z')(x'+y+z)(x'+y+z')
= M0M2M3M4M5
f2 = m0 + m2 + m5 + m6
= M1M3M4M7
x y z f1 f2
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
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
26
한국기술교육대학교 전기전자통신공학부
(7) Standard form과 canonical form의 변환
f1 = x + y'z = (x+y')(x+z)
= (x+y'+zz')(x+z+yy')
= (x+y'+z)(x+y'+z')(x+y+z)(x+y'+z)
= (x+y'+z)(x+y'+z')(x+y+z) = M0M2M3 ; POM
f1 = x+y'z = x(y+y')(z+z') + (x+x')y'z
= xyz + xyz' + xy'z + xy'z' + xy'z + x'y'z
= m7+m6+m5+m4+m1 ; SOM
f2 = (a + c')(a + b') = aa+ ab'+ ac' + c'b'
= a(b+b')(c+c') + ab'(c+c') + ac'(b+b') + c'b'(a+a')
= a(bc+bc'+b'c+b'c')+ab'c+ab'c'+ ...
= abc+abc'+ab'c+ab'c'+a'b'c'
27
예제 5-2 다음 최대항 식을 진리표로 만들어 보고, 논리식을 구하시오.
x y z f 최대항 기호
0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0
0M
zyx ++
zyx ++
zyx ++
zyx ++
zyx ++
zyx ++
zyx ++
zyx ++
1M
2M
3M4M
5M
6M
7M
))()()()((
)7 5, 3, 1, 0,(),,(
zyxzyxzyxzyxzyx
Mzyxf
++++++++++=
=Õ
Õ= )7 5, 3, 1, 0,(),,( Mzyxf
28한국기술교육대학교 전기전자통신공학부
åÕÕå
==
==
)7 ,6 ,0()7 ,6 ,0(
)5 4, 3, 2, 1,( )5 4, 3, 2, 1,(),,(
mM
Mmcbaf
Õ
å
=
++++++++++=
××××=++++=
++++==
)5 4, 3, 2, 1,(
))()()()((
)5 4, 3, 2, 1,(),,(
M
cbacbacbacbacba
cbacbabcacbacbacbacbabcacbacba
cbacbabcacbacbamcbaf
Þ
Õ
å
=
++++++=××=++=
++==
)7 6, 0,(
))()((
)7 6, 0,(),,(
M
cbacbacbaabccabcbaabccabcba
abccabcbamcbaf
åÕÕå==
==
)5 4, ,3 ,2 ,1()5 4, ,3 ,2 ,1(
)7 6, 0,( )7 6, 0,(),,(
mM
MmcbafÞ
최소항을 부정하면최대항
최대항을 부정하면최소항
29한국기술교육대학교 전기전자통신공학부
ã (1)식을 간소화하는 과정
(1)
(2)
(3)
(4)
xyzyxyx
xyzyxyx
xyzzzyxzzyx
xyzzyxzyxyzxzyx
xyzzyxzyxyzxzyx
++=
+×+×=
++++=
++++=
++++
11
)()(
)()(
xyzzyxzyxyzxzyx ++++
xyzyxyx ++
xzyxyx
xzyxyx
yyxzzzyxzzyx
zyxxyzzyxzyxyzxzyx
zyxxyzzyxzyxyzxzyx
++=
×+×+×=
+++++=
+++++=
+++++
111
)()()(
)()()(
xzyxyx ++
X+X=X를 이용
yzyxyx ++yzyxyx
yzyxyx
xxyzzzyxzzyx
yzxxyzzyxzyxyzxzyx
yzxxyzzyxzyxyzxzyx
++=
×+×+×=
+++++=
+++++=
+++++
111
)()()(
)()()(
X+X=X를 이용
5.6 부울 대수 법칙을 이용한 논리식의 간소화
30한국기술교육대학교 전기전자통신공학부
ã (2)식을 간소화하는 과정
(1)
(2)
(3)
(4)
xyzzyxzyxyzxzyx ++++
xyzyxyx ++
xzyxyx ++
yzyxyx ++
xzyxyxzyxyx
zyyyxyxyzyxyxxyzyxyx
++=+×+=
+++=++=++
)(1
))(()(
yxyzyxyxzxy
yxzxxxyyxxzxyxyzyxyx
++=++×=
+++=++=++
)(1
))(()(
bababaaaaba +=+×=++=+ )(1))((abababaabaa =+=+=+ 0)(
31한국기술교육대학교 전기전자통신공학부
ã 간소화하는 과정 예
zyxxxzyx
xzzxyxyyxzyyzxzzyx
xyzzyxyzxzyxzyxmzyxf
+=
++=
++=
+++++=
++++=
å=
)(
)()()(
)7 5, 3, 1, 0,(),,(
zxzy
yyzxxxzy
zxyzyxzyx
mmzyxf
+=
+++=
++=
== åå
)()(
)6 4, 2,()7 5, 3, 1, 0,(),,(
32한국기술교육대학교 전기전자통신공학부
한국기술교육대학교 전기전자통신공학부
ã 논리식의 간소화 효과Z = ABC + AB' (A'C')'
= ABC + AB'(A+C) = ABC+AB'+AB'C
= AB'(1+C)+ABC = AB'+ ABC = A(B'+BC)
= A(B'+B)(B'+C) = A(B'+C) = AB' + AC
33
ã 2변수로 나타낼 수 있는 모든 함수의 경우
ã 2변수로 나타낼 수 있는 모든 경우의 함수 논리식
a b f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
00 =f abf =1 baf =2 af =3
baf =4 bf =5 babaf +=6 baf +=7
baf =8 abbaf +=9 bf =10 baf +=11
af =12 baf +=13 baf +=14 115 =f
n개의 입력 변수가 있을 때 진리표의 행의 개수는 개이며, 개의 서로 다른 함수가 존재.
n2n22
n=2 16222 = n=3 25622 823
== n=4 6553622 1624==
부울함수의 종류
34한국기술교육대학교 전기전자통신공학부