Post Go back to editing

Test JESD204B link between ADRV9026 and FPGA (both ICs on a custom board): BER test via PRBS7 and Eye scan

Category: Software
Product Number: ADRV9026
Software Version: Windows 11 (64-bit); Vivado/Vitis 2022.2; Petalinux 2022.2; ADRV9026 TRx Evaluation Software (GainTables: 6.4.0.1, Api: 6.4.0.14, Firmware: 6.4.0.6, Gui: 6.4.0.17)

Dear all,

I would like to carry out a couple of tests over a JESD204B link using the following two setups:

1. Determine the BER by sending PRBS7 from ADRV9026’s de-framer 0 to FPGA’s framer and vice versa, as well as evaluate the eye scan of both Rx. link and Tx. link.

BER test

2. Determine the BER by sending PRBS7 from FPGA’s de-framer to its framer by using the ADRV9026 in digital loopback.

BER Loop-back test

Although I am not very knowledgeable in pyadi-iio, I was wondering if I could use it to perform these tests, despite the fact that no ADI EVB is involved. I would appreciate any suggestion.

Background (for further understanding):

First of all, I integrated the ADI-HDL reference design for ADRV9026 in my 2022.2 Vivado project, except for the zynqmp IP because my FPGA was different from the one present in the ref. dsn. (AMD/Xilinx ZynqTm UltraScale+Tm XCZU7EV-1FBVB900E). In addition, based on the ADI-HDL IP cores' documentation, I modified not only some of the IPs’ parameters, but also the connections involving the device and link clock such that my HDL design suited the desired ADRV9026’s profile:

ADRV9026's Profile JESD204B profile: Rx. (Framer 0)JESD204B profile: Tx. (Deframer 0) Clock Configuration

Upon successfully generating the bit stream, I built the 2022.2 Petalinux project by integrating my custom configuration (rootfs, kernel, etc.) and adding the ADI layers for the aforementioned ref. dsn. (meta-adi but from 2022_R2 branch).

It is worth mentioning that I integrated the profile files, which I exported from the ADRV9026’s TRx. Eval. Soft, into the kernel as suggested in this guide (wiki.analog.com/.../adrv9025):

  • ActiveUseCase.profile
  • ActiveUtilInit.profile
  • ADRV9025_FW.bin
  • ADRV9025_DPDCORE_FW.bin
  • stream_image_6E3E00EFB74FE7D465FA88A171B81B8F.bin
  • ADRV9025_RxGainTable.csv
  • ADRV9025_TxAttenTable.csv

Moreover, I added to .../meta-adi/.../recipe-bsp/device-tree/files the following files and modified .../meta-adi/.../recipe-bsp/device-tree/device-tree.bbappend accordingly.

  • pl-delete-nodes-custom_dt.dtsi which was basically pl-delete-nodes-zynqmp-zcu102-rev10-adrv9025.dtsi
  • My custom device tree (custom_dt.dts) which integrated its own nodes and zynqmp-zcu102-rev10-adrv9025.dts

Afterwards, although I run into an error regarding do_fetch:

  • "linux-xlnx-5.15.36-adi_master+gitAUTOINC+machine-r0 do_fetch: Fetcher failure for URL: 'git://github.com/analogdevicesinc/linux.git;protocol=https;branch=2022_R2'. Unable to fetch URL from any source."

, the Petalinux built was successful after running petalinux-build once again.

Finally, the JESD204B link was considered successfully established by assessing its status (jesd_status):

JESD204B status: Rx. JESD204B status: Tx.

Sources:

  • HDL reference design for ADRV9026: github.com/.../zcu102
  • Meta-adi (2022_R2 branch): github.com/.../README.md


I added a question regarding the evaluation of the link 's eye scan in both directions (Rx, Tx).
[edited by: JNPH at 9:25 AM (GMT -4) on 9 Aug 2024]