Project 6: Signed Arithmetic Calculator with 2-digit display
In the past few exercises, you learned how to build an accumulator, represent signed numbers using 2’s complement, detect overflow, and explore the basics of an ALU.
Now it’s time to bring everything together and build a signed two-digit calculator!
Every module in this course ends with a project. These projects focus less on introducing new ideas and more on applying what you have already learned in a complete working system.
You will still be guided, but you will need to reason carefully about how blocks connect and how signals flow.
If you ever feel stuck, remember to refer back to the Resources page for help!
INSERT VIDEO OF FINAL SIGNED CALCULATOR DEMONSTRATION HERE
1) Signed Arithmetic Recap
Before building the final calculator, let’s recall the major ideas behind signed arithmetic introduced in Exercise 6.2.
Using 2’s complement, we were able to:
- Represent both positive and negative numbers
- Perform subtraction using only adders
- Observe wrap-around behavior when overflow occurs
In this project, your circuit must correctly handle:
- Addition and subtraction
- Negative results
- Overflow behavior
- Resetting the stored value
2) ADD / SUB Selection
To allow the calculator to switch between addition and subtraction, one input of the adder is routed through a 2’s-complement generator and then selected using a multiplexer, first studied in Exercise 4.3.
When ADD is selected, the original input goes directly to the adder.
When SUB is selected, the complemented version is used instead.
INSERT BLOCK DIAGRAM OF ADD/SUB SELECTION HERE
3) Overflow Behavior
Because the calculator works with a fixed number of bits, results that exceed the available range will wrap around, as explored in Exercise 6.2.
In this project, you should:
- Push the accumulator past its maximum value
- Observe the wrapped result
- Compare what the hardware shows with the true mathematical answer
INSERT IMAGE OF OVERFLOW DEMONSTRATION HERE
4) Two-Digit Display
Your signed result must be shown in decimal using the double-dabble conversion circuit introduced in Exercise 5.2 and two 7-segment displays.
This requires:
- Feeding the accumulator output into the converter
- Displaying both magnitude and sign
- Resetting all registers simultaneously
INSERT DISPLAY INTERFACE BLOCK DIAGRAM HERE
5) Implementation
Time to actually build your signed calculator!
1. Insert the required ICs onto the breadboard.
2. Re-create the accumulator circuit from Exercise 6.1 and expand it to the required width.
3. Add the 2’s-complement generator to one adder input path.
4. Place multiplexers before the adder inputs and wire the ADD/SUB control switch.
5. Connect the accumulator outputs to the binary-to-decimal display logic.
6. Wire a global reset button so that all registers clear together.
7. Verify correct operation for:
• positive + positive
• positive − positive
• negative + positive
• overflow cases
8. Carefully re-check power rails and ground connections before testing.
Note:
Projects are designed to stretch your understanding. If the circuit does not work at first, isolate each block and test it individually before reconnecting the full system.