Longest Possible Waveform File Transmit Duration With the Ettus USRP X440

Updated Aug 1, 2026

Reported In

Hardware

  • Ettus USRP X440

Issue Details

I am working with the Ettus USRP X440 radio. There are multiple in my laboratory, and I noticed that one of these radios had an Field Programmable Gate Array (FPGA) image that has an RFNoC Reply Block in it. I want to understand how to configure my radio to be able to use such a Reply Block . Additionally, I also need to understand what is the associated memory depth for the Replay Block if I were to assign a replay output to each transmit channel in my radio? This is to determine how long of a signal in time I can store and replay.

Solution

The RFNoC Reply Block relies on the DRAM of the radio. The X440 has 8 GB total of DRAM split into two 4 GB DRR4 banks. However, the DRAM is part of the FPGA silicon. Therefore, its configuration/access depends on the FPGA image you load to the radio. There are two shipping images that enable the Reply Block functionality, the X4_400 and the X4_1600. Additionally, the data type of the waveform file plays a key role in how long of a waveform can be stored in memory. For example, a common data type is the SC16, where each sample required 4 bytes to represent the 16-bit I and Q sub-samples. If one's waveform file uses a sample format other than SC16, then the playout time scales accordingly based on bytes per complex sample.

 

For the X4_400 image:

  • Total memory on the radio: 8 GB.
  • Replay ports: 8 total.
  • Effective memory per replay port: 1 GB.

 

Therefore, if one assigns a replay output to each TX channel using the X4_400 FPGA image, the usable depth should be 1 GB per channel. For SC16, that works out to 1,073,741,824 bytes / 4 bytes per complex sample = 268,435,456 complex samples per channel. Playout time per channel is then time (s) = 268,435,456 / sample_rate. Therefore, depending the radio's sample_rate, that's the duration one can achieve:

  • 50 MS/s → ~5.37 s.
  • 125 MS/s → ~2.15 s.
  • 150 MS/s → ~1.79 s.
  • 200 MS/s → ~1.34 s.

 

Instead, the X4_1600 image:

  • Total memory on the radio: 8 GB.
  • Replay ports: only 2 replay ports total can be enabled per daughterboard (first channel of each daughterboard).
  • Effective memory per replay port: 4 GB.

 

Hence, with this FPGA image the usable depth should be 4 GB per channel. For SC16, that works out to 1,073,741,824 complex samples per port. Playout time per channel is then time (s) = 1,073,741,824 / sample_rate. At 200 MS/s, that is ~5.37 s per port.

Additional Information

It is worth keeping in mind from that the X4_400 and X4_1600 FPGA images that enable reply blocks do not include the DUC/DDC blocks.