[알고리즘]

조합 논리회로 (Combination Logic Circuit) : 반가산기

Neo Park 2013. 3. 28. 18:31

조합 논리회로 (Combination Logic Circuit)

 

조합 논리회로는 임의의 시점에서의 출력 값이 그 사람의 입력값에 의해서만 결정되는 논리회로이며,

내부 기억 능력 즉 메모리를 갖지 않는다.

조합 논리회로는 여러개의 기본 논리 게이트를 가지고 조합하여 원하는 연산을 할 수 있게 한 것이며,

입력,논리 게이트, 출력 으로 구성된다.

 

조합 논리 회로의 특징

 1. 입력에 의해 출력이 결정된다.

2. 자체 내에 플립플롭과 같은 기억회로를 가지지 않는다.

3. 불 대수를 사용한다.

4. 진리표를 사용하여 간소화한다.

 

조합논리회로는 앞에서 배운 논리회로 AND,OR,NOT, XOR,NOR,NAND 와

반 가산기 / 전 가산기 / 감산기 / 전 감산기 /  디코더 /  인코더  /  멀티플렉서 /  디멀티플렉서 이다.

 어? AND,OR,NOT,XOR,NOR,NAND 등은 알겠는데 ... 아래 저것들은 뭐죠?

 

반 가산기, 전 가산기, 반 감산기, 전 감산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서

기본 논리회로를 이용해 조합해서 만든 각각 하나의 회로라고 보면된다.

 

자, 그럼 저들중 반 가산기에 대해 알아보자.

 

일단 가산기란 무엇인가?

 

가산기 (Adder)

가산기는 가산회로라고도 불리운다.

가산기는 말 그대로 덧셈을 수행하는 녀석이다.

가산기 입장에서 보면 덧셈만 하지만 사실은 사칙연산 전부 다 수행이 가능하다.

가산기는 덧셈뿐만아니라 뺄셈, 곱셈, 나눗셈의 연산을 수행한다.

뺄셈은 보수를 취해 더하면 구할 수 있고, 곱셉은 덧셈을 반복하면 되고, 나눗셈은 뺄셈을 반복해서 연산이 가능하도록 한다.

가산기의 종류로는 반 가산기(Half Adder)전 가산기(Full Adder) 가 있다.

 

반 가산기(Half Adder)

반 가산기는 2개의 2진수 X,Y 논리변수를 더하여 합(Sum)과 캐리(Carry)를 산출하기 위한 조합 논리회로이다.

 

반 가산기의 진리표는 아래와 같다.

 

 

이 진리표에서 논리식을 구하면, 다음과 같다.

 

S = X'Y + XY' = XY

C = XY

이 논리식을 가지고 논리 회로를 그리면 다음과 같이 구성할 수 있다.

(그림 1)

위 반 가산기 논리회로는 순수 AND,OR,NOT으로만 구성된 논리회로이다.

즉, X'Y + XY' = S 가 나온다는 식을 그대로 AND와 OR 게이트를 사용했다.

하지만 X'Y + XY' 가 XY (XOR연산) 이란 사실은 이미 알고있다.

[ 디지털논리회로 글 참고 - http://blog.naver.com/asd7979/30105701505 ]

따라서 XOR로 표현해서 X'Y+XY'를 XOR 게이트로 바꿔주면 아래와 같은 논리회로가 나온다.

(그림 2)

두 그림 회로는 똑같은 논리식을 가진 회로다.

하지만 어떤가? 기본 논리회로로 짠 '그림1' 보다 '그림2' 가 더 간단하지 않은가?

그래서 반 가산기 회로 라고 하면 그림2가 가장 최적화된 논리회로라고 보면 된다.

하지만 반 가산기를 처음 접해본 사람은 먼저 진리표를 그려보고

최대한 간소화해 논리식을 구한다음 '그림1' 처럼 기본게이트로 논리회로를 그려본다음

'그림2' 도 그려보는걸 추천한다.

 

 

 

참조 : http://blog.naver.com/asd7979?Redirect=Log&logNo=30108134761