AD916x-FMC HDL project
Overview
The AD9161 /AD9162 /AD9163 /AD9164 is a high performance, 16-bit (AD9164, AD9163, AD9162)/11-bit (AD9161) resolution digital-to-analog converter (DAC) that supports data rates to 6 GSPS.
The DAC core is based on a quad-switch architecture coupled with a 2x interpolator filter that enables an effective DAC update rate of up to 12 GSPS in some modes. The high dynamic range and bandwidth makes this DAC ideally suited for the most demanding high speed radio frequency (RF) DAC applications.
The data interface is programmable in terms of lane speed and number of lanes (up to 8 JESD204 Interface Framework serializer/deserializer SERDES lanes) to enable application flexibility. A serial peripheral interface (SPI) configures the DACs and monitors the status of all registers.
Supported boards
Supported devices
Supported carriers
ZCU102 on HPC0
Block design
Block diagram
The data path and clock domains are depicted in the below diagram:
Block name |
IP name |
Documentation |
Additional info |
---|---|---|---|
AXI_ADXCVR |
— |
||
AXI_DMAC |
— |
||
TX JESD LINK |
axi_ad916x_jesd |
Instantiaded by |
|
TX JESD TPL |
axi_ad916x_core |
Instantiated by |
|
UTIL_ADXCVR for AMD |
— |
||
UTIL_DACFIFO |
— |
— |
|
UTIL_UPACK |
— |
Configuration modes
The configuration parameters that can be set along with the make command are:
ADI_DAC_DEVICE: specifies the DAC device
AD9161 (default)
AD9162
AD9163
AD9164
ADI_DAC_MODE: specifies the JESD operation mode
08 (default)
can vary from 01 to 08 depending on the selected device (ADI_DAC_DEVICE)
ADI_LANE_RATE: specifies the lane rate
12.5 GHz(default)
4.16 GHz
If the desired configuration is not listed between the supported modes, the user
can configure the parameters manually, trough make
(according to the
datasheet of each chip, Table “JESD204B Parameters for Interpolation Rate
and Number of Lanes”):
M: number of converters per link (set by the ADI_DAC_MODE (default))
L: number of lanes per link (set by the ADI_DAC_MODE (default))
S: number of samples per frame (set by the ADI_DAC_MODE (default))
F: number of octets per frame (set by the ADI_DAC_MODE (default))
HD: high-density (set by the ADI_DAC_MODE (default))
N: converter resolution (set by the ADI_DAC_MODE (default))
NP: number of bits per sample (set by the ADI_DAC_MODE (default))
Clock scheme
The EVAL-AD916x can be tested using the on-board clock generator or using and external clock source. The jumper positions are described below:
Jumper/Solder link |
Position |
Description |
---|---|---|
J61 |
Mounted |
Use the onboard clk. generator |
J61 |
Unmounted |
Use external clk. source |
For example, building the project for AD9163 in MODE 2 (2 lanes with 12.5 GHz lane rate) (see projects/ad916x_fmc/common/config.tcl for more details) requires an external clock source and jumper J61 removed.
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 |
ZynqMP |
---|---|
dac_jesd204_transport |
0x84A0_4000 |
dac_jesd204_xcvr |
0x84A6_0000 |
dac_jesd204_link |
0x84A9_0000 |
dac_dma |
0x9C42_0000 |
SPI connections
SPI type |
SPI manager instance |
SPI subordinate |
CS |
---|---|---|---|
PS |
SPI 0 |
AD9508 |
1 |
PS |
SPI 0 |
ADF4355 |
1 |
PS |
SPI 0 |
AD916x |
1 |
GPIOs
The Software GPIO number is calculated as follows:
ZCU102: the offset is 78 (PS8)
GPIO signal |
Direction |
HDL GPIO EMIO |
Software GPIO |
---|---|---|---|
(from FPGA view) |
ZCU102 |
||
fmc_hmc849vctrl |
INOUT |
23 |
100 |
fmc_txen_0 |
INOUT |
22 |
99 |
Interrupts
Below are the Programmable Logic interrupts used in this project.
Instance name |
HDL |
Linux ZynqMP |
Actual ZynqMP |
---|---|---|---|
dac_dma |
10 |
106 |
138 |
dac_jesd204_link |
12 |
108 |
140 |
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, and then build the project as follows:
Linux/Cygwin/WSL
~$
cd hdl/projects/ad916x_fmc/zcu102
~/hdl/projects/ad916x_fmc/zcu102$
make
AD916x supports various modes for JESD. By default, when running the above command, it will build the project for AD9162 in Mode 8, which has the following JESD parameters: L=8, M=2, S=2, F=1, N=16, NP=16 at a lane rate of 12.5 GHz. Other configurations (or for other devices), can be specified by using the ADI_LANE_RATE, ADI_DAC_DEVICE, ADI_DAC_MODE parameters:
~$
cd hdl/projects/ad916x_fmc/zcu102
~/hdl/projects/ad916x_fmc/zcu102$
make ADI_LANE_RATE=12.5 ADI_DAC_DEVICE=AD9163 ADI_DAC_MODE=02
You can also overwrite some JESD parameters if there is a need for a custom mode. The following commands should be run (check the datasheet of each chip, Table “JESD204B Parameters for Interpolation Rate and Number of Lanes” for more context):
~$
cd hdl/projects/ad916x_fmc/zcu102
~/hdl/projects/ad916x_fmc/zcu102$
make ADI_DAC_DEVICE=AD9164 ADI_LANE_RATE=12.5 M=1 L=8 S=4 NP=16
or:
~$
cd hdl/projects/ad916x_fmc/zcu102
~/hdl/projects/ad916x_fmc/zcu102$
make ADI_DAC_DEVICE=AD9164 ADI_LANE_RATE=12.5 ADI_DAC_MODE=08 M=1 S=4
For other supported modes, check projects/ad916x_fmc/common/config.tcl.
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.