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> 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
> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>
_______________________________________________
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