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

Reply via email to