Post Go back to editing

Using PL Ethernet on AX7350B + ADRV9002 for high-rate IQ streaming with srsRAN

Category: Hardware
Product Number: ADRV9002

Hi everyone,

I am working with an Alinx AX7350B + ADRV9002 platform.

I have successfully ported the zc706-adrv9002 design and integrated it with my srsRAN LTE project. At the moment, the IQ data is transferred between the host and the board through the PS Ethernet interface.

With this setup, I can operate successfully at:

  • 1.4 MHz
  • 3 MHz
  • 5 MHz

and I can observe the LTE spectrum correctly.

However, when I try:

  • 10 MHz SISO, or
  • 5 MHz MIMO 2x2

I hit a clear limitation on the Zynq PS side. The Linux system reports errors such as:

sched: RT throttling activated

From my debugging, it seems the main issue is CPU load / packet processing overhead on the PS side, rather than the RF chain itself.

So now I would like to move to a different architecture and use PL Ethernet so that the sample path can avoid the PS as much as possible.

My target idea is something like:

Host -> Ethernet -> PL packet processing / DMA -> ADRV9002
and similarly for the RX path.

My questions are:

  1. Is there any existing ADI / Vivado reference design or example that is close to this type of architecture, especially for ADRV9002 or similar ADI transceivers?
  2. For a PL-Ethernet-based approach, what is the recommended data path?
    • Should the Ethernet packets be parsed in PL and the IQ payload sent directly toward the RF DMA path?
    • Or is it better to go first through DDR using AXI DMA and then stream to the ADRV9002?
  3. Has anyone tried combining PL Ethernet with an ADI transceiver HDL design to bypass the PS bottleneck for high-rate host streaming?

Any advice or pointers would be very appreciated.

Thanks.

Thread Notes

  • We don't have an example for this... We have examples on designs where there is no zynq and a Microblaze soft core is used like vc707.
    the suggestion is to filter/process the data in FPGA before sending it further.

    5 MHz MIMO => 5 M * 2 * 16  => 160 Mbps this should work.
    Is your ethernet connection 1 Gbps on both PC and FPGA?
    Are you using the PS for other processing?

    From my experience the PL side ethernet's throughput is a bit lower compared to the zynq based systems.

    Andrei

  • Hi Andrei,

    Thank you for the reply.

    Yes, the Ethernet link is 1 Gbps on both the PC and the FPGA side, and I am not intentionally using the PS for heavy additional processing beyond the current software/networking path.

    I think the main difficulty may be the actual sample transport rate. For my setup, for LTE 5 MHz the sample rate is 7.68 MSPS. So for 2x2 MIMO with 16-bit I and 16-bit Q, the raw payload in one direction is approximately:

    7.68e6 × 2 channels × 32 bits = 491.52 Mbps

    and for full duplex TX/RX this is close to 983 Mbps before UDP/IP/Ethernet overhead.

    Similarly, 10 MHz SISO gives a very similar transport requirement.

    So I suspect the issue is not the RF chain itself, but the transport path through PS Ethernet + Linux/userspace.

    When you suggest filtering/processing in FPGA before sending data further, do you mean that the practical direction would be to avoid transporting raw IQ over 1GbE and instead do some decimation/selection/packet handling in PL first?

    Also, if PL Ethernet throughput is a bit lower in practice than Zynq PS Ethernet, then would you still recommend a PL-based packet parser/data path only if it avoids the PS software bottleneck, rather than as a pure throughput upgrade?

    Thanks again,

  • do some decimation/selection/packet handling in PL first?

    Yes, if possible.

    Also, if PL Ethernet throughput is a bit lower in practice than Zynq PS Ethernet, then would you still recommend a PL-based packet parser/data path only if it avoids the PS software bottleneck, rather than as a pure throughput upgrade?

    Yes.

    You could test the ethernet throughput with tools like "iperf". A simple reference design from AMD help you test the throughput. You need a separate license for it.

    Andrei

  • So, my understanding is that there is currently no ADI/Vivado reference design that is close to the exact architecture I am looking for, especially for ADRV9002 with high-rate host sample transport where the goal is to avoid the PS software bottleneck.

    What I am trying to investigate is a path more like:

    Host -> Ethernet -> PL packet handling / buffering -> RF datapath

    rather than the usual PS Ethernet + Linux/userspace transport approach.

    So my main question now is:

    Has anyone here implemented or tested a similar architecture with ADRV9002, or another ADI transceiver, especially together with srsRAN at higher bandwidths such as 10 MHz SISO or 5 MHz 2x2 MIMO?

    In particular, I would be very interested to know whether anyone has used:

    • PL Ethernet or SFP with packet parsing or buffering in FPGA
    • a direct PL data path toward the transceiver datapath
    • or any similar approach to reduce PS/Linux transport overhead when running srsRAN

    At the moment, it seems there is no ready reference design for exactly this use case, so any pointers, related examples, or practical experience would be very helpful.

  • Hi  ! Sorry for the late reply, we only caught your response now. We'll be back ASAP with an answer. Thanks for understading! 

  • Hello  ,

    As we do not have a comparable example, we are unfortunately unable to provide detailed guidance for this custom architecture.
    Kind regards,
    Stanca