Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

projects/adrv9026: Add reference design for ADRV9026+ZCU102 #1256

Merged
merged 1 commit into from
Feb 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions projects/adrv9026/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
###############################################################################
## Copyright (C) 2018-2024 Analog Devices, Inc.
### SPDX short identifier: BSD-1-Clause
## Auto-generated, do not modify!
###############################################################################

include ../scripts/project-toplevel.mk
232 changes: 232 additions & 0 deletions projects/adrv9026/common/adrv9026_bd.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
###############################################################################
## Copyright (C) 2023-2024 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

# TX parameters
set TX_NUM_OF_LANES $ad_project_params(TX_JESD_L) ; # L
set TX_NUM_OF_CONVERTERS $ad_project_params(TX_JESD_M) ; # M
set TX_SAMPLES_PER_FRAME $ad_project_params(TX_JESD_S) ; # S
set TX_SAMPLE_WIDTH 16 ; # N/NP

set TX_SAMPLES_PER_CHANNEL [expr $TX_NUM_OF_LANES * 32 / ($TX_NUM_OF_CONVERTERS * $TX_SAMPLE_WIDTH)] ; # L * 32 / (M * N)

# RX parameters
set RX_NUM_OF_LANES $ad_project_params(RX_JESD_L) ; # L
set RX_NUM_OF_CONVERTERS $ad_project_params(RX_JESD_M) ; # M
set RX_SAMPLES_PER_FRAME $ad_project_params(RX_JESD_S) ; # S
set RX_SAMPLE_WIDTH 16 ; # N/NP

set RX_SAMPLES_PER_CHANNEL [expr $RX_NUM_OF_LANES * 32 / ($RX_NUM_OF_CONVERTERS * $RX_SAMPLE_WIDTH)] ; # L * 32 / (M * N)

set dac_fifo_name axi_adrv9026_dacfifo
set dac_data_width [expr 32*$TX_NUM_OF_LANES]
set dac_dma_data_width 128

source $ad_hdl_dir/library/jesd204/scripts/jesd204.tcl

# adrv9026

create_bd_port -dir I dac_fifo_bypass
create_bd_port -dir I core_clk

# dac peripherals

ad_ip_instance axi_adxcvr axi_adrv9026_tx_xcvr
ad_ip_parameter axi_adrv9026_tx_xcvr CONFIG.NUM_OF_LANES $TX_NUM_OF_LANES
ad_ip_parameter axi_adrv9026_tx_xcvr CONFIG.QPLL_ENABLE 1
ad_ip_parameter axi_adrv9026_tx_xcvr CONFIG.TX_OR_RX_N 1
ad_ip_parameter axi_adrv9026_tx_xcvr CONFIG.SYS_CLK_SEL 3
ad_ip_parameter axi_adrv9026_tx_xcvr CONFIG.OUT_CLK_SEL 3

adi_axi_jesd204_tx_create axi_adrv9026_tx_jesd $TX_NUM_OF_LANES

ad_ip_instance util_upack2 util_adrv9026_tx_upack [list \
NUM_OF_CHANNELS $TX_NUM_OF_CONVERTERS \
SAMPLES_PER_CHANNEL $TX_SAMPLES_PER_CHANNEL \
SAMPLE_DATA_WIDTH $TX_SAMPLE_WIDTH \
]

adi_tpl_jesd204_tx_create tx_adrv9026_tpl_core $TX_NUM_OF_LANES \
$TX_NUM_OF_CONVERTERS \
$TX_SAMPLES_PER_FRAME \
$TX_SAMPLE_WIDTH

ad_ip_instance axi_dmac axi_adrv9026_tx_dma
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.DMA_TYPE_SRC 0
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.DMA_TYPE_DEST 1
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.CYCLIC 1
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.ASYNC_CLK_DEST_REQ 1
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.ASYNC_CLK_SRC_DEST 1
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.ASYNC_CLK_REQ_SRC 1
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.DMA_2D_TRANSFER 0
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.DMA_DATA_WIDTH_DEST $dac_dma_data_width
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.MAX_BYTES_PER_BURST 256
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.DMA_DATA_WIDTH_SRC 128
ad_ip_parameter axi_adrv9026_tx_dma CONFIG.FIFO_SIZE 32

ad_dacfifo_create $dac_fifo_name $dac_data_width $dac_dma_data_width $dac_fifo_address_width

# adc peripherals

ad_ip_instance axi_adxcvr axi_adrv9026_rx_xcvr
ad_ip_parameter axi_adrv9026_rx_xcvr CONFIG.NUM_OF_LANES $RX_NUM_OF_LANES
ad_ip_parameter axi_adrv9026_rx_xcvr CONFIG.QPLL_ENABLE 0
ad_ip_parameter axi_adrv9026_rx_xcvr CONFIG.TX_OR_RX_N 0
ad_ip_parameter axi_adrv9026_rx_xcvr CONFIG.SYS_CLK_SEL 0
ad_ip_parameter axi_adrv9026_rx_xcvr CONFIG.OUT_CLK_SEL 3

adi_axi_jesd204_rx_create axi_adrv9026_rx_jesd $RX_NUM_OF_LANES

ad_ip_instance util_cpack2 util_adrv9026_rx_cpack [list \
NUM_OF_CHANNELS $RX_NUM_OF_CONVERTERS \
SAMPLES_PER_CHANNEL $RX_SAMPLES_PER_CHANNEL \
SAMPLE_DATA_WIDTH $RX_SAMPLE_WIDTH \
]

adi_tpl_jesd204_rx_create rx_adrv9026_tpl_core $RX_NUM_OF_LANES \
$RX_NUM_OF_CONVERTERS \
$RX_SAMPLES_PER_FRAME \
$RX_SAMPLE_WIDTH

ad_ip_instance axi_dmac axi_adrv9026_rx_dma
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.DMA_TYPE_SRC 2
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.DMA_TYPE_DEST 0
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.CYCLIC 0
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.SYNC_TRANSFER_START 1
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.ASYNC_CLK_DEST_REQ 1
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.ASYNC_CLK_SRC_DEST 1
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.ASYNC_CLK_REQ_SRC 1
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.DMA_2D_TRANSFER 0
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.DMA_DATA_WIDTH_SRC [expr 32*$RX_NUM_OF_LANES]
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.MAX_BYTES_PER_BURST 256
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.DMA_DATA_WIDTH_DEST 128
ad_ip_parameter axi_adrv9026_rx_dma CONFIG.FIFO_SIZE 32
acostina marked this conversation as resolved.
Show resolved Hide resolved

# common cores

ad_ip_instance util_adxcvr util_adrv9026_xcvr
ad_ip_parameter util_adrv9026_xcvr CONFIG.RX_NUM_OF_LANES $RX_NUM_OF_LANES
ad_ip_parameter util_adrv9026_xcvr CONFIG.TX_NUM_OF_LANES $TX_NUM_OF_LANES
ad_ip_parameter util_adrv9026_xcvr CONFIG.RX_LANE_RATE 10
ad_ip_parameter util_adrv9026_xcvr CONFIG.TX_LANE_RATE 10
ad_ip_parameter util_adrv9026_xcvr CONFIG.TX_OUT_DIV 1
ad_ip_parameter util_adrv9026_xcvr CONFIG.CPLL_FBDIV 4
ad_ip_parameter util_adrv9026_xcvr CONFIG.CPLL_FBDIV_4_5 5
ad_ip_parameter util_adrv9026_xcvr CONFIG.RX_CLK25_DIV 10
ad_ip_parameter util_adrv9026_xcvr CONFIG.TX_CLK25_DIV 10
ad_ip_parameter util_adrv9026_xcvr CONFIG.RX_PMA_CFG 0x001E7080
ad_ip_parameter util_adrv9026_xcvr CONFIG.RX_CDR_CFG 0x0b000023ff10400020
ad_ip_parameter util_adrv9026_xcvr CONFIG.QPLL_FBDIV 40
ad_ip_parameter util_adrv9026_xcvr CONFIG.QPLL_REFCLK_DIV 1
ad_ip_parameter util_adrv9026_xcvr CONFIG.TX_LANE_INVERT 6
ad_ip_parameter util_adrv9026_xcvr CONFIG.RX_LANE_INVERT 15

# xcvr interfaces

set tx_ref_clk tx_ref_clk_0
set rx_ref_clk rx_ref_clk_0

create_bd_port -dir I $tx_ref_clk
create_bd_port -dir I $rx_ref_clk
ad_connect $sys_cpu_resetn util_adrv9026_xcvr/up_rstn
ad_connect $sys_cpu_clk util_adrv9026_xcvr/up_clk

# Tx
ad_xcvrcon util_adrv9026_xcvr axi_adrv9026_tx_xcvr axi_adrv9026_tx_jesd {2 3 1 0} core_clk
ad_xcvrpll $tx_ref_clk util_adrv9026_xcvr/qpll_ref_clk_0
ad_xcvrpll axi_adrv9026_tx_xcvr/up_pll_rst util_adrv9026_xcvr/up_qpll_rst_0
ad_xcvrpll $tx_ref_clk util_adrv9026_xcvr/qpll_ref_clk_4
ad_xcvrpll axi_adrv9026_tx_xcvr/up_pll_rst util_adrv9026_xcvr/up_qpll_rst_4

# Rx
ad_xcvrcon util_adrv9026_xcvr axi_adrv9026_rx_xcvr axi_adrv9026_rx_jesd {} core_clk
for {set i 0} {$i < $RX_NUM_OF_LANES} {incr i} {
set ch [expr $i]
ad_xcvrpll $rx_ref_clk util_adrv9026_xcvr/cpll_ref_clk_$ch
ad_xcvrpll axi_adrv9026_rx_xcvr/up_pll_rst util_adrv9026_xcvr/up_cpll_rst_$ch
}

# connections (dac)

ad_connect core_clk tx_adrv9026_tpl_core/link_clk
ad_connect axi_adrv9026_tx_jesd/tx_data tx_adrv9026_tpl_core/link

ad_connect core_clk util_adrv9026_tx_upack/clk
ad_connect core_clk_rstgen/peripheral_reset util_adrv9026_tx_upack/reset

for {set i 0} {$i < $TX_NUM_OF_CONVERTERS} {incr i} {
ad_connect tx_adrv9026_tpl_core/dac_enable_$i util_adrv9026_tx_upack/enable_$i
ad_connect util_adrv9026_tx_upack/fifo_rd_data_$i tx_adrv9026_tpl_core/dac_data_$i
}

ad_connect tx_adrv9026_tpl_core/dac_valid_0 util_adrv9026_tx_upack/fifo_rd_en
ad_connect core_clk axi_adrv9026_dacfifo/dac_clk
ad_connect core_clk_rstgen/peripheral_reset axi_adrv9026_dacfifo/dac_rst

ad_connect util_adrv9026_tx_upack/s_axis_valid VCC
ad_connect util_adrv9026_tx_upack/s_axis_ready axi_adrv9026_dacfifo/dac_valid
ad_connect util_adrv9026_tx_upack/s_axis_data axi_adrv9026_dacfifo/dac_data

ad_connect core_clk axi_adrv9026_dacfifo/dma_clk
ad_connect core_clk_rstgen/peripheral_reset axi_adrv9026_dacfifo/dma_rst
ad_connect core_clk axi_adrv9026_tx_dma/m_axis_aclk
ad_connect axi_adrv9026_dacfifo/dma_valid axi_adrv9026_tx_dma/m_axis_valid
ad_connect axi_adrv9026_dacfifo/dma_data axi_adrv9026_tx_dma/m_axis_data
ad_connect axi_adrv9026_dacfifo/dma_ready axi_adrv9026_tx_dma/m_axis_ready
ad_connect axi_adrv9026_dacfifo/dma_xfer_req axi_adrv9026_tx_dma/m_axis_xfer_req
ad_connect axi_adrv9026_dacfifo/dma_xfer_last axi_adrv9026_tx_dma/m_axis_last
ad_connect axi_adrv9026_dacfifo/dac_dunf tx_adrv9026_tpl_core/dac_dunf
ad_connect axi_adrv9026_dacfifo/bypass dac_fifo_bypass
ad_connect core_clk_rstgen/peripheral_aresetn axi_adrv9026_tx_dma/m_src_axi_aresetn

# connections (adc)

ad_connect core_clk rx_adrv9026_tpl_core/link_clk
ad_connect axi_adrv9026_rx_jesd/rx_sof rx_adrv9026_tpl_core/link_sof
ad_connect axi_adrv9026_rx_jesd/rx_data_tdata rx_adrv9026_tpl_core/link_data
ad_connect axi_adrv9026_rx_jesd/rx_data_tvalid rx_adrv9026_tpl_core/link_valid
ad_connect core_clk util_adrv9026_rx_cpack/clk
ad_connect core_clk_rstgen/peripheral_reset util_adrv9026_rx_cpack/reset

for {set i 0} {$i < $RX_NUM_OF_CONVERTERS} {incr i} {
ad_connect rx_adrv9026_tpl_core/adc_enable_$i util_adrv9026_rx_cpack/enable_$i
ad_connect rx_adrv9026_tpl_core/adc_data_$i util_adrv9026_rx_cpack/fifo_wr_data_$i
}
ad_connect $sys_dma_resetn axi_adrv9026_rx_dma/m_dest_axi_aresetn

ad_connect rx_adrv9026_tpl_core/adc_valid_0 util_adrv9026_rx_cpack/fifo_wr_en
ad_connect rx_adrv9026_tpl_core/adc_dovf util_adrv9026_rx_cpack/fifo_wr_overflow

ad_connect core_clk axi_adrv9026_rx_dma/fifo_wr_clk
ad_connect util_adrv9026_rx_cpack/packed_fifo_wr axi_adrv9026_rx_dma/fifo_wr

# interconnect (cpu)

ad_cpu_interconnect 0x44A00000 rx_adrv9026_tpl_core
ad_cpu_interconnect 0x44A04000 tx_adrv9026_tpl_core
ad_cpu_interconnect 0x44A80000 axi_adrv9026_tx_xcvr
ad_cpu_interconnect 0x44A90000 axi_adrv9026_tx_jesd
ad_cpu_interconnect 0x7c420000 axi_adrv9026_tx_dma
ad_cpu_interconnect 0x44A60000 axi_adrv9026_rx_xcvr
ad_cpu_interconnect 0x44AA0000 axi_adrv9026_rx_jesd
ad_cpu_interconnect 0x7c400000 axi_adrv9026_rx_dma

# gt uses hp0, and 100MHz clock for both DRP and AXI4

ad_mem_hp0_interconnect $sys_cpu_clk sys_ps8/S_AXI_HP0
ad_mem_hp0_interconnect $sys_cpu_clk axi_adrv9026_rx_xcvr/m_axi

# interconnect (mem/dac)

ad_mem_hp2_interconnect $sys_dma_clk sys_ps7/S_AXI_HP2
ad_mem_hp2_interconnect $sys_dma_clk axi_adrv9026_rx_dma/m_dest_axi
ad_mem_hp3_interconnect $sys_dma_clk sys_ps7/S_AXI_HP3
ad_mem_hp3_interconnect $sys_dma_clk axi_adrv9026_tx_dma/m_src_axi

# interrupts

ad_cpu_interrupt ps-10 mb-15 axi_adrv9026_tx_jesd/irq
ad_cpu_interrupt ps-11 mb-14 axi_adrv9026_rx_jesd/irq
ad_cpu_interrupt ps-13 mb-12 axi_adrv9026_tx_dma/irq
ad_cpu_interrupt ps-14 mb-11 axi_adrv9026_rx_dma/irq
90 changes: 90 additions & 0 deletions projects/adrv9026/common/adrv9026_fmc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
FMC_pin FMC_port Schematic_name System_top_name IOSTANDARD Termination

#adrv9026

D4 GBTCLK0_M2C_P FPGA_REF_CLK+ ref_clk_p #N/A #N/A
D5 GBTCLK0_M2C_N FPGA_REF_CLK- ref_clk_n #N/A #N/A
H4 CLK0_M2C_P FPGA_MMCM_CLK+ core_clk_p LVDS #N/A
H5 CLK0_M2C_N FPGA_MMCM_CLK- core_clk_n LVDS #N/A

A2 DP1_M2C_P SERDOUTA- rx_data_p[0] #N/A #N/A
A3 DP1_M2C_N SERDOUTA+ rx_data_n[0] #N/A #N/A
C6 DP0_M2C_P SERDOUTB- rx_data_p[1] #N/A #N/A
C7 DP0_M2C_N SERDOUTB+ rx_data_n[1] #N/A #N/A
A6 DP2_M2C_P SERDOUTC- rx_data_p[2] #N/A #N/A
A7 DP2_M2C_N SERDOUTC+ rx_data_n[2] #N/A #N/A
A10 DP3_M2C_P SERDOUTD- rx_data_p[3] #N/A #N/A
A11 DP3_M2C_N SERDOUTD+ rx_data_n[3] #N/A #N/A

A22 DP1_C2M_P SERDINC+ tx_data_p[0] #N/A #N/A
A23 DP1_C2M_N SERDINC- tx_data_n[0] #N/A #N/A
C2 DP0_C2M_P SERDIND- tx_data_p[1] #N/A #N/A
C3 DP0_C2M_N SERDIND+ tx_data_n[1] #N/A #N/A
A26 DP2_C2M_P SERDINB- tx_data_p[2] #N/A #N/A
A27 DP2_C2M_N SERDINB+ tx_data_n[2] #N/A #N/A
A30 DP3_C2M_P SERDINA+ tx_data_p[3] #N/A #N/A
A31 DP3_C2M_N SERDINA- tx_data_n[3] #N/A #N/A

G9 LA03_P SYNCIN1- rx_sync_p LVDS #N/A
G10 LA03_N SYNCIN1+ rx_sync_n LVDS #N/A
G36 LA33_P SYNCIN3- rx_sync_2_p LVDS #N/A
G37 LA33_N SYNCIN3+ rx_sync_2_n LVDS #N/A
G27 LA25_P SYNCIN2- rx_os_sync_p LVDS #N/A
G28 LA25_N SYNCIN2+ rx_os_sync_n LVDS #N/A

G6 LA00_CC_P FPGA_SYSREF+ sysref_p LVDS DIFF_TERM TRUE
G7 LA00_CC_N FPGA_SYSREF- sysref_n LVDS DIFF_TERM TRUE

H7 LA02_P SYNCOUT1+ tx_sync_p LVDS DIFF_TERM TRUE
H8 LA02_N SYNCOUT1- tx_sync_n LVDS DIFF_TERM TRUE
H28 LA24_P SYNCOUT2 tx_sync_1_p LVDS DIFF_TERM TRUE
H29 LA24_N SYNCOUT2 tx_sync_1_n LVDS DIFF_TERM TRUE

C26 LA27_P FMC_CLK_RESETB ad9528_reset_b LVCMOS18 #N/A
C27 LA27_N FMC_SYSREF_REQUEST ad9528_sysref_req LVCMOS18 #N/A
D11 LA05_P TEST adrv9026_test LVCMOS18 #N/A

C10 LA06_P ORX_CTRL_A adrv9026_orx_ctrl_a LVCMOS18 #N/A
C11 LA06_N ORX_CTRL_B adrv9026_orx_ctrl_b LVCMOS18 #N/A
D26 LA26_P ORX_CTRL_C adrv9026_orx_ctrl_c LVCMOS18 #N/A
C15 LA10_N ORX_CTRL_D adrv9026_orx_ctrl_d LVCMOS18 #N/A

D18 LA13_N RX1_ENABLE adrv9026_rx1_enable LVCMOS18 #N/A
C19 LA14_N RX2_ENABLE adrv9026_rx2_enable LVCMOS18 #N/A
D24 LA23_N RX3_ENABLE adrv9026_rx3_enable LVCMOS18 #N/A
D23 LA23_P RX4_ENABLE adrv9026_rx4_enable LVCMOS18 #N/A

D17 LA13_P TX1_ENABLE adrv9026_tx1_enable LVCMOS18 #N/A
C18 LA14_P TX2_ENABLE adrv9026_tx2_enable LVCMOS18 #N/A
D27 LA26_N TX3_ENABLE adrv9026_tx3_enable LVCMOS18 #N/A
C14 LA10_P TX4_ENABLE adrv9026_tx4_enable LVCMOS18 #N/A

H11 LA04_N GPINT1 adrv9026_gpint1 LVCMOS18 #N/A
H31 LA28_P GPINT2 adrv9026_gpint2 LVCMOS18 #N/A
H10 LA04_P RESETB adrv9026_reset_b LVCMOS18 #N/A

H19 LA15_P GPIO_0 adrv9026_gpio_00 LVCMOS18 #N/A
H20 LA15_N GPIO_1 adrv9026_gpio_01 LVCMOS18 #N/A
G18 LA16_P GPIO_2 adrv9026_gpio_02 LVCMOS18 #N/A
G19 LA16_N GPIO_3 adrv9026_gpio_03 LVCMOS18 #N/A
H25 LA21_P GPIO_4 adrv9026_gpio_04 LVCMOS18 #N/A
H26 LA21_N GPIO_5 adrv9026_gpio_05 LVCMOS18 #N/A
C22 LA18_CC_P GPIO_6 adrv9026_gpio_06 LVCMOS18 #N/A
C23 LA18_CC_N GPIO_7 adrv9026_gpio_07 LVCMOS18 #N/A
G25 LA22_N GPIO_8 adrv9026_gpio_08 LVCMOS18 #N/A
H22 LA19_P GPIO_9 adrv9026_gpio_09 LVCMOS18 #N/A
H23 LA19_N GPIO_10 adrv9026_gpio_10 LVCMOS18 #N/A
G21 LA20_P GPIO_11 adrv9026_gpio_11 LVCMOS18 #N/A
G22 LA20_N GPIO_12 adrv9026_gpio_12 LVCMOS18 #N/A
G31 LA29_N GPIO_13 adrv9026_gpio_13 LVCMOS18 #N/A
G30 LA29_P GPIO_14 adrv9026_gpio_14 LVCMOS18 #N/A
G24 LA22_P GPIO_15_FMC adrv9026_gpio_15 LVCMOS18 #N/A
G16 LA12_N GPIO_16 adrv9026_gpio_16 LVCMOS18 #N/A
G15 LA12_P GPIO_17 adrv9026_gpio_17 LVCMOS18 #N/A
D12 LA05_N GPIO_18 adrv9026_gpio_18 LVCMOS18 #N/A

D14 LA09_P SPI_CS0 spi_csn_adrv9026 LVCMOS18 #N/A
D15 LA09_N SPI_CS1 spi_csn_ad9528 LVCMOS18 #N/A
H13 LA07_P SPI_CLK spi_clk LVCMOS18 #N/A
G12 LA08_P SPI_DOUT spi_miso LVCMOS18 #N/A
H14 LA07_N SPI_DIN spi_mosi LVCMOS18 #N/A
32 changes: 32 additions & 0 deletions projects/adrv9026/zcu102/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
###############################################################################
## Copyright (C) 2018-2024 Analog Devices, Inc.
### SPDX short identifier: BSD-1-Clause
## Auto-generated, do not modify!
###############################################################################

PROJECT_NAME := adrv9026_zcu102

M_DEPS += ../common/adrv9026_bd.tcl
M_DEPS += ../../scripts/adi_pd.tcl
M_DEPS += ../../common/zcu102/zcu102_system_constr.xdc
M_DEPS += ../../common/zcu102/zcu102_system_bd.tcl
M_DEPS += ../../common/xilinx/dacfifo_bd.tcl
M_DEPS += ../../../library/jesd204/scripts/jesd204.tcl
M_DEPS += ../../../library/common/ad_iobuf.v

LIB_DEPS += axi_dmac
LIB_DEPS += axi_sysid
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_adc
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_dac
LIB_DEPS += jesd204/axi_jesd204_rx
LIB_DEPS += jesd204/axi_jesd204_tx
LIB_DEPS += jesd204/jesd204_rx
LIB_DEPS += jesd204/jesd204_tx
LIB_DEPS += sysid_rom
LIB_DEPS += util_dacfifo
LIB_DEPS += util_pack/util_cpack2
LIB_DEPS += util_pack/util_upack2
LIB_DEPS += xilinx/axi_adxcvr
LIB_DEPS += xilinx/util_adxcvr

include ../../scripts/project-xilinx.mk
22 changes: 22 additions & 0 deletions projects/adrv9026/zcu102/system_bd.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
###############################################################################
## Copyright (C) 2023-2024 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

## FIFO depth is 18Mb - 1M samples
set dac_fifo_address_width 17

## NOTE: With this configuration the #36Kb BRAM utilization is at ~57%

source $ad_hdl_dir/projects/common/zcu102/zcu102_system_bd.tcl
source $ad_hdl_dir/projects/common/xilinx/dacfifo_bd.tcl
source $ad_hdl_dir/projects/scripts/adi_pd.tcl

#system ID
ad_ip_parameter axi_sysid_0 CONFIG.ROM_ADDR_BITS 9
ad_ip_parameter rom_sys_0 CONFIG.PATH_TO_FILE "[pwd]/mem_init_sys.txt"
ad_ip_parameter rom_sys_0 CONFIG.ROM_ADDR_BITS 9
set sys_cstring "sys rom custom string placeholder"
sysid_gen_sys_init_file $sys_cstring;

source ../common/adrv9026_bd.tcl
Loading
Loading