FPGA / RTL · Digital Logic II, UTA · 2025
IEEE 754 Half-Precision Floating-Point Adder
Intel MAX 10 FPGA
A 16-bit IEEE 754 floating-point adder/subtractor designed and synthesized in SystemVerilog, wrapped in a complete keypad-to-display user-facing system.

The datapath
Floating-point addition is mostly bookkeeping around a single integer add. Operands are ordered by magnitude so the smaller exponent is always the one shifted; the mantissa is aligned by the exponent difference; the add or subtract is selected by comparing signs; and the result is normalized back into IEEE 754 form with overflow and underflow flagged at the boundaries.
A full system, not just a block
The adder is wrapped in everything needed to actually use it on the board. A 4×4 matrix keypad is scanned with an FSM that debounces mechanical bounce and decodes hex; edge detection captures each operand exactly once per press; and a time-multiplexed driver scans the 7-segment displays fast enough to look continuous.
Timing analysis
Synthesis landed at 706 logic elements and 137 registers. Reading the static timing report, the critical path is the unrolled normalization shifter — an unavoidable consequence of doing a variable-length shift combinationally in a single cycle. Pipelining that shifter is the clear route to timing closure, trading one cycle of latency for a substantially higher fmax.