Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
1
4. 조합회로설계
목표• 부울 표현식에 대한 논리도 그린다.
• 진리표로부터 부울 표현식을 구하고, 이를 AND-OR 형식의 논리도를작성
• 카르노 맵을 이용하여 부울 표현식을 간략화한다.
• NAND 게이트들을 이용하여 논리 회로를 간략화한다.
• 컴퓨터 시뮬레이션 프로그램을 이용하여 부울 표현식을 진리표나논리도로 변환한다.
• 데이터 선택기를 이용하여 논리 문제를 해결한다.
• PLD(programmable logic device)
2
v 기본적인 불 대수식은 AND, OR, NOT을 이용하여 표현
v AND 식은 곱셈의 형식으로 표현하고, OR 식은 덧셈의 형식으로 표현
v NOT 식은 또는 으로 표현
v 완전한 논리식은 입력 항목들의 상태에 따른 출력을 결정하는 식
Ø X=0 and Y=1일때출력을 1로만들려는경우출력논리식
Ø X=0 or Y=1일때출력을 1로만들려는경우출력논리식
Ø (X=0 and Y=1 ) or (X=1 and Y=0 ) 일 때 출력을 1로 만들려는 경우 출력논리식 :
YXF =
YXF +=
YXYXF +=
기본 논리식의 표현
• 1입력 논리식, 2입력 논리식, 3입력 논리식
입력 출력
X Y F0 00 11 01 1
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
3입력 논리식
입력 출력
X F01
1입력 논리식
YXF =
YXF =
YXF =
YXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
ZYXF =
XF =XF =
3
2입력 논리식 예
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 +=
X=1이거나 Y=0이고 Z=1일때, 1을출력하는논리식
논리회로의 논리식 변환
v 원래의 회로에 게이트를 거칠 때마다 게이트의 출력을 적어주면서 한단계씩 출력 쪽으로 나아가면 된다.
논리회로 논리식 유도 과정
5
논리식의 회로 구성AND, OR, NOT을 이용하여 논리식으로부터 회로를 구성.
(AND-OR로 구성된 회로) yzyxyx ++
보수 입력 사용 NOT 게이트 사용
회로 예
xyzzyxzyxyzxzyxzyxf ++++=),,(
))(( zyxyxf +++=
AND-OR
OR- AND
6
회로 예
)( wxzvyxwzf +++=
다단계논리회로
불 대수식의 표현 형태곱의 합(Sum of Product, SOP)
v SOP의 구성은 1 단계는 AND항(곱의 항, product term)으로 구성되고, 2단계는 OR항(합의 항, sum term)으로 만들어진 논리식.
최소항(Minterm)
v 최소항 : 표준 곱의 항
v 표준 곱의 항이란 함수에 모든 변수를 포함하고 있음.
cadbbcaf ++=
ZXYW WXYZ minterm YXW ZXW Non minterm
7
진리표Input OutputABC Y0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 01 0 1 01 1 0 0 1 1 1 1
최소항 부울표현식:
A • B • C A • B • C = Y+
A B C A B C = Y+
진리표Input OutputABC Y0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 01 0 1 01 1 0 0 1 1 1 1
최소항 부울표현식:
A • B • C A • B • C = Y+
A B C A B C = Y+
8
q 2변수 최소항의 표현 방법
a b 최소항 기호
0 0 m0
0 1 m1
1 0 m2
1 1 m3
babababa
å=++=++=
)3,2,1(
),(
321
m
mmmabbababaf
• 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(),,(
9
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(),,(
• 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
[Example]
abcdcdbadcbadcbadcbadcba
mdcbaf
+++++=
=å
)15,11,9,5,1,0(),,,(
10
합의 곱과 최대항
v 합의 곱 구성 : 1 단계는 OR항(합의 항, sum term)으로 구성되고, 2단계는 AND항(곱의 항, product term)으로 만들어진 논리식.
v 모든 변수를 포함하는 OR항을 맥스텀(maxterm) 또는 최대항이라 한다.
zyxw +++
zyxw +++
[최대항의 예]
))(( ywxw ++)( yww +
wxw +
))(( zyxwzyxw ++++++
[합의 곱의 예 ]
• 최대항 표현 방법
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변수인 경우
11
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변수인 경우
입력 출력
a b f0 0 00 1 01 0 01 1 1
Õ=++=
+++=
)2 1, 0,(
))()((),(
210
MMMM
babababaf
12
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
최소항과 최대항과의 관계
v 최소항은 출력이 1인 항을 SOP로 나타낸 것이고, 최대항은 출력이 0인항을 POS로 나타낸 것이다.
v 최소항과 최대항은 반대의 성질을 가진다.
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 =
13
åÕÕå
==
==
)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Þ
최소항을부정하면
최대항
최대항을부정하면
최소항
이 행은 묶지 않는다이 행은 묶지 않는다.이 행은 묶지 않는다.이 행은 묶지 않는다.
부울표현식
부울표현식의 간략화진리표
입력 출력ABC Y
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
00
0
0
11
1
1
규칙:묶음 안의 항과 그 보수항이 포함 된 항을 소거하여 간략화 한다.
A•B•C A•B•CA•B•C = Y++A•B•C +
간략화 된 부울표현식 A•BA•C = Y+
14
2변수 카르노 맵
• 2변수 카르노 맵 표현 방법
v 무관항(don't care) : 입력이 결과에 영향을 미치지 않는 민텀항.
v X로 표시하거나 d로 표시한다.
• 일반항과 무관항 표현
å= )3,0(),( mBAF
åå += )1()3,0(),( dmBAF
• 카르노맵을 이용한 간소화 방법
① 1, 2, 4, 8, 16개로 그룹을 지어 묶는다.
② 바로 이웃해 있는 항들끼리 묶는다.
③ 반드시 직사각형이나, 정사각형의 형태로 묶어야만 한다.
• 간소화 예
0 1
0 1 1
1
AB
AF =
AABBA
BABAF
=×=+=
+=
1)(
a b f
0 00 11 01 1
1110
0 1
0 1 1
1 1
ab
babaaabbba
bababamf
+=
×+×=+++=
++=å=
11)()(
)2,1,0(
baf +=
중복하여묶어도된다.
15
3변수 카르노 맵
• 3변수 카르노 맵 표현 방법
• 간소화 예
ABBAF += CAF =
ABC
ABC
CF = AF =
CF =
양쪽 끝은연결되어 있다.
ABC
ABC
ABC
양쪽 끝은연결되어 있다.
16
간소화 예(Cont’d)
CAF += CCAF +=
ABC
가능한 크게묶는다.
ABC
• 간소화 예(Cont’d)
a b c f0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1
acbcabmf ++==å )7,6,5,3(
abc
00
0 1
01 11 10
1 111
세번중복하여묶었다.
17
• 4변수 카르노 맵 표현 방법
상하 좌우는연결되어 있다.
여러 가지 4변수 카르노 맵의 예제
BCAF = DABF = DCBF =
CD
1
1 1 1
1 1 1
1
AB 00 01 11 10
00
01
11
10
CD
1 1
1 1
1 1
1 1
AB 00 01 11 10
00
01
11
10
BCDCF += DBF =DBBDF +=
CDAB
18
CDDCABBAF +++= DBF +=
CF = BF = CAF +=
CBCADABAF +++=
CD
1 1 1
1 1
1 1
AB 00 01 11 10
00
01
11
10
CD
1 1 1
1 1
1 1
1 1
AB 00 01 11 10
00
01
11
10
CD
1 1 1
1 1 1
1 1 1
1 1 1
AB 00 01 11 10
00
01
11
10
CDBDCBCBACBAF +++= CDBDCBACBAF +++=
DCACAF ++=
19
무관항이 있을 경우 카르노 맵을 이용하여 간소화
CD
1 x 1 1
1 1 x
x
x 1
AB 00 01 11 10
00
01
11
10
CACDBAF ++= BADF += BAF +=
)15,9,7,1()11,5,4,3,2,0( åå += dmF
å å+= )14,12,0()10,8,6,4,3,2,1( dmF
åå += )12,10,7,6,5,1()11,9,8,4,3,2,0( dmF
DBCDCBAF ++=
A B C D F
0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1
x1x1x11100000110
CD
x 1 1 x
x 1 1 1
1 1
AB 00 01 11 10
00
01
11
10
20
선택적 카르노 맵
xzyxyxf ++= yzyxyxf ++=
ACDDBAABF ++= CDBDBAABF ++=
논리식의 카르노 맵 작성논리식에서 생략된 부분을 찾아서 Minterm으로 변경
å=++++=
++++=
++=
)7 3, 2, 1, 0,(
)()(
),,(
mzyxzyxzyxyzxxyz
zzyxzzyxxyz
yxyxxyzzyxf
yzxzyxf +=),,(
21
å=+++++++++=
++++=
)15 14, 13, 12, 7, 6, 5, 3, 1,( )()()())((
),,,(
mzxywzyxxwyzxxwzzwxyzzyywx
zxywzywyzwwxywxzyxwf
yz
1 1
1 1 1
1 1 1 1
wx 00 01 11 10
00
01
11
10
xyzwwxzyxwf ++=),,,(
DCBABAF ++=
A B DCBA
00 01 11 10
11
00
01
11
10 1
CDAB
1
1
1
1
1
11 11
1
DCBAF ++=
최소항으로 바꾸지 않고간소화의 반대방법으로
카르노 맵 작성
22
DACDABACDCBABF ++++=
AB CB ACD
CBABF +=
00 01 11 10
1
00
01
11
10
CDAB
1
1 1 1
1
11
DACDAB
8의 1 데이터 선택기(data selector)
데이터 선택기
01234567 C B A
W
데이터입력단자
데이터 선택기 입력단자
출력단자
23
1 의 8데이터 셀렉터
데이터선택기를 이용하여 진리표의 논리문제 해결
01234567 C B A
W
1
1
11
00
0
0
0 0 0 10 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 0
진리표
C B A Y
?
0 1 10 0 1
HIGHHIGHLOWLOWHIGHHIGH
1 1 0
PLD
• PLD(Programmable Logic Device) 는사용자가 복잡한 논리함수를 실행하기 위해프로그램할 수 있는 IC이다.
• PLD는 많은 입력과 다수의 출력을 가진다. PLD는 AND-OR 논리를 사용하여 최소항부울표현식으로 구현 할 수도 있다. 더 복잡한PLD는 래치와 메모리 특성을 가지고 있다.
• PLD는 저렴하고 사용자가 직접 프로그램할 수있고, 매우 신뢰성이 높은 소자이다.
24
PLDPLD라는 용어는 Programmable Logic Device, 즉프로그램 할 수 있는 IC의 통칭이며, 다음과 같은 다양한종류가 있다.
• PAL - programmable array logic
• GAL - generic array logic
• FPL - fuse-programmable logic
• PLA - programmable logic array
• PEEL - programmable electrically erasable logic
• FPGA - field programmable logic array
• CPLD - complex programmable logic device