24
1 4. 조합회로 설계 목표 부울 표현식에 대한 논리도 그린다. 진리표로부터 부울 표현식을 구하고, 이를 AND-OR 형식의 논리도를 작성 카르노 맵을 이용하여 부울 표현식을 간략화한다. NAND 게이트들을 이용하여 논리 회로를 간략화한다. 컴퓨터 시뮬레이션 프로그램을 이용하여 부울 표현식을 진리표나 논리도로 변환한다. 데이터 선택기를 이용하여 논리 문제를 해결한다. PLD(programmable logic device)

4 조합회로설계 [호환 모드] - Pusan National University...1 4. 조합회로설계 목표 •부울표현식에대한논리도그린다. •진리표로부터부울표현식을구하고,

  • 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 원래의 회로에 게이트를 거칠 때마다 게이트의 출력을 적어주면서 한단계씩 출력 쪽으로 나아가면 된다.

논리회로 논리식 유도 과정

4

• 논리식 유도 예1

• 논리식 유도 예2

• 논리식 유도 예3

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