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›BCD Adders
    Digital Logic DesignTopic 19 of 47

    BCD Adders

    6 minread
    1,043words
    Intermediatelevel

    BCD Adders (Binary-Coded Decimal Adders)

    A BCD Adder is a specialized digital adder designed to handle Binary-Coded Decimal (BCD) numbers. In BCD, each decimal digit (0-9) is represented by a 4-bit binary code. For example:

    • Decimal 0 is represented as 0000
    • Decimal 1 is represented as 0001
    • Decimal 9 is represented as 1001

    When adding two BCD numbers, the result must also be in BCD form. However, since a BCD digit can only represent values from 0 to 9 (i.e., 0000 to 1001 in binary), if the sum of two BCD digits exceeds 9, an adjustment must be made to convert the binary sum back into a valid BCD format.

    1. BCD Addition Process

    To understand how BCD addition works, let's break it down:

    1. Binary Addition of BCD Digits:

      • When adding two BCD digits, each 4-bit input is added using binary addition rules, similar to adding normal binary numbers.
    2. Correcting the Result (When Necessary):

      • If the binary sum of two BCD digits is greater than 1001 (i.e., 9), the result is not a valid BCD code. In such cases, an adjustment is required to convert the binary sum into a valid BCD code.
      • The correction is done by adding a binary 6 (0110) to the sum. This is because adding 6 (0110) in binary will "carry" the sum into the next valid BCD range.

    2. BCD Adder Design

    A BCD adder typically consists of two parts:

    1. A binary adder to add the two BCD digits.
    2. A correction logic to check if the sum exceeds 9 and to add 6 if necessary.

    Step-by-Step BCD Addition Example:

    Let's go through an example of adding two BCD digits:

    • BCD 1 (0001) and BCD 2 (0010)

    First, perform a binary addition:

      0001   (BCD 1)
    + 0010   (BCD 2)
    --------
      0011   (Binary Sum)
    

    Here, the binary sum is 0011 (which is 3 in decimal), and no correction is needed because the sum is less than 9.

    Now let's add two BCD digits that result in a sum greater than 9:

    • BCD 1 (0101, decimal 5) and BCD 2 (0101, decimal 5)

    Perform binary addition:

      0101   (BCD 1)
    + 0101   (BCD 2)
    --------
      1010   (Binary Sum)
    

    The binary sum is 1010, which is invalid as a BCD digit (because it represents decimal 10). Therefore, we need to correct the result:

    • Since 1010 is greater than 1001, we add 6 (which is 0110 in binary):
      1010   (Binary Sum)
    + 0110   (Correction 6)
    --------
      0000   (Valid BCD Result with Carry to Next Digit)
    

    Thus, the BCD sum is 0000, and a carry is generated, which will be propagated to the next higher decimal digit (just like in regular binary addition).

    3. BCD Adder Circuit

    a. Binary Adder (4-bit):

    • The first step in a BCD adder is to use a 4-bit binary adder to add the two BCD digits.
    • A 4-bit adder can be a full adder circuit, where each full adder adds corresponding bits from the two BCD digits and any carry from the previous step.

    b. Correction Logic:

    • After the binary sum is obtained, a comparison circuit checks whether the sum exceeds 1001 (decimal 9). If it does, the correction logic adds 0110 (decimal 6) to the sum.
    • This addition can be done with an additional 4-bit adder.

    BCD Adder Block Diagram

    The BCD adder circuit consists of:

    1. A 4-bit binary adder that adds the two BCD digits.
    2. A comparison circuit that checks if the sum is greater than 9.
    3. A correction adder that adds 6 if the sum exceeds 9.
    4. A carry generator that passes the carry to the next higher decimal digit.

    4. Example of a 2-Digit BCD Adder

    Now, let’s consider a 2-digit BCD adder, where each digit can range from 0 to 9:

    Let’s add:

    • BCD 1: 5 (0101) and BCD 2: 7 (0111)

    First Step: Add the BCD digits

      0101 (BCD 1 = 5)
    + 0111 (BCD 2 = 7)
    --------
      1100 (Binary Sum = 12)
    

    The binary sum is 1100, which is greater than 1001 (9). We need to add 6 to adjust the sum to a valid BCD representation.

    Second Step: Apply correction

    Add 0110 (6 in binary) to the binary sum:

      1100 (Binary Sum = 12)
    + 0110 (Correction = 6)
    --------
      0010 (Corrected BCD Sum = 2)
    

    Thus, the corrected result for the ones place is 0010 (BCD for 2). There is a carry to the next decimal place.

    Third Step: Handle the carry for the next BCD digit

    For the next column (tens place), the carry from the previous addition is added to the next BCD digits. Suppose you add:

    • BCD 3: 2 (0010) and BCD 4: 1 (0001)

    Perform the same addition:

      0010 (BCD 3 = 2)
    + 0001 (BCD 4 = 1)
    + 1    (Carry from previous column)
    --------
      0011 (BCD Result = 3)
    

    The final result of adding BCD 1 + BCD 2 (5 + 7) is 12, which is represented as 0010 0011 in BCD (2 in the tens place and 3 in the ones place).

    5. Practical Uses of BCD Adders

    BCD adders are used in systems where:

    1. Human-readable decimal output is required, such as in digital clocks, calculators, or accounting machines, where decimal digits need to be added.
    2. Decimal computation is necessary, and binary arithmetic (without converting to decimal) is insufficient or impractical.

    For example:

    • Financial systems that involve decimal-based calculations.
    • Displays where the result is shown in decimal format (e.g., a 7-segment display).
    • Embedded systems that need to handle decimal numbers but use binary processors.

    6. BCD Adder Limitations

    While BCD adders are essential for decimal arithmetic, there are some limitations:

    1. Speed: Adding the correction step introduces additional delay compared to pure binary addition.
    2. Hardware Complexity: The need for comparison and correction circuits increases the complexity of the adder compared to a simple binary adder.

    Conclusion

    A BCD adder is designed to add binary-coded decimal numbers while ensuring that the result is also in valid BCD format. It consists of a binary adder and correction logic to adjust sums that exceed the valid BCD range (0-9). BCD adders are crucial in applications requiring accurate decimal computations, especially in systems with human-readable outputs such as digital clocks, calculators, and financial systems.

    Previous topic 18
    Design and Use of Multiplexers
    Next topic 20
    Comparators

    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 time6 min
      Word count1,043
      Code examples0
      DifficultyIntermediate