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