Have you tried to run an rfnoc-style testbench such as in the
rfnoc-example?  If not, this may be useful.  If you try this, it may be
easier to follow the example if you change your output number of ports to
be 1 so that it is a simple 1-to-1 block.
Rob

On Tue, Sep 13, 2022 at 6:36 AM Kevin Williams <zs1...@gmail.com> wrote:

> Hi Rob,
>
> I can confirm the radio streams correctly.
>
> I have also tried tx_streamer => multiDDC => rx_streamer which
> successfully sends a number of samples, but none are received. (The script
> is below.)
>
> Just to summarize, the IP core seems to be behaving correctly when
> simulated in Vivado where I apply AXI handshaking, reset the core, and
> clock it.
>
> I have set all endpoints in the design as follows:
>
>   ep0:                       # Stream endpoint name
>     ctrl: True                      # Endpoint passes control traffic
>     data: True                      # Endpoint passes data traffic
>     buff_size: 32768                # Ingress buffer size for data
>
> Regards, Kevin
>
>
> graph = uhd.rfnoc.RfnocGraph("type=x300,addr=192.168.30.2")
>
> tx_streamer = graph.create_tx_streamer(1, uhd.usrp.StreamArgs("sc16",
> "sc16"))
> rx_streamer = graph.create_rx_streamer(1, uhd.usrp.StreamArgs("sc16",
> "sc16"))
>
> gb = graph.get_block("0/multiddc#0")
> graph.connect(tx_streamer, 0, gb.get_unique_id(), 0)
> graph.connect(gb.get_unique_id(), 0, rx_streamer, 0)
> graph.commit()
>
> num_samps = 4 * tx_streamer.get_max_num_samps()
> send_samps = np.array([[0x40004000] * num_samps], dtype="int32")
>
> tx_md = uhd.types.TXMetadata()
> tx_md.start_of_burst = True
> tx_md.end_of_burst = True
>
> recv_samps = np.zeros((1, num_samps), dtype="int32")
>
> rx_md = uhd.types.RXMetadata()
>
> num_sent = tx_streamer.send(send_samps, uhd.types.TXMetadata())
> num_recv = rx_streamer.recv(recv_samps, rx_md, 0.1)
>
>
> On Tue, 13 Sept 2022 at 00:36, Rob Kossler <rkoss...@nd.edu> wrote:
>
>> One more thought. If the FPGA version that you built with dynamic
>> linking, you should be able to create an RFNoC Graph as follows:
>>   tx_streamer => multiDDC => rx_streamer(s)
>> This way you can eliminate the radio from the equation and test in a very
>> similar fashion to the way it is tested in a testbench.
>>
>> Rob
>>
>> On Mon, Sep 12, 2022 at 6:33 PM Rob Kossler <rkoss...@nd.edu> wrote:
>>
>>> Oops. Ignore what I said. I now realize you stated you were getting an
>>> Overflow which of course you would never get if streaming hadn't started.
>>> Rob
>>>
>>> On Mon, Sep 12, 2022 at 6:32 PM Rob Kossler <rkoss...@nd.edu> wrote:
>>>
>>>> Are you sure that the radio is even streaming?  The typical method for
>>>> starting streaming is to tell the rx_streamer to start streaming.  Then, in
>>>> UHD-land, the rx_streamer ctrl tells the next upstring block to start
>>>> streaming such that this streaming command propagates up the chain until
>>>> the radio receives it and starts streaming.  So, if your custom block does
>>>> not forward the streaming command from the rx_streamer to the radio, then
>>>> the radio never even starts streaming.  You can verify by simply monitoring
>>>> the LEDs.
>>>>
>>>> If this is the problem, you can go-around the intended use by simply
>>>> telling the radio to start streaming rather than the rx_streamer.  Or, of
>>>> course, you can modify your custom block controller to propagate the
>>>> streaming command.
>>>> Rob
>>>>
>>>> On Mon, Sep 12, 2022 at 4:18 PM Kevin Williams <zs1...@gmail.com>
>>>> wrote:
>>>>
>>>>> Yes, of course. But I don't get 1 sample from the ddc's, even with
>>>>> just one channel of a 2:1 decimated channel connected to the rx streamer.
>>>>>
>>>>> On Mon, 12 Sept 2022 at 22:13, Jonathon Pendlum <
>>>>> jonathon.pend...@ettus.com> wrote:
>>>>>
>>>>>> The aggregate output rate of the 5 streams could require more
>>>>>> bandwidth than the 10 GigE interface can sustain. What are the exact 
>>>>>> output
>>>>>> rates?
>>>>>>
>>>>>> On Mon, Sep 12, 2022 at 3:53 PM Kevin Williams <zs1...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Those rates vary from a 2:1 decimation down to other rates.
>>>>>>>
>>>>>>> The host has 10 Gbe interfaces to the USRP.
>>>>>>>
>>>>>>> I get samples if i connect the radio to the rx streamer, just
>>>>>>> nothing from the ddc's.
>>>>>>>
>>>>>>> On Mon, 12 Sept 2022 at 21:48, Jonathon Pendlum <
>>>>>>> jonathon.pend...@ettus.com> wrote:
>>>>>>>
>>>>>>>> Hi Kevin,
>>>>>>>>
>>>>>>>> What are the sample rates for the 5 outputs? What connection are
>>>>>>>> you using to your host PC, 1 GigE or 10 GigE?
>>>>>>>>
>>>>>>>> Jonathon
>>>>>>>>
>>>>>>>> On Mon, Sep 12, 2022 at 3:38 PM Kevin Williams <zs1...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Jonathon,
>>>>>>>>>
>>>>>>>>> I've got an x310. The flowgraph is a simple radio->multiddc->(to
>>>>>>>>> 5x outputs). I've tried both static and dynamic routing from the radio
>>>>>>>>> block. I.e. the static route version:
>>>>>>>>>
>>>>>>>>> |    /
>>>>>>>>> |   |       Static connections on this device:
>>>>>>>>> |   |
>>>>>>>>> |   |   * 0/Radio#0:0==>0/multiddc#0:0
>>>>>>>>> |   |   * 0/multiddc#0:0==>0/SEP#2:0
>>>>>>>>> |   |   * 0/multiddc#0:1==>0/SEP#3:0
>>>>>>>>> |   |   * 0/multiddc#0:2==>0/SEP#4:0
>>>>>>>>> |   |   * 0/multiddc#0:3==>0/SEP#5:0
>>>>>>>>> |   |   * 0/multiddc#0:4==>0/SEP#6:0
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On the input side it is all at the radio rate, but I hope my core
>>>>>>>>> is being clocked at 214 MHz.
>>>>>>>>>
>>>>>>>>> When I simulate my IP core (which includes the AXI streaming
>>>>>>>>> interfaces) it looks ok.
>>>>>>>>>
>>>>>>>>> Regards, Kevin
>>>>>>>>>
>>>>>>>>> On Mon, 12 Sept 2022 at 21:29, Jonathon Pendlum <
>>>>>>>>> jonathon.pend...@ettus.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hello Kevin,
>>>>>>>>>>
>>>>>>>>>> What device are you using and what does your flowgraph look like?
>>>>>>>>>> What sample rate are you running at? If your block is running at the 
>>>>>>>>>> radio
>>>>>>>>>> sample rate (e.g. 200 MSPS on a X310), your block will need to 
>>>>>>>>>> process one
>>>>>>>>>> input sample every clock cycle on average.
>>>>>>>>>>
>>>>>>>>>> Jonathon
>>>>>>>>>>
>>>>>>>>>> On Mon, Sep 12, 2022 at 9:09 AM Kevin Williams <zs1...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> I've got an IP core that is causing an "ERROR_CODE_OVERFLOW"
>>>>>>>>>>> when used in an RFNoC project.
>>>>>>>>>>>
>>>>>>>>>>> The core responds correctly when simulated outside the RFNoC
>>>>>>>>>>> environment. (I can see correct output, the AXI streaming 
>>>>>>>>>>> signalling,
>>>>>>>>>>> back-pressure when required, etc.)
>>>>>>>>>>>
>>>>>>>>>>> I'm not sure how to go about debugging this, and am not yet
>>>>>>>>>>> familiar enough with RFNoC to know what to ask.
>>>>>>>>>>>
>>>>>>>>>>> I have been thinking it was the core not being reset or clocked
>>>>>>>>>>> correctly, but this is how it gets instantiated:
>>>>>>>>>>>
>>>>>>>>>>>   multiddc multiddc_i (
>>>>>>>>>>>     //   - Using different clocks for the IP core and the AXI
>>>>>>>>>>> interface. The IPCore_Clk and AXILite_ACLK must be
>>>>>>>>>>>     //     synchronous and connected to the same clock source.
>>>>>>>>>>> The IPCore_RESETN and AXILite_ARESETN must be
>>>>>>>>>>>     //     connected to the same reset source. See
>>>>>>>>>>> Synchronization of Global Reset Signal to IP Core Clock Domain.
>>>>>>>>>>>     .IPCORE_CLK                (axis_data_clk),
>>>>>>>>>>>     .IPCORE_RESETN             (~axis_data_rst),
>>>>>>>>>>>
>>>>>>>>>>>     .AXI4_Lite_ACLK            (axis_data_clk),
>>>>>>>>>>>     .AXI4_Lite_ARESETN         (~axis_data_rst),
>>>>>>>>>>>
>>>>>>>>>>> The core YAML file describes the clock as:
>>>>>>>>>>>
>>>>>>>>>>> data:
>>>>>>>>>>>   fpga_iface: axis_chdr
>>>>>>>>>>>   clk_domain: ce
>>>>>>>>>>>
>>>>>>>>>>> In the project YAML file:
>>>>>>>>>>>
>>>>>>>>>>> clk_domains:
>>>>>>>>>>>     - { srcblk: _device_, srcport: radio, dstblk: radio0,
>>>>>>>>>>> dstport: radio }
>>>>>>>>>>>     - { srcblk: _device_, srcport: ce,    dstblk: multiddc0,
>>>>>>>>>>> dstport: ce }
>>>>>>>>>>>
>>>>>>>>>>> Is there something that might be an obvious first place to check?
>>>>>>>>>>>
>>>>>>>>>>> Many thanks, Kevin
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Kevin Williams
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> USRP-users mailing list -- usrp-users@lists.ettus.com
>>>>>>>>>>> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Kevin Williams
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Kevin Williams
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Kevin Williams
>>>>> _______________________________________________
>>>>> USRP-users mailing list -- usrp-users@lists.ettus.com
>>>>> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>>>>>
>>>>
>
> --
> Kevin Williams
>
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to