Skip to content

Commit 471bbbf

Browse files
cristianmihaipopaSRaus
authored andcommitted
projects: Port AD9265-FMC to ZedBoard & doc.
AD9265 has a new carrier, Zedboard. All the details regarding the HDL project for AD9265 are presented in the new Github documentation. (cherry picked from commit 2a54bab)
1 parent f7711d6 commit 471bbbf

File tree

8 files changed

+2168
-0
lines changed

8 files changed

+2168
-0
lines changed

docs/projects/ad9265_fmc/ad9265_fmc_block_diagram.svg

Lines changed: 1612 additions & 0 deletions
Loading

docs/projects/ad9265_fmc/index.rst

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
.. _ad9265_fmc:
2+
3+
AD9265-FMC HDL project
4+
================================================================================
5+
6+
Overview
7+
-------------------------------------------------------------------------------
8+
9+
The :adi:`AD9265` is a 16-bit, 125 MSPS analog-to-digital converter (ADC). The
10+
:adi:`AD9265` is designed to support communications applications where high
11+
performance combined with low cost, small size, and versatility is desired. The
12+
ADC core features a multistage, differential pipelined architecture with
13+
integrated output error correction logic to provide 16-bit accuracy at 125 MSPS
14+
data rates and guarantees no missing codes over the full operating temperature
15+
range. The ADC output data format is either parallel 1.8 V CMOS or LVDS (DDR).
16+
A data output clock is provided to ensure proper latch timing with receiving
17+
logic. The board also provides other options to drive the clock and analog
18+
inputs of the ADC.
19+
20+
Supported boards
21+
-------------------------------------------------------------------------------
22+
23+
- :adi:`EVAL-AD9265 <EVAL-AD9265>`
24+
25+
Supported devices
26+
-------------------------------------------------------------------------------
27+
28+
- :adi:`AD9265`
29+
30+
Supported carriers
31+
-------------------------------------------------------------------------------
32+
33+
.. list-table::
34+
:widths: 35 35 30
35+
:header-rows: 1
36+
37+
* - Evaluation board
38+
- Carrier
39+
- FMC slot
40+
* - :adi:`EVAL-AD9265-FMC-500EBZ <EVAL-AD9265>`
41+
- :xilinx:`ZC706`
42+
- FMC LPC
43+
* -
44+
- :xilinx:`ZedBoard <products/boards-and-kits/1-8dyf-11.html>`
45+
- FMC LPC
46+
47+
Block design
48+
-------------------------------------------------------------------------------
49+
50+
Block diagram
51+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52+
53+
.. image:: ad9265_fmc_block_diagram.svg
54+
:width: 800
55+
:align: center
56+
:alt: AD9265/ZedBoard block diagram
57+
58+
Clock scheme
59+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60+
61+
There are 3 ways to configure the clock source for :adi:`AD9265`:
62+
63+
- External passive clock (default)
64+
- Optional active clock path using the :adi:`AD9517`
65+
- Optional oscillator
66+
67+
For more details, check :adi:`AD9265` schematic.
68+
69+
CPU/Memory interconnects addresses
70+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71+
72+
The addresses are dependent on the architecture of the FPGA, having an offset
73+
added to the base address from HDL (see more at :ref:`architecture`).
74+
75+
Check-out the table below to find out the conditions.
76+
77+
==================== ===============
78+
Instance Zynq/Microblaze
79+
==================== ===============
80+
axi_ad9265 0x44A00000
81+
axi_ad9265_dma 0x44A30000
82+
==================== ===============
83+
84+
SPI connections
85+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86+
87+
.. list-table::
88+
:widths: 25 25 25 25
89+
:header-rows: 1
90+
91+
* - SPI type
92+
- SPI manager instance
93+
- SPI subordinate
94+
- CS
95+
* - PS
96+
- SPI 0
97+
- AD9517
98+
- 1
99+
100+
Interrupts
101+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102+
103+
Below are the Programmable Logic interrupts used in this project.
104+
105+
.. list-table::
106+
:widths: 30 10 15 15
107+
:header-rows: 1
108+
109+
* - Instance name
110+
- HDL
111+
- Linux Zynq
112+
- Actual Zynq
113+
* - axi_ad9265_dma
114+
- 13
115+
- 57
116+
- 89
117+
118+
Building the HDL project
119+
-------------------------------------------------------------------------------
120+
121+
The design is built upon ADI's generic HDL reference design framework.
122+
ADI distributes the bit/elf files of these projects as part of the
123+
:dokuwiki:`ADI Kuiper Linux <resources/tools-software/linux-software/kuiper-linux>`.
124+
If you want to build the sources, ADI makes them available on the
125+
:git-hdl:`HDL repository </>`. To get the source you must
126+
`clone <https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository>`__
127+
the HDL repository.
128+
129+
Then go to the project location (**projects/ad9265_fmc/carrier**) and run the
130+
make command by typing in your command prompt(this example :xilinx:`ZC706`):
131+
132+
**Linux/Cygwin/WSL**
133+
134+
.. code-block::
135+
136+
user@analog:~$ cd hdl/projects/ad9265_fmc/zc706
137+
user@analog:~/hdl/projects/ad9265_fmc/zc706$ make
138+
139+
A more comprehensive build guide can be found in the :ref:`build_hdl` user guide.
140+
141+
Resources
142+
-------------------------------------------------------------------------------
143+
144+
Systems related
145+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146+
147+
Here you can find the quick start guides available for these evaluation boards:
148+
149+
.. list-table::
150+
:widths: 20 10
151+
:header-rows: 1
152+
153+
* - Evaluation board
154+
- Zynq-7000
155+
* - AD9265-FMC
156+
- :dokuwiki:`ZC706 <resources/fpga/xilinx/fmc/ad9265>`
157+
158+
Hardware related
159+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
160+
161+
- Product datasheets: :adi:`AD9265`
162+
- :dokuwiki:`[Wiki] Evaluating AD9265, user guide <resources/eval/ad9265-fmc-125ebz>`
163+
164+
HDL related
165+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
166+
167+
- :git-hdl:`AD9265-FMC HDL project source code <projects/ad9265_fmc>`
168+
169+
.. list-table::
170+
:widths: 30 35 35
171+
:header-rows: 1
172+
173+
* - IP name
174+
- Source code link
175+
- Documentation link
176+
* - AXI_AD9265
177+
- :git-hdl:`library/axi_ad9265 <library/axi_ad9265>`
178+
- :ref:`here <axi_ad9265>`
179+
* - AXI_DMAC
180+
- :git-hdl:`library/axi_dmac <library/axi_dmac>`
181+
- :ref:`here <axi_dmac>`
182+
* - AXI_CLKGEN
183+
- :git-hdl:`library/axi_clkgen <library/axi_clkgen>`
184+
- :ref:`here <axi_clkgen>`
185+
* - AXI_HDMI_TX
186+
- :git-hdl:`library/axi_hdmi_tx <library/axi_hdmi_tx>`
187+
- :ref:`here <axi_hdmi_tx>`
188+
* - AXI_SPDIF_TX
189+
- :git-hdl:`library/axi_spdif_tx <library/axi_spdif_tx>`
190+
- ---
191+
* - AXI_I2S_ADI
192+
- :git-hdl:`library/axi_sysid <library/axi_i2s_adi>`
193+
- ---
194+
* - AXI_SYSID
195+
- :git-hdl:`library/axi_sysid <library/axi_sysid>`
196+
- :ref:`here <axi_sysid>`
197+
* - SYSID_ROM
198+
- :git-hdl:`library/sysid_rom <library/sysid_rom>`
199+
- :ref:`here <axi_sysid>`
200+
* - UTIL_I2C_MIXER
201+
- :git-hdl:`library/util_i2c_mixer <library/util_i2c_mixer>`
202+
- :ref:`here <spi_engine offload>`
203+
204+
Software related
205+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206+
207+
- :git-linux:`Linux device tree zynq-zc706-adv7511-ad9265-fmc-125ebz.dts <arch/arm/boot/dts/zynq-zc706-adv7511-ad9265-fmc-125ebz.dts>`
208+
- :git-linux:`Linux driver ad9467.c <drivers/iio/adc/ad9467.c>`
209+
(used for AD9265-FMC as well)
210+
211+
.. include:: ../common/more_information.rst
212+
213+
.. include:: ../common/support.rst

docs/projects/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Contents
2929
AD7616-SDZ <ad7616_sdz/index>
3030
AD7768-EVB <ad7768evb/index>
3131
AD9081/AD9082/AD9986/AD9988 <ad9081_fmca_ebz/index>
32+
AD9265-FMC <ad9265_fmc/index>
3233
AD9434-FMC <ad9434_fmc/index>
3334
AD9783-EBZ <ad9783_ebz/index>
3435
ADAQ7980-SDZ <adaq7980_sdz/index>

projects/ad9265_fmc/zed/Makefile

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
####################################################################################
2+
## Copyright (c) 2018 - 2024 Analog Devices, Inc.
3+
### SPDX short identifier: BSD-1-Clause
4+
## Auto-generated, do not modify!
5+
####################################################################################
6+
7+
PROJECT_NAME := ad9265_fmc_zed
8+
9+
M_DEPS += ../common/ad9265_spi.v
10+
M_DEPS += ../common/ad9265_bd.tcl
11+
M_DEPS += ../../scripts/adi_pd.tcl
12+
M_DEPS += ../../common/zed/zed_system_constr.xdc
13+
M_DEPS += ../../common/zed/zed_system_bd.tcl
14+
M_DEPS += ../../../library/common/ad_iobuf.v
15+
16+
LIB_DEPS += axi_ad9265
17+
LIB_DEPS += axi_clkgen
18+
LIB_DEPS += axi_dmac
19+
LIB_DEPS += axi_hdmi_tx
20+
LIB_DEPS += axi_i2s_adi
21+
LIB_DEPS += axi_spdif_tx
22+
LIB_DEPS += axi_sysid
23+
LIB_DEPS += sysid_rom
24+
LIB_DEPS += util_i2c_mixer
25+
26+
include ../../scripts/project-xilinx.mk
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
###############################################################################
2+
## Copyright (C) 2023-2024 Analog Devices, Inc. All rights reserved.
3+
### SPDX short identifier: ADIBSD
4+
###############################################################################
5+
6+
source $ad_hdl_dir/projects/common/zed/zed_system_bd.tcl
7+
source ../common/ad9265_bd.tcl
8+
source $ad_hdl_dir/projects/scripts/adi_pd.tcl
9+
10+
set mem_init_sys_path [get_env_param ADI_PROJECT_DIR ""]mem_init_sys.txt;
11+
12+
#system ID
13+
ad_ip_parameter axi_sysid_0 CONFIG.ROM_ADDR_BITS 9
14+
ad_ip_parameter rom_sys_0 CONFIG.PATH_TO_FILE "[pwd]/$mem_init_sys_path"
15+
ad_ip_parameter rom_sys_0 CONFIG.ROM_ADDR_BITS 9
16+
17+
sysid_gen_sys_init_file
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
###############################################################################
2+
## Copyright (C) 2014-2024 Analog Devices, Inc. All rights reserved.
3+
### SPDX short identifier: ADIBSD
4+
###############################################################################
5+
6+
# ad9265
7+
8+
set_property -dict {PACKAGE_PIN L18 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_clk_in_p] ; ## H4 FMC_CLK0_M2C_P IO_L12P_T1_MRCC_34
9+
set_property -dict {PACKAGE_PIN L19 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_clk_in_n] ; ## H5 FMC_CLK0_M2C_N IO_L12N_T1_MRCC_34
10+
11+
set_property -dict {PACKAGE_PIN R20 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[0]] ; ## D14 FMC_LA09_P IO_L17P_T2_34
12+
set_property -dict {PACKAGE_PIN R21 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[0]] ; ## D15 FMC_LA09_N IO_L17N_T2_34
13+
set_property -dict {PACKAGE_PIN L21 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[1]] ; ## C10 FMC_LA06_P IO_L10P_T1_34
14+
set_property -dict {PACKAGE_PIN L22 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[1]] ; ## C11 FMC_LA06_N IO_L10N_T1_34
15+
set_property -dict {PACKAGE_PIN T16 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[2]] ; ## H13 FMC_LA07_P IO_L21P_T3_DQS_34
16+
set_property -dict {PACKAGE_PIN T17 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[2]] ; ## H14 FMC_LA07_N IO_L21N_T3_DQS_34
17+
set_property -dict {PACKAGE_PIN J21 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[3]] ; ## G12 FMC_LA08_P IO_L8P_T1_34
18+
set_property -dict {PACKAGE_PIN J22 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[3]] ; ## G13 FMC_LA08_N IO_L8N_T1_34
19+
set_property -dict {PACKAGE_PIN M21 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[4]] ; ## H10 FMC_LA04_P IO_L15P_T2_DQS_34
20+
set_property -dict {PACKAGE_PIN M22 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[4]] ; ## H11 FMC_LA04_N IO_L15N_T2_DQS_34
21+
set_property -dict {PACKAGE_PIN J18 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[5]] ; ## D11 FMC_LA05_P IO_L7P_T1_34
22+
set_property -dict {PACKAGE_PIN K18 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[5]] ; ## D12 FMC_LA05_N IO_L7N_T1_34
23+
set_property -dict {PACKAGE_PIN P17 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[6]] ; ## H7 FMC_LA02_P IO_L20P_T3_34
24+
set_property -dict {PACKAGE_PIN P18 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[6]] ; ## H8 FMC_LA02_N IO_L20N_T3_34
25+
set_property -dict {PACKAGE_PIN N22 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_p[7]] ; ## G9 FMC_LA03_P IO_L16P_T2_34
26+
set_property -dict {PACKAGE_PIN P22 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_in_n[7]] ; ## G10 FMC_LA03_N IO_L16N_T2_34
27+
set_property -dict {PACKAGE_PIN N19 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_or_p] ; ## D8 FMC_LA01_CC_P IO_L14P_T2_SRCC_34
28+
set_property -dict {PACKAGE_PIN N20 IOSTANDARD LVDS_25 DIFF_TERM TRUE} [get_ports adc_data_or_n] ; ## D9 FMC_LA01_CC_N IO_L14N_T2_SRCC_34
29+
30+
# spi
31+
32+
set_property -dict {PACKAGE_PIN B21 IOSTANDARD LVCMOS25} [get_ports spi_csn_clk] ; ## G36 FMC_LA33_P IO_L18P_T2_AD13P_35
33+
set_property -dict {PACKAGE_PIN B22 IOSTANDARD LVCMOS25} [get_ports spi_csn_adc] ; ## G37 FMC_LA33_N IO_L18N_T2_AD13N_35
34+
set_property -dict {PACKAGE_PIN A21 IOSTANDARD LVCMOS25} [get_ports spi_sdio] ; ## H37 FMC_LA32_P IO_L15P_T2_DQS_AD12P_35
35+
set_property -dict {PACKAGE_PIN A22 IOSTANDARD LVCMOS25} [get_ports spi_clk] ; ## H38 FMC_LA32_N IO_L15N_T2_DQS_AD12N_35
36+
37+
# clocks
38+
39+
create_clock -name adc_clk -period 8.000 [get_ports adc_clk_in_p] ;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
###############################################################################
2+
## Copyright (C) 2023-2024 Analog Devices, Inc. All rights reserved.
3+
### SPDX short identifier: ADIBSD
4+
###############################################################################
5+
6+
source ../../../scripts/adi_env.tcl
7+
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
8+
source $ad_hdl_dir/projects/scripts/adi_board.tcl
9+
10+
adi_project ad9265_fmc_zed
11+
adi_project_files ad9265_fmc_zed [list \
12+
"../common/ad9265_spi.v" \
13+
"system_top.v" \
14+
"system_constr.xdc" \
15+
"$ad_hdl_dir/library/common/ad_iobuf.v" \
16+
"$ad_hdl_dir/projects/common/zed/zed_system_constr.xdc"]
17+
18+
adi_project_run ad9265_fmc_zed

0 commit comments

Comments
 (0)