Thank you Rob for this comment.
But I am not sure if I understand you correctly. Do you want to say, that it is 
IMPOSSIBLE to stream TX two different waveforms synchronized  on the 2 channels 
of the x310 with the full bandwidth of 200MS/s on each channel?
That is what I am trying the last 6 months full time, starting with Labview 
under windows and then UHD under Linux with a Dell Precision 5820 desktop (16GB 
RAM, Intel Xeon W-2125 CPU@ 4.GHz x8) with MXI connection, dual 10Gbit 
connection(Intel X520-DA2), the replay block recently: always the same result: 
continuous underruns.
If you can confirm that this is not possible without an important FPGA change 
(because I have no experience in this field and I have not the time to invest 
into it), I must search for another solution to create two different 
synchronized RF waveforms with 160MHz bandwidth (optical, electronical,…) 
because this will be just a part of my experimental setup but it is crucial to 
go on .
I am thankful for any advise,
Thomas


From: Rob Kossler
Sent: Tuesday, December 10, 2019 5:01 AM
To: Thomas Harder
Cc: Sam Reiter; usrp-users@lists.ettus.com
Subject: Re: [USRP-users] transmitting on two channels with replay block

Apart from solving the underrun issue, there is also an issue with 
synchronization.  The replay block doesn't presently support timed commands.

And, as a side note, the issue with streaming from the host is not just the 
host.  The DMA FIFO has a maximum bandwidth of something like 600 MS/s 
(combination of all inputs and outputs) that precludes streaming 400 MS/s in 
and out of the block simultaneously.  So, even if the host could keep up, the 
FIFO could not.
Rob

On Mon, Dec 9, 2019 at 4:34 AM Thomas Harder via USRP-users 
<usrp-users@lists.ettus.com> wrote:
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

_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to