ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Lecture 14&15 (Adder)
    디지털 회로개론 2021. 12. 6. 23:34
    728x90

    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 outCin(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 CarryLook-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
Designed by Tistory.