7-Segment Display Decoder in Logisim-evolution

“Design a seven-segment decoder” is a classic assignment (it appears verbatim on Chegg and in many lab manuals). A 4-bit BCD input (0–9) must light the right segments, a–g, of the display. There are two standard approaches.

Method 1: Gate-level decoder

Write the truth table for each segment (which segments are on for digits 0–9), derive the Boolean expression per segment — or let Logisim-evolution do it: Project → Analyze Circuit builds the minimized expressions and the circuit for you. See our combinational analysis tutorial. This is what most instructors want to see.

Method 2: ROM lookup table

Place a ROM component (Memory library), set its address width to 4 and data width to 7, then fill each address with the 7-bit segment pattern for that digit. Feed the BCD input to the address pins and the ROM output straight to the display. Fewer gates, and it demonstrates how lookup tables work — some assignments explicitly ask for this method.

Shortcut: the built-in Hex Digit Display

If the assignment only needs a working display (not the decoder logic), use the Hex Digit Display component from the Input/Output library — it decodes 4-bit input to a seven-segment digit by itself. Do not submit this when the task is to design the decoder.

Going further: two digits with multiplexing

To show two digits on two displays with one decoder, alternate between them fast using a Counter driving the select lines — persistence of vision blends them. This is the same multiplexing used in real digital clocks; see our digital clock tutorial.

Related: decoder tutorial · ROM tutorial