Digital Logic

Combinational Circuit

A circuit whose output depends only on current inputs, with no memory or feedback.

Detailed Explanation

Combinational logic implements Boolean functions—outputs change whenever inputs change (after propagation delay). Common examples include multiplexers, decoders, encoders, adders, and comparators. There's no clock or state storage.

In SystemVerilog, combinational logic uses `always_comb` blocks or continuous assignments. The block must not infer latches—all outputs must be assigned in all code paths.

Code Example

systemverilog
// Priority encoder - combinational logic
always_comb begin
  casez (req)
    4'b1???: idx = 2'd3;
    4'b01??: idx = 2'd2;
    4'b001?: idx = 2'd1;
    4'b0001: idx = 2'd0;
    default: idx = 2'd0;
  endcase
end