ADMX6020M HDL Project

Overview

The ADMX6020M is a dual-channel HMCAD15xx ADC data acquisition system targeting Xilinx Zynq-7000. It supports synchronous capture from both ADCs in all supported resolutions (8/12/14-bit) for up to 64KB of data per channel.

The design uses the TDD IP to generate a sync signal that triggers simultaneous capture start on both ADC channels, ensuring sample-aligned data acquisition.

Key features:

  • 1 GSPS sampling rate (1 ns time resolution) / 8-bit vertical resolution

  • 2 differential input channels

  • 50-ohm input impedance

  • 0°C to 85°C(ambient)

  • Configurable input range (0.5V to 1.5V default, configurable to -4V min to +4V max)

  • Built-in non-volatile storage

  • Programmable trigger functionality

  • SPI, I2C, USB interfaces for control and data offloading

Supported boards

  • ADMX6020M

Supported devices

Block design

The design implements a dual ADC capture system with BRAM-based data offload for synchronized acquisition. Each ADC channel has its own data path consisting of an LVDS interface, BRAM buffer, and DMA engine.

Block diagram

The data path and clock domains are depicted in the below diagram:

ADMX6020M block diagram

Clock scheme

ADMX6020M clock scheme

The design uses the following clock domains(all the rates are described at the highest sampling rate of 1 GSPS):

Clock

Frequency

Description

FCLK_CLK0

100 MHz

CPU clock, AXI register access

FCLK_CLK1

200 MHz

IODELAY reference clock

FCLK_CLK2

150 MHz

DMA clock DATA offload output

ref_clk_a1/a2

500 MHz

ADC LVDS input clock (from ADF4355)

adc_clk/adc_clk_1

125 MHz

Divided ADC clock (ref_clk/4)

The ADF4355 PLL provides the 1GHz reference clock to both ADCs which then is sent to the FPGA as the 500MHz reference clock(ref_clk_a1/a2). The LVDS interface deserializes the DDR data and divides the clock by 4 to produce the 125 MHz sample clock.

Configuration modes

The design supports the following ADC operating modes controlled via SPI:

  • 8-bit mode: 1 GSPS, single channel

  • 12-bit mode: 500 MSPS, single channel (HMCAD1511)

  • dual 8-bit mode (14-bit resolution): 125 MSPS, 4 channels interleaved (HMCAD1520)

The axi_hmcad15xx IP parameters:

Parameter

Description

NUM_CHANNELS

Number of ADC channels (1-4)

IODELAY_CTRL

Set to 1 for one instance only (shared IDELAYCTRL)

CPU/Memory interconnects addresses

The addresses are dependent on the architecture of the FPGA, having an offset added to the base address from HDL (see more at CPU/Memory interconnects addresses).

Instance

Zynq

axi_iic_main

0x4160_0000

axi_hmcad15xx_a1_adc

0x44A0_0000

hmcad15xx_a1_dma

0x44A3_0000

axi_hmcad15xx_a2_adc

0x44A6_0000

hmcad15xx_a2_dma

0x44A9_0000

axi_tdd_sync

0x44AC_0000

adc1_data_offload

0x44B0_0000

adc2_data_offload

0x44B1_0000

I2C connections

I2C type

I2C manager instance

Alias

Address

I2C subordinate

PL

axi_iic_main

0x34

ADP5589 (GPIO expander)

PL

axi_iic_main

0x0C

AD5696 (DAC)

PL

axi_iic_main

0x5F

MAX31827 (temperature sensor)

SPI connections

SPI type

SPI manager instance

SPI subordinate

CS

PS

SPI 0

HMCAD15xx (ADC1)

0

PS

SPI 0

HMCAD15xx (ADC2)

1

PS

SPI 0

ADF4355 (PLL)

2

GPIOs

GPIO signal

Direction

HDL GPIO EMIO

Software GPIO

(from FPGA view)

Zynq-7000

ad9696_ldac

INOUT

0

54

Interrupts

Below are the Programmable Logic interrupts used in this project.

Instance name

HDL

Linux Zynq

Actual Zynq

axi_iic_main

15

59

91

hmcad15xx_a2_dma

13

57

89

hmcad15xx_a1_dma

12

56

88

Building the HDL project

The design is built upon ADI’s generic HDL reference design framework. ADI distributes the bit/elf files of these projects as part of the ADI Kuiper Linux. If you want to build the sources, ADI makes them available on the HDL repository. To get the source you must clone the HDL repository.

Go to the hdl/projects/admx6020m location and run the make command.

Linux/Cygwin/WSL

~$
cd hdl/projects/admx6020m
~/hdl/projects/admx6020m$
make

A more comprehensive build guide can be found in the Build an HDL project user guide.

Resources

More information

Support

Analog Devices, Inc. will provide limited online support for anyone using the reference design with ADI components via the EngineerZone FPGA reference designs forum.

For questions regarding the ADI Linux device drivers, device trees, etc. from our Linux GitHub repository, the team will offer support on the EngineerZone Linux software drivers forum.

For questions concerning the ADI No-OS drivers, from our No-OS GitHub repository, the team will offer support on the EngineerZone microcontroller No-OS drivers forum.

It should be noted, that the older the tools’ versions and release branches are, the lower the chances to receive support from ADI engineers.