-
Lecture 14&15 (Adder)디지털 회로개론 2021. 12. 6. 23:34728x90
The Half-Adder
Input : 두개의 2진수가 들어옵니다.
Output : 두개의 출력이 나오는데 하나는 sum 또 다른 한개는 carry 입니다.
A B C out Sum 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 다음 진리표를 보면
C out은 입력 A와 B의 AND gate와 같은 역할을 하는 것을 볼 수 있습니다.
Sum 은 입력 A와 B 의 XOR gate와 같은 역할을 하는 것을 볼 수 있습니다.
따라서 왼쪽 그림과 같은 회로도로 나타낼 수 있습니다.
The Full-Adder
Input : 2개의 이진수와 Carry가 들어갑니다.
Output : Sum과 Carry가 나옵니다.
Half Adder와 차이점은 Full Adder은 Input으로 Carry를 받는다는 것입니다.
다음 진리표를 보면
C out은 Cin(A⊕B)+AB 와 같다는 것을 알 수 있습니다.
Sum은 (A⊕B)⊕Cin 과 같다는 것을 알 수 있습니다.
Parrallel Binary Adder
두개 또는 그 이상의 full-adder가 연결되어 있는 형태 입니다.
예를 들어 3-bit 2진수 덧셈 101 + 011 이라고 한다면
A3 = 1, A2 = 0, A1 =1
B3 = 0, B2 = 1, B1 = 1
입니다.
다음과 같은 결과가 나오게 됩니다.
cascading (연속화)
다음 그림을 보면 4-bit full adder2개를 서로 연결시켜 8-bit adder를 만들 수 있습니다.
low-order adder에서 나온 Cout이 high-order adder의 Cin 으로 연결됩니다.
이러한 연결성을 cascading이라고 합니다.
예를 들어
A8A7A6A5A4A3A2A1 = 10111001
B8B7B6B5B4B3B2B1 = 10011110
이라고 하면 먼저 low-order adder에서 A4A3A2A1과 B4B3B2B1 을 계산하고 Cout을 high-order adder로 보내줍니다.
또 high-order adder에서는 A8A7A6A5와 B8B7B6B5 를 계산해주고 최종결과를 출력합니다.
parrallel adder는 내부의 carry의 이동에 따라 2가지의 adder로 나뉘어 질 수 있습니다.
Ripple Carry 와 Look-Ahead Carry 입니다.
외부적으로는 둘다 비슷해 보이지만
속도 측면에서 Look-Ahead Carry > Ripple Carry 입니다. 즉 Look-Ahead Carry가 더 빠릅니다.
The Ripple Carry Adder
일반적인 parrallel adder와 비슷합니다.
첫번째 adder에서 계산한 carry out이 다음 adder의 carry in에 입력으로 들어가게 됩니다.
여기서 두번째 adder는 carry in이 들어오기 전까지 작동을 안합니다.
따라서 각 adder을 거칠 때 마다 time delay가 발생하게 됩니다.
다음 그림을 보면 총 32ns의 time delay가 발생한것을 볼 수 있습니다.
The Look-Ahead Carry Adder
가장 큰 특징은 각 adder마다 carry out을 미리 예상한다는 것입니다.
따라서 carry delay를 줄여 시간을 단축할 수 있습니다.
output carry는 carry generation 또는 carry propagation에 의해 만들어 집니다.
Carry generation
carry generation은 내부적으로 carry가 발생할때 발생합니다.
A B
0 + 0
0 + 1
1 + 1 (Carry 발생)
carry는 두개의 bit가 모두 1일 때 발생하므로 Cg는 AND로 사용할 수 있습니다
Cg = AB
Carry propagation
carry propagation은 두개의 입력 bit가 모두 0일 때만 발생하지 않고 나머지는 발생합니다.
A B
0 + 0 (발생 X)
0 + 1 (발생 O)
1 + 1 (발생 O)
따라서 Cp는 OR로 사용할 수 있습니다.
Cp = OR
이제 우리는 Carry가 발생하는 경우를 알아볼 것입니다. (carry = 1)
1) Cg 가 1 이면 무조건 carry가 발생합니다.
2) Cp가 1 이고 Cin 이 1이면 무조건 carry가 발생합니다.
즉 2가지 경우중 1가지 경우만 만족해도 carry가 발생하게 됩니다.
따라서 Cout = Cg + Cp *Cin 을 만족합니다.
이렇게 미리 carry발생을 알 수 있어 시간절약에 도움이 됩니다.
'디지털 회로개론' 카테고리의 다른 글
Lecture 17 (Decoder & Encoder) (0) 2021.12.09 Lecture 16 (Comparator) (0) 2021.12.08 Lecture 1 (0) 2021.10.21 Lecture 11 & 12 (0) 2021.10.21 Lecture 10 (SOP, POS, 카르노 맵 간소화) (0) 2021.10.17