This project's purpose was to design and implement a circuit that converts an 8-bit binary number into a two-digit Binary Coded Decimal (BCD) value for display on a seven-segment LED display. The system can successfully display any number from 0 to 99 and includes logic to indicate an overflow for any input value greater than 99.
Software: Quartus Prime, ModelSim
Hardware: DE1-SoC Board
Core Concepts: Binary Coded Decimal (BCD), "Shift Add Three" Algorithm, K-Maps, Digital Display Drivers, Modular Design.
"Shift Add Three" Algorithm: The core of the converter uses this classic algorithm to translate the binary value into BCD. The process involves shifting the binary input left eight times and adding 3 to any BCD column that is greater than 4 before the next shift.
K-Map Logic Design: The minimal logic required to drive each of the seven segments of the LED display was derived using K-maps for efficiency.
Modular Architecture: The design is modular, built by first creating a reusable "Add-3" circuit block and then instantiating seven of them to build the full 8-bit converter.
Integrated Display Drivers: The final BCD circuit feeds its output into two separate display circuits—one for the tens digit and one for the ones digit—to drive the two seven-segment displays
Add 3 Component
Shift Algorithm to Display
Full Overview
A notable challenge during implementation was that the circuit outputs were initially displayed in reverse order (least significant bit to most significant bit). This issue required careful rewiring and troubleshooting to correct the data path. Through this project, I gained practical skills in using Quartus Prime to implement a design from logic derivation to hardware verification.