Hi Sam, Thank you for your reply. This morning I set the MCR to 184.32 and I am still having continuous underruns using also replay_ctrl->get_record_fullness for both channels.
But since I need the full bandwidth of 160MHz I would like implement a second replay block in my fpga image. Could anyone help me with this? I am really new in fpga programming and for the image with one replay block I was just following the instructions in https://kb.ettus.com/Using_the_RFNoC_Replay_Block. Thank you, Thomas From: Sam Reiter Sent: Friday, December 6, 2019 10:23 PM To: Thomas Harder Cc: usrp-users@lists.ettus.com Subject: Re: [USRP-users] transmitting on two channels with replay block Thomas, Upon further investigation, we may be running up to a practical limit of a single CHDR interface rather than an issue with your code. A single replay block servicing two radios will have a max (theoretical) rate of 187.5 MSPS on either channel. This means that you might be able to squeeze full rate out on 2 channels with an MCR of 184.32, but that's cutting it pretty close. Sounds like 2 channels at 200 MSPS with a replay setup will require 2 replay blocks serving each channel independently. If you end up trying either of the above out, I'd be curious to know what results you observe. Sam Reiter Ettus Research On Fri, Dec 6, 2019 at 2:38 PM Sam Reiter <sam.rei...@ettus.com> wrote: Thomas, I'd need to set it up on my end, but I believe you can TX two distinct waveforms from a single replay block instance. You'd need to make sure that your adding your data to the buffer in separate locations and at an address that is a multiple of 8 bytes (which it looks like you're doing from the above snippets). Are you seeing continuous underruns, or just a handful at the beginning on the run? Does your duplicated code also use: replay_ctrl->get_record_fullness on both channels before kicking off the stream start? Sam Reiter Ettus Research On Wed, Dec 4, 2019 at 3:48 AM Thomas Harder via USRP-users <usrp-users@lists.ettus.com> wrote: Hello everyone, Is it possible to transmit two different waveforms on the two channels of the USRP X310 with the two UBX-160 daughterboards? I want to transmit two different waveforms simultaneous (synchronized ) on the two channels of the USRP with the full sample rate of 200 MS/s. I tried already to do it with a dual 10Gbit-ethernet connection and I seemed to be limited by my computer. Now I am trying to do it with the replay block. I built the FPGA image with one Replay block as described in https://kb.ettus.com/Using_the_RFNoC_Replay_Block to run the example “replay_samples_from_file” and it is working fine if I transmit just on one channel. Now I was modifying the code by connecting the replay block to both channels: replay_graph->connect(replay_ctrl->get_block_id(),replay_chan,tx_blockid,tx_chan,replay_spp); replay_graph->connect(replay_ctrl->get_block_id(),replay_chan1,tx_blockid1,tx_chan,replay_spp); and writing the same waveform into another region of the DRAM-buffer: replay_ctrl->config_record(0,words_to_replay*replay_word_size, replay_chan); replay_ctrl->config_record(20000,words_to_replay*replay_word_size, replay_chan1); and replay_ctrl->config_play(0,words_to_replay*replay_word_size, replay_chan); replay_ctrl->config_play(20000,words_to_replay*replay_word_size, replay_chan1); where words_to_replay*replay_word_size=16000 replay_chan=0 replay_chan1=1 tx_blockid=0/Radio_0 tx_blockid=0/Radio_1 then I stream my waveforms to the replay block as defined in the example and I start to replay the data: replay_ctrl->issue_stream_cmd(stream_cmd, replay_chan); replay_ctrl->issue_stream_cmd(stream_cmd, replay_chan1); It works but with plenty of Underflows!! So what does it mean when it says in the manual: “Note that the record and playback buffers do not need to the same, allowing a single Replay block to both record and playback to different regions of memory simultaneously.” (https://kb.ettus.com/Using_the_RFNoC_Replay_Block)? Because in the manual it says also: “The replay block has the following features: One input and one output” (https://files.ettus.com/manual/classuhd_1_1rfnoc_1_1replay__block__ctrl.html) So if the replay block has just one output why does it have two channels connected to it (replay_chan= 0 and 1)? If one replay block can just stream to one channel at the same time, can I implement easily a second replay block in the FPGA to stream on the two channels of my USRP two different waveforms simultaneously? Thank you, Thomas _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com