ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Digital Logic Design
    CSI-306
    Progress0 / 47 topics
    Topics
    1. Overview of Binary Numbers2. Boolean Algebra3. Switching Algebra4. Logic Gates5. Karnaugh Map6. Quin-McCluskey Methods7. Simplification of Boolean Functions8. Combinational Design: Two-Level NAND/NOR Implementation9. Tabular Minimization10. Combinational Logic Design: Adders11. Combinational Logic Design: Subtracters12. Combinational Logic Design: Code Converters13. Combinational Logic Design: Parity Checkers14. Multilevel NAND/NOR/XOR Circuits15. MSI Components16. Design and Use of Encoders17. Design and Use of Decoders18. Design and Use of Multiplexers19. BCD Adders20. Comparators21. Latches and Flip-Flops22. Synchronous Sequential Circuit Design and Analysis23. Registers24. Synchronous and Asynchronous Counters25. Memories26. Control Logic Design27. Wired Logic and Characteristics of Logic Gate Families28. ROMs29. PLDs30. PLAs31. State Reduction and Good State Variable Assignments32. Algorithmic State Machine (ASM) Charts33. Asynchronous Circuits34. Memory Systems35. Functional Organization36. Multiprocessor and Alternative Architectures37. Introduction to SIMD38. Introduction to MIMD39. Introduction to VLIW40. Introduction to EPIC41. Systolic Architecture42. Interconnection Networks43. Shared Memory Systems44. Cache Coherence45. Memory Models and Memory Consistency46. Performance Enhancements47. Contemporary Architectures
    CSI-306›Combinational Logic Design: Adders
    Digital Logic DesignTopic 10 of 47

    Combinational Logic Design: Adders

    8 minread
    1,316words
    Intermediatelevel

    Combinational Logic Design: Adders

    Adders are fundamental components in digital circuits, used to perform binary addition. In digital logic design, combinational circuits are those whose outputs depend only on the current inputs, with no memory or feedback loops. Adders are one of the most common combinational circuits used for arithmetic operations, especially in processors, calculators, and other digital systems.

    1. Basic Types of Adders

    There are primarily two basic types of adders in digital design:

    • Half Adder (HA)
    • Full Adder (FA)

    These adders can be extended to form more complex adders like Ripple Carry Adder (RCA), Carry Lookahead Adder (CLA), and Binary-Decimal Adders.

    2. Half Adder (HA)

    A half adder is the simplest adder circuit, capable of adding two single-bit binary numbers. It takes two binary inputs and provides two outputs: the sum and the carry.

    Truth Table for Half Adder:

    A (Input) B (Input) Sum (S) Carry (C)
    0 0 0 0
    0 1 1 0
    1 0 1 0
    1 1 0 1
    • Sum (S): The sum output is the result of the binary addition of the two inputs. It can be calculated using the XOR operation.
    • Carry (C): The carry output indicates whether there is an overflow (carry out) from the addition of the two bits. It can be calculated using the AND operation.

    Boolean Expressions:

    • Sum (S) = A ⊕ B (XOR operation)
    • Carry (C) = A ⋅ B (AND operation)

    Circuit Diagram for Half Adder:

      A ----|       |--- Sum (S)
            |  XOR  |
      B ----|       |
                    |
                    | 
            |--- Carry (C)
            |  AND  |
      A ----|       |
      B ----|       |
    

    The half adder uses one XOR gate and one AND gate.

    3. Full Adder (FA)

    A full adder is a more complex adder that can add three bits: two significant bits and a carry bit from the previous lower significant addition (i.e., a carry-in). The full adder also produces a sum and a carry-out, which can be passed to the next bit of a multi-bit adder.

    Truth Table for Full Adder:

    A (Input) B (Input) Cin (Carry-In) Sum (S) Carry-Out (Cout)
    0 0 0 0 0
    0 0 1 1 0
    0 1 0 1 0
    0 1 1 0 1
    1 0 0 1 0
    1 0 1 0 1
    1 1 0 0 1
    1 1 1 1 1

    Boolean Expressions:

    • Sum (S) = A ⊕ B ⊕ Cin (XOR operation)
    • Carry-Out (Cout) = (A ⋅ B) + (Cin ⋅ (A ⊕ B)) (OR operation and AND operations)

    Circuit Diagram for Full Adder:

         A ----|       |--- XOR ---- Sum (S)
               |  XOR  |
         B ----|       |
                      |
                Cin --|     
                      |      
             |--- AND |--- OR ---- Carry-Out (Cout)
             |  AND  |   
         A ----|       |
         B ----|       
    

    A full adder uses two XOR gates, two AND gates, and one OR gate to compute the sum and carry-out.

    4. Ripple Carry Adder (RCA)

    A Ripple Carry Adder (RCA) is a multi-bit adder formed by connecting several full adders in a chain. The carry-out of each full adder serves as the carry-in for the next higher-order adder.

    Operation of Ripple Carry Adder:

    • Each full adder computes the sum and carry for a single bit of the binary numbers being added.
    • The carry-out from one full adder is passed to the carry-in of the next full adder.
    • The ripple refers to the propagation delay as the carry-out ripples through each adder in the chain, potentially causing slower performance for large bit-width operations.

    Example of 4-bit Ripple Carry Adder:

    For adding two 4-bit numbers, A=A3A2A1A0A = A_3A_2A_1A_0A=A3​A2​A1​A0​ and B=B3B2B1B0B = B_3B_2B_1B_0B=B3​B2​B1​B0​, the RCA would consist of four full adders connected as:

    • Full Adder 1: Adds A0A_0A0​, B0B_0B0​, and C0C_0C0​ (Carry-in) to produce S0S_0S0​ and C1C_1C1​ (Carry-out).
    • Full Adder 2: Adds A1A_1A1​, B1B_1B1​, and C1C_1C1​ to produce S1S_1S1​ and C2C_2C2​.
    • Full Adder 3: Adds A2A_2A2​, B2B_2B2​, and C2C_2C2​ to produce S2S_2S2​ and C3C_3C3​.
    • Full Adder 4: Adds A3A_3A3​, B3B_3B3​, and C3C_3C3​ to produce S3S_3S3​ and C4C_4C4​.

    The sum is S3S2S1S0S_3S_2S_1S_0S3​S2​S1​S0​ and the final carry-out is C4C_4C4​.

    Ripple Carry Adder Example:

    Let’s add two 4-bit binary numbers:

       A = 1011 (11 in decimal)
       B = 1101 (13 in decimal)
    

    Step-by-step, the full adders compute:

    1. Add bit 0: 1+1+0=101 + 1 + 0 = 101+1+0=10 → Sum = 0, Carry = 1
    2. Add bit 1: 1+0+1=101 + 0 + 1 = 101+0+1=10 → Sum = 0, Carry = 1
    3. Add bit 2: 0+1+1=100 + 1 + 1 = 100+1+1=10 → Sum = 0, Carry = 1
    4. Add bit 3: 1+1+1=111 + 1 + 1 = 111+1+1=11 → Sum = 1, Carry = 1

    Result: Sum = 10000 (which is 24 in decimal), Carry-out = 1.

    5. Carry Lookahead Adder (CLA)

    While the ripple carry adder is simple, it suffers from a performance bottleneck because the carry signal must propagate through each adder sequentially. This delay increases with the number of bits being added.

    A Carry Lookahead Adder (CLA) addresses this by improving the calculation of carries. It generates carry signals for multiple bits at once, reducing the propagation delay and improving the speed of the adder.

    The CLA uses the Generate (G) and Propagate (P) signals:

    • Generate (G): A carry is generated for that bit, regardless of the input carry. Gi=Ai⋅BiG_i = A_i \cdot B_iGi​=Ai​⋅Bi​
    • Propagate (P): The carry propagates through the bit if there is a carry-in. Pi=Ai+BiP_i = A_i + B_iPi​=Ai​+Bi​

    These signals allow the carry signals to be generated in parallel for all bits, improving the performance of multi-bit addition.


    6. Applications of Adders in Digital Systems

    Adders are used extensively in various applications, including:

    • Arithmetic Logic Units (ALU): Adders are a critical part of ALUs, performing binary addition for arithmetic and logical operations.
    • Counters: Used in counting operations, adders help increment values in counters.
    • Multiplication and Division: Adders are key in implementing multiplication and division algorithms, particularly in binary multiplication (shift-and-add method).
    • Memory Address Calculation: Adders help calculate memory addresses in systems like RAM and caches.

    Conclusion

    Adders are crucial components in digital systems for performing arithmetic operations. The half adder is the simplest form of adder, adding two bits and

    Previous topic 9
    Tabular Minimization
    Next topic 11
    Combinational Logic Design: Subtracters

    Past Papers

    Open this section to load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time8 min
      Word count1,316
      Code examples0
      DifficultyIntermediate