RFNoC Split Stream Block

From GNU Radio
Revision as of 14:01, 29 October 2023 by Duggabe (talk | contribs) (initial creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This RFNoC block takes in a single CHDR stream and duplicates it, creating 'Number of Branches' (num_branches) output streams for each input stream.

The 'Number of Inputs' (num_inputs) parameter corresponds to the number of inputs that you want to split. That is, the block creates num_inputs instances of 1:num_branches splitters. The figure below illustrates how the CHDR ports are ordered when num_inputs = 2 and num_branches = 3.

              ┌──────────┐
 Stream A --->│0        0│---> Stream A
 Stream B --->│1        1│---> Stream B
              │         2│---> Stream A
              │         3│---> Stream B
              │         4│---> Stream A
              │         5│---> Stream B
              └──────────┘

Note that the number of available inputs and outputs are generated during FPGA build time, and GRC doesn't have access to how many inputs and outputs a particular target has. If the provided number for num_inputs or num_branches exceeds what is on the target, then a runtime error will be generated.

Parameters

(R): Run-time adjustable

Device Select
default: -1
Instance Select
default: -1
Number of Inputs
default: 1
Number of Branches
default: 2
IO Type
options: ['sc16', 'u8']

Example Flowgraph

Example Output

Source Files

C++ files
TODO
Header files
TODO
Public header files
TODO
Block definition
uhd_rfnoc_split_stream.block.yml