AXIS Frequency Multiplexer#
The axisFrequencyMuxIP is a top-level frequency multiplexer designed for quantum readout systems. Its primary purpose is to aggregate multiple tone streams, each corresponding to a distinct resonator frequency, into a single output stream. This enables the readout of multiple qubits through a single physical line.
Mode of Operation#
The IP aggregates input samples through a structured pipeline:
Channel Gating: Each input channel is validated via the
tvalid(data availability) andtuser(channel enable) signals. Only channels marked as active contribute to the final sumFrequency Multiplexing: The core uses a hierarchical adder tree (see
adder_tree/src/adderTree.sv) to perform parallel additions. By summing multiple tone streams in the frequency domain, the IP produces a single multiplexed output stream. Given the DAC sample rate of 9.8 GHz, the system maintains timing closure by processing the summation through 8 paralleladderTreeinstancesRecomposition: A single 256 bit output is returned every clock cycle
AXI Stream channels#
Control Signals:
s**_axis_tvalid: High when the input sample is valids**_axis_tuser: Acts as a channel enable; the MSB must be high for the tone to be included in the summation, while the remaining bits are ignored
Data Streams:
s**_axis_tdata: Individual input streams representing specific frequency tonesm00_axis_tdata: The aggregated multiplexed output stream
Creating the AXIS FREQUENCY MULTIPLEXER IP PROJECT#
To generate a copy of the axis frequency multiplexer project:
create a directory called
workspace/in the root of this repomove to that directory and source the vivado init script
open vivado
source the
frequencyMux_project.tclscript located in this directory from the vivado tcl console
Set axisFrequencyMuxIP.v as the top module for synthesis and implementation; otherwise, use tb_axisFrequencyMuxIP.sv to simulate with Vivado’s AXI VIP masters to send data to the frequency multiplexer IP.