28
7장 조합 논리 회로

7장 조합 논리 회로 - cms3.koreatech.ac.kr · 한국기술교육대학교 정보기술공학부장영조 5 코드변환기(code converter) 2진코드Æ그레이코드변환

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • 7장 조합 논리 회로

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

    2

    7.1 조합논리 회로 해석조합논리회로

    과거의 입력에 상관없이 현재의 입력 값에 의해 출력이 결정되는 회로

    n개의 입력 변수에 의해 2n개의 입력 2진 조합이 가능

    조합회로 해석

    주어진 논리 회로로부터 부울함수와 진리표를 구한 후, 논리 회로의 동작을 해석.

    조합회로 해석 과정

    입/출력에 대한 변수의 수와 변수명을 결정한다.

    n개의 입력 변수에 대해 2n개의 2진 조합에 대한 각 게이트의 출력 부울 함수를 표시한다.

    진리표에 의해 각 출력함수를 간소화한다.

    출력 부울 함수와 진리표를 분석하여 논리회로의 동작 해석

    조합 논리 회로입력 출력

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

    3

    조합논리 회로의 해석예) 다음 조합 논리 회로에서 부울 함수를 구하여 간소화하고 진리표를 작성하라.

    1. 입력 변수(x,y,z), 출력 변수(F)를 선정

    2. 입력 변수에 대한 진리표를 작성

    3. 입력 변수가 3개-> 23가지의 조합입력

    각 게이트의 출력 부울 함수를 구한다.

    T1 = x' y z

    T2 = x' y z'

    T3 = x y

    진리표에 의한 부울 함수를 구한다.

    F = T1 + T2 + T3 = x'y z + x'y z' + x y

    부울 함수식으로 간소화한다.

    F = x' y z + x' y z' + x y

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

    = y(x' + x) = y

    T1

    T2

    T3

    F

    xyz

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

    4

    7.2 조합논리 회로 설계설계하려고 하는 회로의 사양을 분석하고, 분석된 동작을 실행하기 위한 함수를 구한다.조합 논리 회로를 구성하는 논리 회로의 설계 과정. ① 주어진 문제를 분석한다.② 입력 변수, 출력 변수 그리고 출력의 변수명을 결정③ 진리표를 작성한 후 진리표로부터 부울 함수를 구한다.④ 진리표에 의해 카르노 맵 또는 그 외 방법으로 간소화한다.⑤ 간소화된 부울 함수에 의해 논리 회로를 설계한다.

    설계시 유의사항게이트의 입력을 최소화한다.

    게이트의 수를 최소화한다.

    논리회로의 전파지연 시간을 최소화한다.

    상호 연결되는 수를 최소화한다

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

    5

    코드 변환기(code converter)2진 코드 그레이 코드 변환

    입력 : 이진코드 3자리 x,y,z

    출력 : 그레이코드 3자리 a, b, c

    진리표 작성

    논리최소화

    2진수/그레이코드의 변환과정

    1. 2진수의 첫번째 비트는 그레이 첫 번째 비트

    2. 왼쪽부터 오른쪽으로 이웃하는 2개의 비트를 XOR 하면 각각 그레이 코드

    3. 2번과 같은 방법으로 모든 자리수를 반복

    2진/그레이코드 변환 회로 구성

    입력2진코드

    출력그레이 코드

    x y z a b c

    0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

    0 0 00 0 10 1 10 1 01 1 01 1 11 0 11 0 0

    a b c

    x (2진수)y z

    (그레이 코드)

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

    6

    코드 변환기(code converter)그레이 코드 이진 코드 변환

    입력 : 그레이코드 3자리 a, b, c

    출력 : 이진코드 3자리 x,y,z

    진리표 작성

    논리최소화

    그레이코드/ 2진수 의 변환과정

    1. 그레이코드의 첫번째 비트는 이진코드의 첫 번째 비트

    2. 결과의 이진코드 비트와 이웃하는 오른쪽의 그레이 코드 비트를 XOR 하면 각각 그레이 코드

    3. 2번과 같은 방법으로 모든 자리수를 반복

    그레이코드/2진 변환 회로 구성

    입력그레이코드

    출력이진 코드

    a b c x y z

    0 0 00 0 10 1 10 1 01 1 01 1 11 0 11 0 0

    0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

    a (그레이 코드)b c

    x (2진수)y z

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

    7

    BCD 코드의 2421 코드 변환입력 : BCD 코드 4자리 w, x,y,z

    출력 : 2421코드 4자리 a, b, c, d

    진리표 작성 : 사용하지 않는 입력 6개는 don't care

    논리최소화 : 출력 a,b,c,d,에 대한 각 카르노 맵 최소화

    논리도 작성

    BCD 코드 입력 2421코드 출력

    w x y z a b c d

    0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1

    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 1

    z

    wxy

    c

    d

    b

    a

    1 1 1

    x x x x

    1 1 x xw

    y

    z

    x

    1 1

    1

    x x x x

    1 1 x x

    1 1

    1 1

    x x x x

    1 x x

    1 1 1

    x x x x

    1 1 x x

    a=w+xz+xy

    d=zc=w+x'y+xy'z

    b=w+xz'+xy

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

    8

    7.3 패리티 발생기와 패리티 검사기4비트 데이터에 대한 짝수 패리티 발생기(generator) 회로 설계

    출력 짝수 패리티비트, PE진리표와 부울식유도

    PE = D3'D2'D1'D0 + D3'D2'D1D0' + D3'D2D1'D0' + D3'D2D1D0+ D3D2'D1'D0' + D3D2'D1D0 + D3D2D1'D0 + D3D2D1D0'

    = D3'D2'(D1'D0 + D1D0') + D3'D2(D1'D0' + D1D0)

    + D3D2'(D1'D0' + D1D0 ) + D3D2(D1'D0 + D1D0')

    = D3'D2'(D1⊕D0) + D3'D2(D1⊕D0)' + D3D2'(D1⊕D0)' + D3D2(D1⊕D0)

    = (D1⊕D0) (D3'D2'+ D3D2) + (D1⊕D0)'(D3'D2 + D3D2')

    = (D1⊕D0)(D3⊕D2)' + (D1⊕D0)'(D3⊕D2) = D1⊕D0⊕D3⊕D2= ((D3⊕D2)⊕D1)⊕D0

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

    9

    패리티 검사기(checker)짝수패리티 검사기 진리표 – 5비트 입력 PD3D2D1D0출력 CE = 1 if error, = 0 no error

    부울식유도

    CE = P ⊕D3⊕D2⊕D1⊕D04개의 XOR 게이트 사용

    Odd 패리티 사용회로4 비트 데이터에 대한 생성기

    PO = (D3⊕D2⊕D1⊕D0 )'

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

    10

    7.4 인코더최대 M (

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

    11

    8-to-3 인코더8개의 입력에 대한 3비트의 코드 생성

    입력이 low active인 경우의 8-to-3 encoder

    D0D1D2D3D4

    D5

    D6D7

    X=D4+D5+D6+D7

    Y=D2+D3+D6+D7

    Z=D1+D3+D5+D7

    input : active lowoutput :active highO2= A4'+A5'+A6'+A7'O1= A2'+A3'+A6'+A7'O0= A1'+A3'+A5'+A7'

    A0' 입력 floating

    다른 모든 입력이 1일 때 A0' 입력에 상관없이 출력 000

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

    12

    우선순위(Priority) 인코더여러 개의 입력이 동시에 인가되었을 때 우선 순위(priority)를 주어 높은 우선 순위를가지는 입력 값에 대한 코드만 출력 ambiguity 2 제거

    앞의 회로에서 높은 자리에 우선순위를 부여하면 A5'만 유효하게 입력받아 출력은 101

    74148, 74LS148, 74HC148 : 8-to-3 priority encoder

    입력 및 출력은 모두 low active

    GS 출력은 ambiguity 1을 제거 : GS=0 유효출력

    EI와 EO는 확장 연결시 사용

    EI=H, 엔코딩 입력에 상관없이 출력 코드=111, EO=H

    EI=L, 엔코딩 입력의 유효 유무에 따라 GS와 EO 결정

    고순위 입력 인가시에 저순위 입력은 dont'care

    74148의 확장 연결 : 16-to-4 priority 엔코더

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

    13

    decimal-to-BCD priority encoder : 7414710진수를 BCD 코드로 변환 : 10개 입력 (9개만 사용), 4개 출력

    active low 입력 및 출력

    스위치 인코더74147을 이용하여 10개의 키보드 입력을 받아 BCD 코드로 변환하는 회로

    예 : 스위치를 누르면 0 인가, 개방하면 pullup 저항을 통해 1에 연결

    두개 이상 스위치가 동시에 눌러지면 높은 자리(고순위) 키로 처리

    출력은 반전하여 정상 BCD로 변환

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

    14

    7.5 디코더(Decoder)n개 입력선의 코드화된 2진 정보를 최대 2n개의 출력으로 변환하는 조합회로

    일반적인 디코더 회로

    N개의 입력과 M개의 출력: N-to-M, NxM

    N 입력에 대하여 2N개의

    입력 조합으로 M ≤ 2N

    입출력에 버블 low active

    2진 디코더 : 2진 디코더는 2개의 입력과 4(22)개의 출력으로 구성

    2X4 디코더 논리 회로

    x

    y

    D0= x y

    D1= x y

    D2= x y

    D3= x y

    x y D3 D2 D1 D0

    0 0

    0 1

    1 0

    1 1

    0 0 0 1

    0 0 1 0

    0 1 0 0

    1 0 0 0

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

    15

    3-to-8 decoderbinary-to-octal decoder/converter, 1-of-8 디코더

    Enable 입력디코더의 모든출력을 활성/비활성화

    예: 3-to-8 디코더의 3 입력 AND 게이트를 전부

    4 입력 AND 게이트로 하고 4번째 입력에 enable 입력,

    E를 인가하면, E=1이면 정상 디코더 동작 E=0이면 모든 출력은 0

    enable 입력은 디코더의 확장시 사용

    Enable 입력을 가지는

    2X4 디코더 2개로 구성된 3X8디코더D4D5D6D7

    D0D1D2D3

    Decoder B 0123

    2021Enable

    Decoder A 0123

    2021Enable

    xy

    Z

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

    16

    74LS138 3-to-8 디코더NAND 출력 -> active low 출력

    enable 입력 : E1', E2',(active low), E3 (active high)

    디코더가 활성화되려면 : E1'E2'E3 = 001

    디코더의 확장4개의 74LS138과 인버터를 사용하여 1-of-32 디코더를 구성

    1-of-32 디코더는 5-to-32 디코더, 즉 5개의 입력 필요

    74138을 4개 사용, 출력은 8개 x 4 = 32의 출력을 rename

    74138의 원래입력과 E3E2'E1'를 이용하여

    5 입력 A4A3A2A1A0 생성

    74138의 각 소자(Z1 - Z4)는 A4A3에

    인가된 신호가 각각 00, 01, 10, 11일 때

    순차적으로 그 디코더를 활성화하게되고

    이때의 A2A1A0값에 따라

    출력 신호 중 하나만 활성화

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

    17

    BCD to decimal 디코더 : 74424-to-10 디코더, 1-of-10 디코더

    output : low active

    BCD 무효입력 출력이 모두 high (비활성)

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

    18

    디코더에 의한 조합회로 구현디코더는 n개의 입력에 대하여 2n개의 AND 게이트로 구성되는 minterm 회로

    디코더의 외부에 OR 게이트를 추가하면 Sum of minterms 회로 구성

    조합회로를 구현할 때 출력함수들을 SOP로 표현

    예) 부울 함수로부터 3×8 디코더를 사용하여 전가산기(full adder) 회로를 구성

    전 가산기 – 3자리 이진수의 덧셈기입력 : x, y, z (캐리입력)

    출력 : S(합), C(캐리)

    디코더

    21

    20

    3X8

    2

    7

    6

    54

    3

    0

    122

    x

    z

    y

    S

    C

    x y z C S

    0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

    0 00 10 11 00 11 01 01 1

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

    19

    BCD to 7 세그먼트 디코더BCD 코드를 입력으로 7 세그먼트 LED에 0~9의 숫자 표시

    각 세그먼트의 이름 - a, b, c, d, e, f, g

    세그먼트의 공통 단자에 따라

    CA (common anode) - active low logic

    CC (common cathode) – active high logic

    LED 구동 전류 : 세그먼트당 10~40㎃

    (예) 전류제한 저항 계산 : 7 세그먼트 LED 형태의 각 세그먼트는 정상적인 밝기에 대해

    2.7V, 10㎃에서 동작한다. 세그먼트당 10㎃를 흐르게 하는 전류-제한 저항 값을 구하라.

    R = (5 - 2.7)V / 10 mA = 230 Ω

    각 세그먼트의 밝기를 일정하게 하려면 각 세그먼트당 저항 연결

    a

    b

    c

    d

    e

    fg

    CA CC

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

    20

    7446/7447/7448 BCD-to-7 segment decoder/driver

    7446,7447 – active low output, CA 형, open collector (OC)

    7448, 7449(OC)

    – active high output, CC 형

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

    21

    7.6 멀티플렉서(MUX, Multiplexer)데이터 선택기(data selector) - 여러 개의 데이터 입력 중 하나를 선택하여 출력

    일반적인 MUX : N-to-1, 1 out of N

    N개의 입력 중 하나를 선택하기 위한 선택선 : M, N

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

    22

    MUXs4 to 1 MUX 8 to 1 MUX 74151

    enable input (low enable, E)3개의 선택선 : S2S1S0정규 및 반전 출력 : Z, Z'

    - 2개의 74151을 사용한 16-to-1 MUX 회로S3=0, 위의 74151 동작, S2S1S0 값에 따라 입력 I7 - I0 중 하나를 출력S3=1, 아래 74151 동작, S2S1S0 값에 따라 입력 I15 - I8 중 하나를 출력

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

    23

    Quad 2 입력 MUX - 741574 개의 2 입력 MUX, with low enable

    두 개의 입력 군(input nibble) 중 하나를 선택,

    4 비트 데이터(니블) 연결회로에 많이 사용

    SELECT = 0 Zi = Xi i = 0 - 3

    = 1 Zi = Yi

    SELECTx1x2x3 x0 y3 y2 y1 y0

    Z3 Z2 Z1 Z0

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

    24

    MUX를 사용한 논리회로 구현진리표에서 직접논리기능을 구현하는 데 사용

    선택입력은 논리의 입력변수로 사용

    각 데이터 입력은 진리표를 만족하기 위한

    1 또는 0로 연결

    다른 방법 : 3 입력 논리 함수인 경우2(3-1)개의 선택선을 가진 MUX로 구현 가능

    4-to-1 MUX 사용으로 위 함수를 구현가능

    입력 BA 신호를 선택선 S1S0에 연결 (신호순서주의!)

    입력 C 신호에 대한 implementation table 작성

    구현표의 열은 입력선에 인가할 신호의 반전 및 정규열 구성

    행에는 선택선에 인가할 신호의 이진값 차례로 구성

    총 2N개의 minterm을 나타낼수 있는 항이 생긴다.

    이 항에 진리표에서 1이 되는 minterm을 원으로 표시

    각 열의 단위로 원이 둘다 (C와 C')

    그려지면 1, 둘 다 없으면 0,

    C' 행만 있으면 C', C행만 있으면 C로 표시

    최종회로 :

    Z= C'B'A+C'BA'+CBA

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

    25

    MUX 응용회로데이터 라우팅 - 여러 소스(source)에서 오는 데이터 중의 하나를 출력 목적지로 연결

    두 개의 여러자리 BCD 카운터를 같은 디스플레이로 보여주는 회로

    counter select = 1, counter1의 BCD 값이 LED에 나타남

    counter select = 0, counter2의 BCD 값이 LED에 나타남

    MUX는 디코더/구동기들을 시분할하여 사용

    LED에서 전력 소모가 클 때 전력 감소 효과

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

    26

    7.7 디멀티플렉서(DeMUX)멀티플렉서의 역동작 – 데이터 분배기

    DeMUX는 하나의 입력정보를 2n개의 가능한 출력선 중 하나로 전송하며 특정 출력의 선택은 n개의 선택선에 의해 제어

    일반적인 디멀티플렉서 : 1-to-N

    N개의 출력으로 분배하기 위한 선택선이 M이라면 N ≤ 2M

    1-to-8 디멀티플렉서

    x

    S0

    demultiplexer

    D0D

    1D

    2D3D

    4D5D6D7

    S1S2

    - 디코더를 DEMUX로 사용74138 디코더를 DEMUX 사용 예인에이블 E1' 은 데이타입력 I로 사용, A2,A1,A0 입력은 선택선으로 사용

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

    27

    7.8 MUX와 DEMUX의 조합 논리

    A국 B국전화기 4

    전화기 3

    전화기 2

    전화기 1

    전화기 4

    전화기 3

    전화기 2

    전화기 1

    멀티플렉서

    번지

    선택선

    입력 1

    입력 N

    입력 0

    . . . .

    디멀티플렉서

    번지

    선택선

    출력 n

    출력 0

    출력 1..

    . . . .

    .

    .

    [A국과 B국을 연결된MUX와 DEMUX ]

    [MUX/DEMUX의 블록도 ]

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

    28

    MUX-DeMUX 응용회로안전감시시스템많은 문의 개폐가 필요한 곳을 감시하는 공장에서 안전감시의 경우를 고려

    각 문은 스위치의 상태에 따라 제어.

    감시소에 설치된 원거리 모니터판의 각 LED에 스위치상태표시

    MUX/DEMUX를 이용한 감시시스템

    - 8개의 문을 가진 감시 시스템

    8개의 문 스위치가 MUX 입력으로

    문이 열릴 때 1, 문이 닫힐 때 0MOD-8 카운터( 000부터 111까지

    순차적으로 카운팅)

    출력을 MUX와 DEMUX의 선택선에 연결, DEMUX의 각 출력은 LED에 연결되어 출력이 0일 때 ON

    문 6이 개방: I6=1, Z'=0, count=110 일 때 O6'=0 => LED6 ON

    문 2가 닫힘: I2=0, Z'=1, count=010 일 때 O2'=1 => LED2 OFF

    7장 조합 논리 회로7.1 조합논리 회로 해석조합논리 회로의 해석7.2 조합논리 회로 설계코드 변환기(code converter)코드 변환기(code converter)BCD 코드의 2421 코드 변환7.3 패리티 발생기와 패리티 검사기패리티 검사기(checker)7.4 인코더8-to-3 인코더 우선순위(Priority) 인코더decimal-to-BCD priority encoder : 741477.5 디코더(Decoder)3-to-8 decoder74LS138 3-to-8 디코더BCD to decimal 디코더 : 7442디코더에 의한 조합회로 구현BCD to 7 세그먼트 디코더7446/7447/7448 7.6 멀티플렉서(MUX, Multiplexer)MUXsQuad 2 입력 MUX - 74157MUX를 사용한 논리회로 구현MUX 응용회로7.7 디멀티플렉서(DeMUX)7.8 MUX와 DEMUX의 조합 논리 MUX-DeMUX 응용회로