조합 논리회로 (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
'[알고리즘]' 카테고리의 다른 글
[MATLAB] matlab source code를 EXE 파일로 변환하기 (0) | 2013.03.29 |
---|---|
조합 논리회로 (Combination Logic Circuit) : 전가산기 (0) | 2013.03.28 |
MSB(Most Significant Bit)/LSB(Least Significant Bit)란 무엇인가? (0) | 2013.01.14 |
영역처리 : 외곽선 검출(Edge Detecting) (0) | 2012.11.08 |
영역처리 : 2차 미분(Second Order Derivative) (0) | 2012.11.08 |