In digital hardware design, combinational circuits are circuits where the output depends on values of present inputs, i.e., it is a function of the inputs. Contrast this with sequential circuits, which are functions of past and present inputs.

Common combinational circuits include:

Implementation

In Verilog, there is nothing particularly unusual about implementing combinational circuits. Whenever we use an always block, we should describe the sensitivity list with an asterisk:

always@(*)

In SystemVerilog, we can use always_comb to denote a block of circuitry that is solely combinational, i.e., it cannot hold any sequential circuitry.

always_comb begin
	// code
end