[Verilog Chapter1 조합 논리회로] 1. 가산기
조합 논리회로(Combinational Logic Circuit)
회로의 출력이 현재 입력의 조합에 의해 정해지는 논리회로
이전의 회로 상태가 출력에 영향을 미치지 않는다 → 메모리 소자가 없음
논리곱, 논리합, 논리 부정의 기본 논리 회로를 조합하여 구성함
입력변수, 논리 게이트, 그리고 출력변수들로 구성된다.

순차 논리회로(Sequencial Logic Circuit)
출력이 현재의 입력과 이전의 논리회로 상태의 조합에 의해 결정되는 논리회로
이전의 회로 상태가 출력에 영향을 미친다 → 메모리 소자가 있음
동기(Synchronous) 순차 논리회로
클럭(clock)을 이용하여 새로운 입력의 순차와 응답의 출력 생성이 일정한 시간 간격을 둔 채로 제어된다.
비동기(Asynchronous) 순자 논리회로
출력이 외부로부터의 관리에 의해서가 아닌 내부의 지연에 의해 일정하지 않은 시간 간격을 두고 발생한다.
→동기 순차 논리회로보다 설계 과정이 어렵다.
순차 논리회로의 구성
조합 논리회로 + 기억 소자

기억소자(Memory Element)
시스템의 상태를 기억(저장)
현재 상태(present state) = 기억 소자의 현재 저장값
조합 논리회로
현재의 입력 신호와 기억 소자의 현재 상태 값을 이용하여 출력 값과 다음의 상태 값을 산출
동기 순차 논리회로는 클럭을 이용하여 조합 논리회로에서 산출된 다음 상태 값을 기억 소자에 저장하여 상태 값을 갱신한다.
반가산기(half-adder, HA)

S : Sum은 xor 게이트로 빠지고
C: Carry는 and 게이트로 빠짐
전가산기(full-adder, FA)
자리 올림수(carry)를 고려하여 만든 덧셈 회로

S : sum은 X, Y , Cin을 합하고 남은 수
C : Cout은 자리 올림수


전가산기는 반가산기 2개와 or 게이트를 이용하여 구성함
병렬가감산기(parallel - adder/subtracter)
병렬가산기(Parallel Adder)
여러 비트로 표현되는 숫자 덧셈을 위해 2개 이상의 전가산기를 병렬로 연결하여 구성한 가산기
병렬가감산기(Parallel Adder/Subtracter) - 뺄셈 연산을 2의 보수의 덧셈으로 구현한 가산기
제어신호 S가 0이면, xor 게이트의 출력은 Y의 값을 그대로 전송
제어신호 S가 1이면, xor 게이트의 출력은 Y의 1의 보수를 출력, C0에 1이 전달되어 2의 보수로 변환
고속가산기(high-speed-adder)
병렬가산기의 장단점
장점 : 구조가 간단하여 구현이 용이
단점 : 캐리 전파 지연으로 인한 늦은 연산 속도 → 비트수가 늘어날 수록 지연이 가중
BCD 가산기
BCD 코드는 2진수 표현과 달리 표현범위가 0에서 9까지다.
BCD 덧셈계산에서는 결과 보정이 필요
2진수 합의 결과가 1010~1111인 경우 보정
캐리 및 합 값을 보정 (+6 을 해준다)
BCD 합에서 캐리를 만들어 주어야 하는 경우의 논리식