RTL Studio Open IDE

Wiki Combinational logic

Combinational logic

Gates, muxes, arithmetic, and other clockless RTL building blocks.

Combinational logic computes outputs from current inputs only. There is no clocked memory: when inputs change, outputs update after propagation delay.

Mental model

Idea Meaning in RTL
Pure function Same inputs → same outputs
No state No flip-flops / latches intended
Glitch possible Intermediate hazards can pulse briefly

In Verilog / SystemVerilog, combinational blocks are usually:

  • Continuous assigns: assign y = a & b;
  • always_comb / always @(*) with blocking (=) assignments

Design checklist

  1. Every output path must be assigned in every branch (avoid unintended latches).
  2. Prefer always_comb over sensitivity-list typos.
  3. Keep combo cones readable — extract helpers / functions for repeated expressions.
  4. Do not sample with a clock inside a combo process.

Topics in this section

See also

Topics