Hi all,

exactly for this use-case we have written a Wrapper around UHD [1] which does 
exactly what is requested by the original question. It has been tested with 
X310 and worked, but most development and testing is currently done on X410. 
Maybe this can help the development.

Max

[1] https://github.com/Barkhausen-Institut/usrp_uhd_wrapper


Maximilian Matthe

Head of Engineering Lab

maximilian.mat...@barkhauseninstitut.org

Tel.: +49 173 4509667

________________________________
From: Wade Fife <wade.f...@ettus.com>
Sent: Friday, October 4, 2024 2:34 AM
To: hui cj <cjh416593...@gmail.com>
Cc: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com>
Subject: [USRP-users] Re: RFNoC Replay module (DRAM to PC)

Q1) Yes, only one channel is required. Each channel has both send and receive 
capabilities and you can use both simultaneously. However, note that sending 
and receiving between host and replay block, and between replay block and 
radio, simultaneously, would require two channels. For example, one channel for 
TX/RX between host and replay block, and another channel for TX/RX between 
replay block and radio.

Q2) Notice that you have the same block ports being used in both (1) and (2), 
so you can't do both graphs at the same time. You'll need to switch between 
graphs or use additional ports on the Replay block if you want to connect the 
replay block to the host and to the radio at the same time while being able to 
transfer in both directions. But the routes you gave look valid.

Q3) Yes. You can use timed commands for both Rx and Tx.

Here's an example for RX (record from radio to replay block, then transfer to 
host):
https://github.com/EttusResearch/uhd/blob/master/host/examples/python/replay_capture.py

Here's an example for TX (transfer from host, then playback to radio):
https://github.com/EttusResearch/uhd/blob/master/host/examples/rfnoc_replay_samples_from_file.cpp

They both use timespecs to indicate the time to start receiving or transmitting 
at the radio. The basic idea is that you tell it some known time in the future 
to begin.

Wade

On Thu, Oct 3, 2024 at 12:29 PM hui cj 
<cjh416593...@gmail.com<mailto:cjh416593...@gmail.com>> wrote:

Hello all,

I have some confusion regarding the RFNoC Replay module.

Due to the limited transmission rate between my computer and the X310, I cannot 
transmit and receive waveforms in real-time. Therefore, I want to use the 
Replay module to transmit the waveform stored in DRAM and record the received 
signal into DRAM.

Based on the following links:

https://kb.ettus.com/RFNoC_Frequently_Asked_Questions#What_can_the_DRAM_be_used_for.3F

https://kb.ettus.com/Using_the_RFNoC_Replay_Block_in_UHD_4

I believe this functionality can be achieved.

The provided example has already implemented the Record and Play functions, but 
I am still confused about how to store the waveform in DRAM and then transfer 
it to the computer.

Q1:

Is only one channel of the Replay module needed to achieve this functionality?

Q2:

(1) The example constructs the following graph to store the transmitted data in 
DRAM:

  *   TxStreamer#0:0 --> 0/Replay#0:0
  *   0/Replay#0:0 --> 0/DUC#0:0
  *   0/DUC#0:0 ==> 0/Radio#0:0
  *   0/Radio#0:0 ==> 0/DDC#0:0
  *   0/DDC#0:0 --> RxStreamer#0:0

(2) To store the received data into DRAM at the same time, should I construct 
the following graph as well?

  *   0/Replay#0:0 --> 0/DUC#0:0
  *   0/DUC#0:0 ==> 0/Radio#0:0
  *   0/Radio#0:0 ==> 0/DDC#0:0
  *   0/DDC#0:0 --> 0/Replay#0:0

(3) To read the data from DRAM and transfer it to the computer:

  *   0/Replay#0:0 --> RxStreamer#0:0

Q3:

I want to start both the Record and Play functions of the Replay module at the 
same time. Is this possible?

Is there any example code available that shows how to transfer DRAM data to the 
computer?

Thank you!

_______________________________________________
USRP-users mailing list -- 
usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com>
To unsubscribe send an email to 
usrp-users-le...@lists.ettus.com<mailto:usrp-users-le...@lists.ettus.com>


Barkhausen Institut
www.barkhauseninstitut.org


Barkhausen Institut gGmbH | Sitz: Schweriner Str. 1, 01067 Dresden, Germany | 
Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. 
Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der 
Gesellschafterdelegation: Jan Gerken

Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: 
https://barkhauseninstitut.org/data-privacy

This email and any attachments are intended only for the person to whom this 
email is addressed and may contain confidential and/or privileged information. 
If you received this email in error, please do not disclose the contents to 
anyone, but notify the sender by return email and delete this email (and any 
attachments) from your system. Information on data protection and processing of 
your personal information: https://barkhauseninstitut.org/data-privacy

_______________________________________________
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