[컴퓨터구조]조합 논리회로 정리

류명운

·

2015. 10. 9. 16:04

반응형

2장 조합 논리회로

 

조합 논리회로(Combination logic cricuit)

 : 임의의 시점에서의 출력 값이 그 시점의 입력 값에 의해서만 결정되는 논리회로(내부 기억능력 즉, 메모리를 갖지 않음)

 : NOT, AND, OR, XOR, NOR, NAND, 반가산기, 전가산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서 등이 있음

 

조합 논리회로의 블록도

 

조합 논리회로를 설계할 때의 순서

 1) 입력과 출력 조건에 적합한 진리표를 작성

 2) 진리표를 가지고 카르노 도표를 작성

 3) 간소화된 논리식을 구함

 4) 논리식을 기본 게이트로 구성

 

조합 논리회로 설계의 예

 - 입력 변수는 3개(X, Y, Z)이며 출력 F는 입력의 3비트 3진 값이 4초과이면 1의 값을 가지는 회로를 설계하시오(교재 참조)

 

 

가산기

 

반가산기(half adder)

 : 2개의 2진수 A와 B를 더하여 합(sum)캐리(carry)를 산출하기 위한 조합 논리회로i

 2개의 기본 논리회로를 사용

  1) 한 자리의 2진수 합을 나타내는 논리 함수 / S =  X (XOR) Y 

  2) 캐리를 나타내는 논리 함수  / C = X * Y 

 진리표 및 논리식

 

 논리 게이트 회로(교재 참조)

 

전가산기(full adder)

 : 여러 비트로 된 두 수를 더할 때 두 비트에서 더해진 결과인 캐리는 더 높은 자리의 두 비트의 덧셈에 추가하여 더해짐

 : 아래 자릿수에서 발생한 캐리까지 포함하여 세 비트를 더하는 논리회로를 전가산기라 함

 : 입력 비트 중 두 비트를 더하여지는 유효 비트와 아래 자릿수부로부터의 캐리 비트를 더함

 S(sum)에 대한 진리표와 카르노 도표

     

 불 대수 정리를 이용하여 간소화

 

 

2진 병렬 가산기

 : 2개의 n비트 2진수를 더하는 가산기

 크게 직렬과 병렬 방법으로 분류

  1) 직렬 방법

    - 전가산기 1개와 출력 캐리를 이용하는 방법으로 전가산기를 통해 덧셈이 이루어짐

    - 계산을 수행할 때 발생된 캐리는 다음에 더하는 두 수의 캐리로 입력되어 수행됨

  2) 병렬 방법

    - 전가산기를 연속적으로 연결하여 구성하는 방법

    - n-비트 병렬 가산기는 n개의 전가산기를 필요로 하며, 전가산기의 출력 캐리는 다음 자리의 입력 캐리가 됨

    ex) 2개의 4비트 2진수를 A(1010)와 B(0010)을 더하는 경우 합(S)는 1100이됨

   

 

 

감산기

 

반감산기(Half subtracter) *가산기가 더하는 것이라면 감산기는 빼는것 *^^*

 : 2진수 1자리의 두 개 비트를 빼서 그 차를 산출하는 회로

 입력 변수 X와 Y의 차를 D(Difference), 빌려오는 수를 B(Borrow)라 함 

 진리표 및 논리식

 

 논리 게이트 회로: 하나의 inverter(NOT gate)와 하나의 반가산기로 구현할 수 있음

 

 

전감산기(Full subtracter)

 : 입력 변수 3자리 뺄셈에서 차(D)와 빌려오는 수(B)를 구하는 것

  - 윗자리로부터 빌려온 값을 포함하여 세 비트의 뺄셈을 할 수 있는 회로를 의미

 진리표

 

 D의 카르노 맵: 서로 인접한 1이 없으므로 그대로 논리식을 쓴 뒤 불 대수를 이용해 최대한 간소화 작업을 한다

 

 D의 불 대수 정리를 이용한 간소화

 

 B의 카르노 맵: 서로 인접한 1이 있으므로 서로 묶어준 뒤 논리식을 구한다

 

 B의 논리식: B = X'Z + X'Y + YZ

 D와 B의 논리회로 

 

 

2진 곱셈

 : 2진수의 곱셈(승산)은 10진수와 같은 방법으로 수행

 : 승수의 최소 유효 비트(마지막 자리)부터 피승수를 곱하여 부분 곱(partial product)을 생성하고, 이들 부분 곱은 수행할 때 좌측으로 시프트되어 위치하게 되고, 이들을 합한 값이 최종 결과가 됨 

 2-비트 x 2-비트 2진 곱셈을 위한 구조 및 논리회로

  

 

 

인코더(encoder)와 디코더(decoder)

 

인코더

 : 주로 입력 신호를 컴퓨터 내부에서 사용하는 부호(코드)로 변경함

 : 2^n개의 입력선 중에서 하나가 선택되면 그에 따른 n개의 출력선으로 2진 정보가 출력되는 회로

 ex) 4개의 입력을 가지로 2개의 출력을 가지는 4x2 인코더의 진리표

 

 블록도

 

 

디코더

 : 컴퓨터 내부의 부호(코드)를 일반적인 신호로 변경하여 출력

 : n비트의 2진 코드 입력에 의해 최대 2^n개의 출력이 나오므로 가능한 한 2진 입력의 조합만큼 출력을 가진다

 진리표

 

 디코더를 이용한 전가산기

  : 디코더와 2개의 OR 회로가 필요하며, 전가산기의 진리표로부터 아래와 같은 민텀들을 구할 수 있음

   -> S=(x,y,z) = Σ(1,2,4,7)

   -> C=(x,y,z) = Σ(3,5,6,7)

 3개의 입력에 대해 8개의 민텀의 합으로 구성되므로 아래 그림과 같이 3x8 디코더가 필요하게 설계됨

 

 

 

멀티플렉서와 디멀티플렉서

 

멀티플렉서(MUX, Multiplexer)

 : n개의 선택선의 조합에 의해 선택된 2^n 개의 입력선 중에서 하나를 선택하여 출력선에 연결시켜 주는 회로 

 : 즉, n개의 입력 신호로부터 특정 조건에 의해 입력 신호를 한 개만 선택할 때 사용하는 것  

 진리표 (4x1 멀티플렉서) 

 

 논리회로

 

 멀티플렉서의 블록도

 

 

디멀티플렉서(DeMUX, Demultiplexer)

 : 1개의 입력선으로 받아들여 n개의 선택선의 조합에 의해 2^n개의 출력선 중에서 하나를 선택하여 출력하는 회로

 : 데이터 분배기(Data distributor)라고도 불린다

 : 즉, 1개의 입력을 갖고 4개의 출력물이있는데 S1과 S0에 의해서 그 중 하나만 선택해 출력하는 회로이다

 진리표 (1x4 디멀티플렉서) : 멀티플렉스와 같다

 논리회로

 

 디멀티플렉서의 블록

 

 

멀티플렉서와 디멀티플렉서의 차이점

 : MUX는 4개의 입력선 중 S1,S0 선택자에 의해 1개를 선택해서 출력하는 것이고

 : DeMUX는 1개의 입력선이 S1,S0 선택자에 의해 4개의 출력선 중 1개를 선택해 출력하는 방식

 


반응형