RTL Studio Open IDE

Multiplexers

Combinational 16:1 MUX (32-Bit Datapath)

Combinational 16:1 mux with sixteen 32-bit inputs and a 4-bit select.

About this block

Simulate it in the Verilog IDE

Easyverilogsimsyn

Combinational 16:1 MUX (32-Bit Datapath) is a Verilog reference block in the Multiplexers catalog. Multiplexers, demultiplexers, and data-path selectors. Marked Easy: a small block you can read, simulate, and synthesize in one sitting.

This OpenIP implements a 16-to-1 multiplexer with a 32-bit data path. It selects one of sixteen 32-bit input signals based on a 4-bit selection signal. The design is fully combinational and latch-free. It uses a case statement for clear and synthesizable logic.

This IP provides a robust and simple 16-to-1 multiplexer. It is suitable for routing 32-bit data streams. The design is easy to integrate and verify. Simulation results confirm correct functionality.

  1. Choose Open in IDE. RTL Studio loads the packaged workspace for Combinational 16:1 MUX (32-Bit Datapath).
  2. Read the Verilog module in the editor. The catalog line for this block: Combinational 16:1 mux with sixteen 32-bit inputs and a 4-bit select.
  3. Run the packaged testbench with the in-browser Verilator simulator, then open the VCD in the waveform viewer.
  4. Run Yosys in the same IDE for a generic netlist. Sky130 liberty mapping is a separate Pro library option.

RTL Studio is the Verilog simulator and IDE around this block: Slang lint, Verilator, VCD waveforms, and Yosys, in the browser. Simulation guide · Yosys guide.

Features

Supports 16 independent 32-bit data inputs. Uses a 4-bit selector for input routing. Combinational logic with no internal state. Default output is zero for undefined selection states.

Ports

PortDirectionWidthDescription
selinput[3:0]Selection signal
d0input[31:0]Data input 0
d1input[31:0]Data input 1
d2input[31:0]Data input 2
d3input[31:0]Data input 3
d4input[31:0]Data input 4
d5input[31:0]Data input 5
d6input[31:0]Data input 6
d7input[31:0]Data input 7
d8input[31:0]Data input 8
d9input[31:0]Data input 9
d10input[31:0]Data input 10

Verification

The testbench covers sequential input selection. It verifies random data at specific indices. It checks edge cases like all identical inputs. It validates zero data and maximum data values. All tests passed successfully in simulation.

Test CaseDescriptionResult
TC1Sequential Input TestPASS
TC2Random Data TestPASS
TC3All Inputs Same ValuePASS
TC4Zero DataPASS
TC5Max DataPASS

More in Multiplexers

All Multiplexers blocks