[USRP-users] Unable to use RFNoC Block with multiple output ports

Juan Francisco jfrancisco1527 at gmail.com
Mon Dec 29 23:29:26 EST 2014


Hi,

I am working on an RFNoC application on an X310 where I would like the
route the output stream from a NoC block to 2 other NoC blocks.  To do
this, I built a custom FPGA image that includes a noc_block_split_stream.
I am attempting to route from the the output of the source processing block
into the input port of the split stream block.  Then I am connecting output
ports 0 and 1 of the split stream block to the input ports of the 2 other
blocks.  However, no matter what I try to do, the software appears unable
to make the connections.

To illustrate the problem, I have made a simple example based off of
rfnoc_nullsource_ce_rx.cpp.  The relevant source code that I am using for
connecting the blocks is:

// Get block control objects
uhd::rfnoc::split_stream_block_ctrl::sptr split_stream_ctrl =
    usrp->get_device3()->find_block_ctrl<
uhd::rfnoc::split_stream_block_ctrl >("SplitStream");

uhd::rfnoc::source_block_ctrl_base::sptr fifo_ctrl =
    usrp->get_device3()->find_block_ctrl<
uhd::rfnoc::source_block_ctrl_base >("FIFO");

uhd::rfnoc::source_block_ctrl_base::sptr window_ctrl =
    usrp->get_device3()->find_block_ctrl<
uhd::rfnoc::source_block_ctrl_base >("Window");

uhd::rfnoc::null_block_ctrl::sptr null_src_ctrl =
usrp->get_device3()->find_block_ctrl<uhd::rfnoc::null_block_ctrl>(nullid);

// Set channel definitions
usrp->clear_channels(); // The default is to use the radios. Let's not do
that.
usrp->set_rx_channel(fifo_ctrl->get_block_id());
usrp->set_rx_channel(window_ctrl->get_block_id());

// Connect the blocks
// Null Source Output port 0 to Split Stream Input port 0
usrp->connect(
    null_src_ctrl->get_block_id(), 0,
    split_stream_ctrl->get_block_id(), 0
);

// Split Stream Output port 0 to FIFO input port 0
usrp->connect(
    split_stream_ctrl->get_block_id(), 0,
    fifo_ctrl->get_block_id(), 0
);

// Split Stream Output port 1 to Window input port 1
usrp->connect(
    split_stream_ctrl->get_block_id(), 1,
    window_ctrl->get_block_id(), 0
);


When I run this example, I get this error message:

Error: TypeError: 0/SplitStream_0 (18446744073709551615): Invalid input
port number.

Any advice for what I am doing wrong would be much appreciated.

Thanks,
Juan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20141229/b4f6cbe2/attachment-0002.html>


More information about the USRP-users mailing list