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