28
6장 부울 함수의 간소화

6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

6장 부울 함수의 간소화

Page 2: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

2

개 요

모든 입력과 출력 조건이 동일한 경우에는 가능한 한 논리 회로를 간단하게구성 논리회로 간소화 혹은 최적화

• 부울식의 간소화: term을 감소하거나 literal를 감소한다.

term은 게이트의 수, literal은 게이트의 입력수를 나타낸다.

논리 회로의 동작 속도 향상, 소비 전력 감소 등 효율적인 논리 회로 구성가능

논리 회로를 간소화하는 방법

• 논리 회로 자체를 간소화하는 방법

• 논리 회로를 부울 함수로 표현한 후 부울 함수를 간소화

• 부울 대수의 기본 정리를 이용하는 방법 – 연속적인 부울정리 사용으로trial and error

(1) 드 모르강의 정리와 합의 곱을 반복적으로 수행

-> SOP 형식을 유도

(2) SOP에서 공통인수를 찾고 이를 소거

• 카르노 맵(karnaugh map) 방법 – 도식적인 방법으로 6개정도의 입력 변수까지 사용

Page 3: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

3

6.1 부울 대수식의 기본 정리 이용

예) 부울 함수 F = wx'(y'+xz) + wx'(x+y'z)를 간소화 한후 논리 회로 비교

F = wx'(y'+xz) + wx'(x+y'z)= wx'y' + wx'xz + wx'x + wx'y'z

= wx'y' + wx'y'z = wx'y'(1+z) = wx'y'

Z(a,b,c) = m(2,3,7) = m2 + m3 + m7

= a'bc' + a'bc + abc sum of minterms 3 input AND 3개, 3 input OR 1개

= a'bc' + a'bc + a'bc + abc

= a'b(c'+c) + bc(a'+a)

= a'b + bc <- sum of products, 2 input AND 2개, 2 input OR 1개

Page 4: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

4

6.2 카르노 맵진리표를 그림 모양으로 나타낸 것이며 벤다이어 그램(venn diagram)을 확장한 것

여러 형태의 사각형으로 된 그림으로 진리표의 각 항 (최소항 또는 최대항)들은 카르노 맵의 각 한칸의 사각형에 나타냄

카르노 맵의 각 칸에서 수평 또는 수직 방향으로 인접한 칸(adjacent term)은 한 변수의 논리상태만서로 다르다.

카르노 맵에서 인접항을 2,4,8,16…의 단위로 묶음으로써 부울변수를 1,2,3,4,… 개씩 감소한다.

카르노 맵에서의 간소화 과정

1.논리회로를 부울함수로 표시- 기본적으로 SOM(POM)으로 표현

2. 진리표로 나타낸다.

3. 카르노맵에 진리표의 각 값을 적합한 칸에 기입

4.SOP로 최소화할 때는 '1'로 구성되는 최대 인접항으로 묶고 POS로 최소화할때는 '0'으로 구성되는 최대인접항으로 묶는다.

5. 각 항들은 중복되어 묶일 수 있다.

6. 모든 최소항은 한번 이상은 묶여야 한다.

7. 큰항의 묶음에서 남아있는 변수들로 간소화된 부울식을 구한다.

정규(x)및 반전(x')인 변수가 묶음내에 존재하면 그 변수는 식으로부터 소거

모든 칸에 나타나는 같은 변수는 최종식에 남는다

보다 큰 1(0)의 묶음은 더 많은 수의 변수를 소거시킨다.

'1'로 묶은 함수는 정규형이므로 SOP로 바로 구하여진다.

'0'으로 묶은 함수는 보수형이므로 그 결과를 반전하여 POS형의 정규함수를 구한다.

Page 5: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

5

카르노 맵

2변수의 카르노 맵

2개의 2진 변수에 대한 4개의 최소항 구성

각 최소항은 하나씩 4개의 사각형에 배치

3변수의 카르노 맵

3개의 2진 변수에 대한 8개의 최소항 구성

x'y+xy

=y(x'+x)

=yxy'+xy

=x(y'+y)=x

x'y'z'+xy'z'+x'yz'+xyz'

=y'z'(x+x')+yz'(x'+x)=z'(y'+y) = z'

xy'z+xyz

=xz(y'+y)

=xz

2개항의 묶음(looping) -인접한 1(0)의 쌍을 묶어 정규입력과 반전입력형태의 1개 변수 소거

Page 6: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

6

3변수 카르노 맵

예) F = x'y'z + x'yz' + x'yz + xy'z 을 카르노 맵을 이용하여 간소화하여라.

예) 다음 진리표에 대한 논리식의 최소화된 논리도를 그려라.

x y z F

0 0 0

0 0 0

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1

0

1

0

1

1

1

0

SOP - '1' 묶음F = x'y + y'z

POS형 - '0'묶음F' = y'z' + x'yF = (y'z' + x'y)

= (y+z)(x+y')

y'z' y'z yz yz'

x' 1 0 0 1

x 1 1 0 1

간소화된 부울식

F = z' + xy'

xy

z F

논리도

카르노맵

Page 7: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

7

3 변수 카르노 맵 예

F(A,B,C)= (1,2,3,5,7) = C+A'B∑

Page 8: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

8

4변수 카르노 맵

4변수의 카르노 맵

4개의 변수에 대한 24 =16개의 최소항 구성

wx'y'

yz'

xz

Page 9: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

9

4변수 카르노맵 최소화 예

같은 K-map에서 두개 이상의해를 가지는 예

4변수 맵에서 term의 변수감소는

• single 1 = 4변수 (minterm)

• two 1s = 3변수

• four 1s = 2변수

• eight 1s = 1변수

• sixteen 1s = 0 변수 (상수 1)

Page 10: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

10

5변수 카르노 맵

0 1 3 2

4 5 7 6

12 13 15 14

8 9 11 10w

x

z

y

16 17 19 18

20 21 23 22

28 29 31 30

24 25 27 26w

x

z

y

v

5 변수 K-map

32개의 minterms

1 1

1 1 1

1 1w

x

y

z

1

1

1 1 1

1 1 1w

x

y

z

v

F = wy' + xyz

+ v'xz + vx'yz'

Page 11: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

11

6변수 카르노 맵

0 1 3 2

4 5 7 6

12 13 15 14

8 9 11 10w

y

16 17 19 18

20 21 23 22

28 29 31 30

24 25 27 26

x

y

v

32 33 35 34

36 37 39 38

44 45 47 46

40 41 43 42

6 변수 K-map

64개의 minterms

w

z

48 49 51 50

52 53 55 54

60 61 63 62

56 57 59 58

x

z

u

F = v'xz + u'vxy + vwxy + uvw'y'z + uv'wx'yz'

Page 12: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

12

6.3 Don't Care 출력이 완전히 정의되지 않는 경우의 함수에 대하여 사용한다.

입력 변수의 조합들에 대한 출력 값은 어떠한 입력 값이라도무관(don't care)하게 된다.

(예) BCD 코드에서 1010 ~ 1111은 정의되지 않는 값

부울함수를 더 간단하게 하는데 사용한다.

don't care 항은 d 로 표시하고 K-map에서도 이를 사용한다.

don't care가 있는 논리 함수의 표현

(예)함수 F를 SOM과 don't care 혹은 POM과 don't care로 표현하고 최소화

F(w, x, y, z) = ∑(0,7,8,10,15) + ∑d(1,2,9,11,13) = ∏ (3,4,5,6,12,14) ·∏d(1,2,9,11,13)

<곱의 합형>

F = x'z' + xyz

<합의 곱형>F'=xy' +xz' +x'zF=(x'+y)(x'+z)(x+z')

d(2)는 1로 포함, 나머지는 0로 포함

d(1,9,11,13)은 0로 포함, d(2)는 1로 포함

모든 1은 한번씩은 포함(cover)되어져야 함

모든 0은 한번씩은 포함(cover)되어져야 함

중첩항

(redundant term)

Page 13: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

13

6.4 Quine-McClusky 논리 간소화

테이블 방법(tabulation method, Q-M 방법)

• 입력 변수가 많을 경우 표를 이용하여 논리 간소화

Tabulation 방법의 단계

(1) Find PI(Prime Implicant)s - candidate

(2) Select PI - include minimum number of terms

Prime Implicant : 2의 맥급수로 묶을 수 있는 최대 인접항으로 결합된product term

Essential Prime Implicant (EPI) : 한개 혹은 그 이상의 minterms을 포함(cover)하는 유일한 PI 가 있다면 그 PI를 EPI라 한다.

K-map논리화 : EPI는 반드시 포함하고나머지 minterm를cover 하는 최소수의 PI를 포함한다.

Page 14: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

14

Quine-McClusky 과정

Find PI

1. Step 1 : Grouping - 최소항을 1의 개수로 분류

2. Step 2 : matching - 모든 상하 그룹에서 모든 최소항들을 각각 비교하여1개의 변수만이 다르다면 그 2개의 최소항을 결합하고 이때 1개의 변수가삭제된다. 결합된 항은 로 표시.

3. Step 3 : step 2의 결과에서 모든 상하 그룹에서 같은자리에 소거된 변수가 있는 항끼리 비교하여 1개의 변수만이 다르다면 그 2개 항을 결합하고1개의 변수가 소거된다. 결합된 항은 로 표시.

4. step 3의 과정을 변수항의 결합이 발생하지 않을 때까지 한다.

5. 위 과정에서 남은 항과 매칭되지 않은 모든 항들은 PI가 된다.

Page 15: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

15

Tabulation 방법 예

PI 찾기 F= ∑m(0,1,2,8,10,11,14,15)를 QM으로 최소화

matching * PI's

w'x'y', x'z', wy

1 1 1

1 1

1 1 1w

x

y

z

* All PI's are EPI.

grouping

0

Page 16: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

16

Q-M 방법 예

F(w,x,y,z)= ∑m(1,4,6,7,8,9,10,11,15)를QM으로 최소화

매칭시 10진수값으로 실행

두값을 비교하여 1,2,4,8,16…의차이가 있을 때 결합

단, 아래 그룹의 값이 더 커야한다.

Find PI's

Page 17: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

17

Tabulation 방법 예

Select PI's

(1) 행에 찾아진 모든 PI를 기입(포함하는 최소항을 같이 기입)

(2) 열에 모든 최소항 기입

(3) 각 PI가 cover하는 최소항을 각 해당란에 X로 표시

(4) 단 한 개의 X로 표시된 최소항을 가지는 PI를 한다. EPI

(5) (4)의 EPI가 cover하는 모든 최소항을 마지막 열에 표시

(6) (5)의 되지 않는 최소항을 포함하는 PI를 최소개가 되도록 선택

(7) (4)와 (6)을 포함하여 논리식을 작성

F = x'y'z + w'xz' + wx' + xyz

Page 18: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

18

Don't care를 포함한 Q-M 방법

F(w, x, y, z) = ∑(2,3,7,9,11,13) + ∑d(1,10,15)

PI 찾기

PI selection

d를 포함하여 PI를 찾는다

포함되어져야 할 최소항에는 d를 불포함

F = x'y +yz +wz

v v v v

Page 19: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

19

6.5 다출력 함수의 설계논리 회로에서 함수의 출력이 2개 이상인 다 출력을 가지는 논리 회로

다변수 함수 예

각 출력에 대하여 간소화를 한다.

입력을 동시에 사용하는 형태로 논리도를 작성한다.

F1(w,x,y,z)= ∑m(11,12,13,14,15) F2(w,x,y,z)= ∑m(3,7,11,12,13,15) F1(w,x,y,z)= ∑m(3,7,12,13,14,15)

Page 20: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

20

6.6 논리 회로의 간소화

간소화 : 부울식의 간소화와 논리게이트의 간소화

NOR 게이트와 NAND 게이트 – 만능(universal ) 게이트

NAND 게이트

• 부울함수

• AND-NOT(AND 게이트의 출력을 반전), NOT-OR(OR 게이트의 모든 입력을 반전)의 두 가지로 표현

NOR 게이트

• 부울함수

• AND-NOT(AND 게이트의 출력을 반전), NOT-OR(OR 게이트의 모든 입력을 반전)의 두 가지로 표현

xy

Fxy

Fx

Fy

xFy

xy

Fxy

F

Page 21: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

21

Universal 게이트

NOT : NAND 혹은 NOR 만으로 NOT 구현

AND : NAND 혹은 NOR 만으로 AND 구현

OR : NAND 혹은 NOR 만으로 OR 구현

x F x F x F

x Fy F

x

y

xFy F

x

y

Page 22: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

22

NAND 게이트의 논리 회로 구성Two stage logic – SOP(SOM) 혹은 POS(POM)으로 표현

모든 디지털회로는 이단논리로 표현가능

부울 함수를 SOP 로 표시하는 방법

• 첫 번째 방법은 함수 값이 1인 최소항을 SOP 로 표시

• 두 번째 방법은 함수 값이 0인 최소항을 SOP로 표시한 후 F를 보수화

함수를 2단계 NAND 게이트로 표시하는 방법.• 함수 값이 1인 최소항을 구해 SOP 형식을 직접적으로 NAND 게이트로 변환(동

일한 2단논리)• 함수 값이 0인 최소항을 구해 보수를 한 후 SOP의 NAND 게이트로 표시, 마지

막단에 NOT로 사용되는 NAND 사용(3단 논리)

함수를 2단계 NOR 게이트로 표시하는 방법.• 함수 값이 0인 최대항을 구해 POS 형식을 직접적으로 NOR 게이트로 변환.(동일

한 2단논리)• 함수 값이 1인 최대항을 구해 보수를 한 후 POS의 NOR 게이트로 표시, 마지막

단에 NOT로 사용되는 NOR 사용(3단 논리)

Page 23: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

23

SOP : NAND-NAND 논리

2단 AND-OR 회로는 2단 NAND-NAND 논리로 변환

예) 부울 함수 F=wx+x'y+yz를 곱의 합형인 논리 회로로 표시하고, NAND 게이트로 구현하라.

y F

wx

z

y F

wx

z

y

wx

z

F y

wx

z

F

Page 24: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

24

POS : NOR-NOR 논리

2단 OR - AND 회로는 2단 NOR-NOR 논리로 변환

예) 부울 함수를 POS 논리 회로를 구성하고 NOR 게이트로만 구현하라.F = (w+x)(x'+y)(y+z)

wx

y

z

F

wx

y

z

F

wx

y

z

F

Page 25: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

25

게이트 간소화

가능한한 IC 개수를 줄여서 x = AB + CD로 표현되는 식의 회로를 구현하려고

한다. TTL IC를 가지고 회로를 구성하여라.

2개 논리 게이트 사용

1개 논리 게이트 사용

Page 26: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

26

사용별 게이트의 표현선택회로 설계에 있어 대치 논리게이트를 적절히 사용하여 회로 해석을 쉽게 한다.

- 동작시킬 회로의 최종 출력이 Active High이냐 Active Low에 따라 선택- 그림 (b) : 출력 Z는 A=B=1 또는 C=D=1인 경우에 High - 그림 (c) : 출력 Z는 A 또는 B가 Low이고, C 또는 D가 Low일 때만 Low 출력

Bubble 위치반전을 나타내는 버블은 출력에 버블이 있으면 그 다음 입력에 버블이 있도록 연결버블이 없는 출력에는 없는 입력을 연결

Page 27: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

27

6.7 XOR 게이트와 XNOR 게이트비교 연산을 수행하는 게이트

교환 법칙과 결합 법칙 성립

XOR 게이트

A≠B이면 1 출력, A=B이면 0 출력

부울함수 : F = x ⊕ y = x' y + x y'

XNOR 게이트

A≠B이면 0 출력, A=B이면 1 출력

부울 함수 : F = x y = x' y' + x y

XOR 과 XNOR는 서로 보수함수

F' =( x' y + x y')' = (x+y')(x'+y)

= xx'+xy+x'y'+yy'

= xy+x'y' XNOR

Page 28: 6장 부울 함수의 간소화 - cms3.koreatech.ac.krcms3.koreatech.ac.kr/sites/yjjang/down/dig_new/chap5.pdf · 한국기술교육대학교 정보기술공학부장영조 12 6.3

한국기술교육대학교정보기술공학부 장 영조

28

XOR 사용 예

(예) x1x0와 y1y0는 각각 2비트 2 진수이다. 이 두수가 서로 같은 값을 가질 때 출력이 HIGH가 되는 논리회로를 설계하라.

진리표 작성하면 각 입력의 같은 자리수가 같을 때 출력이 1

(예) 간소화시 XOR나 XNOR를 이용한 예

z = ABCD + AB'C'D + A'D'

= AD(BC + B'C') + A'D'

= AD(B C) + A'D'

3변수 XOR 부울식

F(x,y,z)= x ⊕ y ⊕ z = ∑m(1,2,4,7)

= x'y'z +x'yz' +xy'z' + xyz

1의 개수가 홀수개

3변수 XNOR 부울식 ?

1 1

1 1

K-map