combinational logic
Picture a vending machine's coin counter: drop in a few coins and the display instantly shows the total. It doesn't matter what you inserted a minute ago or whether the machine has been running for an hour — the output is purely a function of the coins sitting in the slot right now. That's the essence of combinational logic: circuitry whose outputs depend only on its present inputs, with no memory of what came before. Change an input and the outputs settle to their new values after a tiny propagation delay; hold the inputs steady and the outputs hold steady too.
Formally, a combinational circuit implements a pure Boolean function of its inputs — the same input pattern always produces the same output pattern. You build these from logic gates (AND, OR, NOT, XOR) wired into larger blocks: multiplexers that select one of several inputs, adders that sum two numbers, decoders, comparators, and arbitrary lookup-style logic. Crucially, there are no feedback loops and no storage elements, so nothing in the circuit remembers a past state.
This is the deliberate opposite of sequential logic, which feeds its outputs back through memory elements like a flip-flop and therefore does depend on history and on a clock. Real chips interleave the two: clouds of combinational logic compute the next values, and registers latch those values on each clock edge. A practical consequence is timing — signals ripple through gates at finite speed, so the delay of each combinational path between registers is what static timing analysis checks against the clock; the slowest of these becomes the critical path that limits how fast the chip can run.
// A 2-to-1 multiplexer: output is a pure function of sel, a, b assign y = sel ? b : a;
A continuous `assign` describes combinational logic — `y` recomputes the instant any input changes, with no clock and no stored state.
"Combinational" and "combinatorial" are used interchangeably in practice, though most engineers and the IEEE standards prefer "combinational" — the circuit combines inputs, it isn't about counting combinations in the mathematical sense.