Skip to content

Commit 7247671

Browse files
committed
adrv9009: Replace dacfifo with data_offload
This commit replaces the dacfifo IP with the data_offload IP for all supported Xilinx carriers of adrv9009. Signed-off-by: Ionut Podgoreanu <[email protected]>
1 parent 8e94b64 commit 7247671

File tree

7 files changed

+53
-42
lines changed

7 files changed

+53
-42
lines changed

projects/adrv9009/common/adrv9009_bd.tcl

+21-19
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ set MAX_RX_OS_NUM_OF_LANES 2
1616
set DATAPATH_WIDTH 4
1717
source $ad_hdl_dir/library/jesd204/scripts/jesd204.tcl
1818
source $ad_hdl_dir/projects/common/xilinx/adi_fir_filter_bd.tcl
19+
source $ad_hdl_dir/projects/common/xilinx/data_offload_bd.tcl
1920

2021
# TX parameters
2122
set TX_NUM_OF_LANES $ad_project_params(TX_JESD_L) ; # L
@@ -53,14 +54,13 @@ set RX_OS_TPL_WIDTH [ expr { [info exists ad_project_params(RX_OS_TPL_WIDTH)] \
5354
set RX_OS_DATAPATH_WIDTH [adi_jesd204_calc_tpl_width $DATAPATH_WIDTH $RX_OS_NUM_OF_LANES $RX_OS_NUM_OF_CONVERTERS $RX_OS_SAMPLES_PER_FRAME $RX_OS_SAMPLE_WIDTH $RX_OS_TPL_WIDTH]
5455
set RX_OS_SAMPLES_PER_CHANNEL [expr $RX_OS_NUM_OF_LANES * 8 * $RX_OS_DATAPATH_WIDTH / ($RX_OS_NUM_OF_CONVERTERS * $RX_OS_SAMPLE_WIDTH)]
5556

56-
set dac_fifo_name axi_adrv9009_dacfifo
57+
set dac_offload_name adrv9009_data_offload
5758
set dac_data_width [expr $TX_SAMPLE_WIDTH * $TX_NUM_OF_CONVERTERS * $TX_SAMPLES_PER_CHANNEL]
5859

5960
# adrv9009
6061

6162
create_bd_port -dir I ref_clk
6263

63-
create_bd_port -dir I dac_fifo_bypass
6464
create_bd_port -dir I adc_fir_filter_active
6565
create_bd_port -dir I dac_fir_filter_active
6666

@@ -110,7 +110,15 @@ ad_ip_parameter axi_adrv9009_tx_dma CONFIG.MAX_BYTES_PER_BURST 256
110110
ad_ip_parameter axi_adrv9009_tx_dma CONFIG.AXI_SLICE_DEST true
111111
ad_ip_parameter axi_adrv9009_tx_dma CONFIG.AXI_SLICE_SRC true
112112

113-
ad_dacfifo_create $dac_fifo_name $dac_data_width $dac_data_width $dac_fifo_address_width
113+
ad_data_offload_create $dac_offload_name \
114+
1 \
115+
$dac_offload_type \
116+
$dac_offload_size \
117+
$dac_data_width \
118+
$dac_data_width \
119+
$plddr_offload_axi_data_width
120+
121+
ad_connect $dac_offload_name/sync_ext GND
114122

115123
# adc peripherals
116124

@@ -348,26 +356,19 @@ for {set i 0} {$i < $TX_NUM_OF_CONVERTERS} {incr i} {
348356

349357
ad_connect tx_fir_interpolator/active dac_fir_filter_active
350358

351-
ad_connect axi_adrv9009_tx_clkgen/clk_0 axi_adrv9009_dacfifo/dac_clk
352-
ad_connect adrv9009_tx_device_clk_rstgen/peripheral_reset axi_adrv9009_dacfifo/dac_rst
353-
354-
# TODO: Add streaming AXI interface for DAC FIFO
355-
ad_connect util_adrv9009_tx_upack/s_axis_valid VCC
356-
ad_connect util_adrv9009_tx_upack/s_axis_ready axi_adrv9009_dacfifo/dac_valid
357-
ad_connect util_adrv9009_tx_upack/s_axis_data axi_adrv9009_dacfifo/dac_data
359+
ad_connect axi_adrv9009_tx_clkgen/clk_0 $dac_offload_name/m_axis_aclk
360+
ad_connect adrv9009_tx_device_clk_rstgen/peripheral_aresetn $dac_offload_name/m_axis_aresetn
361+
ad_connect util_adrv9009_tx_upack/s_axis $dac_offload_name/m_axis
358362

359-
ad_connect $sys_dma_clk axi_adrv9009_dacfifo/dma_clk
360-
ad_connect $sys_dma_reset axi_adrv9009_dacfifo/dma_rst
363+
ad_connect $sys_dma_clk $dac_offload_name/s_axis_aclk
364+
ad_connect $sys_dma_resetn $dac_offload_name/s_axis_aresetn
361365
ad_connect $sys_dma_clk axi_adrv9009_tx_dma/m_axis_aclk
362-
ad_connect axi_adrv9009_dacfifo/dma_valid axi_adrv9009_tx_dma/m_axis_valid
363-
ad_connect axi_adrv9009_dacfifo/dma_data axi_adrv9009_tx_dma/m_axis_data
364-
ad_connect axi_adrv9009_dacfifo/dma_ready axi_adrv9009_tx_dma/m_axis_ready
365-
ad_connect axi_adrv9009_dacfifo/dma_xfer_req axi_adrv9009_tx_dma/m_axis_xfer_req
366-
ad_connect axi_adrv9009_dacfifo/dma_xfer_last axi_adrv9009_tx_dma/m_axis_last
367-
ad_connect axi_adrv9009_dacfifo/dac_dunf tx_adrv9009_tpl_core/dac_dunf
368-
ad_connect axi_adrv9009_dacfifo/bypass dac_fifo_bypass
369366
ad_connect $sys_dma_resetn axi_adrv9009_tx_dma/m_src_axi_aresetn
370367

368+
ad_connect $dac_offload_name/s_axis axi_adrv9009_tx_dma/m_axis
369+
ad_connect $dac_offload_name/init_req axi_adrv9009_tx_dma/m_axis_xfer_req
370+
ad_connect tx_adrv9009_tpl_core/dac_dunf util_adrv9009_tx_upack/fifo_rd_underflow
371+
371372
# connections (adc)
372373

373374
if {$RX_OCTETS_PER_FRAME == 8} {
@@ -437,6 +438,7 @@ ad_cpu_interconnect 0x44A80000 axi_adrv9009_tx_xcvr
437438
ad_cpu_interconnect 0x43C00000 axi_adrv9009_tx_clkgen
438439
ad_cpu_interconnect 0x44A90000 axi_adrv9009_tx_jesd
439440
ad_cpu_interconnect 0x7c420000 axi_adrv9009_tx_dma
441+
ad_cpu_interconnect 0x7c430000 $dac_offload_name
440442
ad_cpu_interconnect 0x44A60000 axi_adrv9009_rx_xcvr
441443
ad_cpu_interconnect 0x43C10000 axi_adrv9009_rx_clkgen
442444
ad_cpu_interconnect 0x44AA0000 axi_adrv9009_rx_jesd

projects/adrv9009/zc706/Makefile

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
####################################################################################
2-
## Copyright (c) 2018 - 2023 Analog Devices, Inc.
2+
## Copyright (c) 2018 - 2024 Analog Devices, Inc.
33
### SPDX short identifier: BSD-1-Clause
44
## Auto-generated, do not modify!
55
####################################################################################
@@ -10,11 +10,12 @@ M_DEPS += ../common/adrv9009_bd.tcl
1010
M_DEPS += ../../scripts/adi_pd.tcl
1111
M_DEPS += ../../common/zc706/zc706_system_constr.xdc
1212
M_DEPS += ../../common/zc706/zc706_system_bd.tcl
13-
M_DEPS += ../../common/zc706/zc706_plddr3_dacfifo_bd.tcl
13+
M_DEPS += ../../common/zc706/zc706_plddr3_data_offload_bd.tcl
1414
M_DEPS += ../../common/zc706/zc706_plddr3_constr.xdc
15+
M_DEPS += ../../common/xilinx/data_offload_bd.tcl
1516
M_DEPS += ../../common/xilinx/adi_fir_filter_constr.xdc
1617
M_DEPS += ../../common/xilinx/adi_fir_filter_bd.tcl
17-
M_DEPS += ../../../library/util_cdc/sync_bits.v
18+
M_DEPS += ../../../library/util_hbm/scripts/adi_util_hbm.tcl
1819
M_DEPS += ../../../library/jesd204/scripts/jesd204.tcl
1920
M_DEPS += ../../../library/common/util_pulse_gen.v
2021
M_DEPS += ../../../library/common/ad_iobuf.v
@@ -25,17 +26,19 @@ LIB_DEPS += axi_dmac
2526
LIB_DEPS += axi_hdmi_tx
2627
LIB_DEPS += axi_spdif_tx
2728
LIB_DEPS += axi_sysid
29+
LIB_DEPS += data_offload
2830
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_adc
2931
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_dac
3032
LIB_DEPS += jesd204/axi_jesd204_rx
3133
LIB_DEPS += jesd204/axi_jesd204_tx
3234
LIB_DEPS += jesd204/jesd204_rx
3335
LIB_DEPS += jesd204/jesd204_tx
3436
LIB_DEPS += sysid_rom
37+
LIB_DEPS += util_do_ram
38+
LIB_DEPS += util_hbm
3539
LIB_DEPS += util_pack/util_cpack2
3640
LIB_DEPS += util_pack/util_upack2
3741
LIB_DEPS += xilinx/axi_adxcvr
38-
LIB_DEPS += xilinx/axi_dacfifo
3942
LIB_DEPS += xilinx/util_adxcvr
4043

4144
include ../../scripts/project-xilinx.mk

projects/adrv9009/zc706/system_bd.tcl

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
###############################################################################
2-
## Copyright (C) 2016-2023 Analog Devices, Inc. All rights reserved.
2+
## Copyright (C) 2016-2024 Analog Devices, Inc. All rights reserved.
33
### SPDX short identifier: ADIBSD
44
###############################################################################
55

6-
set dac_fifo_address_width 10
6+
## Offload attributes
7+
set dac_offload_type 1 ; ## PL_DDR
8+
set dac_offload_size [expr 1024*1024*1024] ; ## 1 GB
9+
set plddr_offload_axi_data_width 512
710

811
source $ad_hdl_dir/projects/common/zc706/zc706_system_bd.tcl
9-
source $ad_hdl_dir/projects/common/zc706/zc706_plddr3_dacfifo_bd.tcl
12+
source $ad_hdl_dir/projects/common/zc706/zc706_plddr3_data_offload_bd.tcl
1013
source $ad_hdl_dir/projects/scripts/adi_pd.tcl
1114

1215
#system ID
@@ -23,7 +26,8 @@ S=$ad_project_params(TX_JESD_S)\
2326
RX_OS:M=$ad_project_params(RX_OS_JESD_M)\
2427
L=$ad_project_params(RX_OS_JESD_L)\
2528
S=$ad_project_params(RX_OS_JESD_S)\
26-
DAC_FIFO_ADDR_WIDTH=$dac_fifo_address_width"
29+
DAC_OFFLOAD:TYPE=$dac_offload_type\
30+
SIZE=$dac_offload_size"
2731

2832
sysid_gen_sys_init_file $sys_cstring
2933

@@ -44,6 +48,8 @@ set sys_dma_resetn [get_bd_nets sys_250m_resetn]
4448

4549
source ../common/adrv9009_bd.tcl
4650

51+
ad_plddr_data_offload_create $dac_offload_name
52+
4753
ad_ip_parameter axi_adrv9009_rx_dma CONFIG.FIFO_SIZE 32
4854
ad_ip_parameter axi_adrv9009_rx_os_dma CONFIG.FIFO_SIZE 32
4955
ad_ip_parameter axi_adrv9009_tx_dma CONFIG.FIFO_SIZE 32

projects/adrv9009/zc706/system_top.v

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ***************************************************************************
22
// ***************************************************************************
3-
// Copyright (C) 2018-2023 Analog Devices, Inc. All rights reserved.
3+
// Copyright (C) 2018-2024 Analog Devices, Inc. All rights reserved.
44
//
55
// In this HDL repository, there are many different and unique modules, consisting
66
// of various HDL (Verilog or VHDL) components. The individual modules are
@@ -340,7 +340,6 @@ module system_top (
340340
.dio_p (gpio_bd));
341341

342342
system_wrapper i_system_wrapper (
343-
.dac_fifo_bypass (gpio_o[60]),
344343
.adc_fir_filter_active (gpio_o[61]),
345344
.dac_fir_filter_active (gpio_o[62]),
346345
.ddr3_addr (ddr3_addr),

projects/adrv9009/zcu102/Makefile

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
####################################################################################
2-
## Copyright (c) 2018 - 2023 Analog Devices, Inc.
2+
## Copyright (c) 2018 - 2024 Analog Devices, Inc.
33
### SPDX short identifier: BSD-1-Clause
44
## Auto-generated, do not modify!
55
####################################################################################
@@ -10,10 +10,10 @@ M_DEPS += ../common/adrv9009_bd.tcl
1010
M_DEPS += ../../scripts/adi_pd.tcl
1111
M_DEPS += ../../common/zcu102/zcu102_system_constr.xdc
1212
M_DEPS += ../../common/zcu102/zcu102_system_bd.tcl
13-
M_DEPS += ../../common/xilinx/dacfifo_bd.tcl
13+
M_DEPS += ../../common/xilinx/data_offload_bd.tcl
1414
M_DEPS += ../../common/xilinx/adi_fir_filter_constr.xdc
1515
M_DEPS += ../../common/xilinx/adi_fir_filter_bd.tcl
16-
M_DEPS += ../../../library/util_cdc/sync_bits.v
16+
M_DEPS += ../../../library/util_hbm/scripts/adi_util_hbm.tcl
1717
M_DEPS += ../../../library/jesd204/scripts/jesd204.tcl
1818
M_DEPS += ../../../library/common/util_pulse_gen.v
1919
M_DEPS += ../../../library/common/ad_iobuf.v
@@ -22,14 +22,16 @@ M_DEPS += ../../../library/common/ad_bus_mux.v
2222
LIB_DEPS += axi_clkgen
2323
LIB_DEPS += axi_dmac
2424
LIB_DEPS += axi_sysid
25+
LIB_DEPS += data_offload
2526
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_adc
2627
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_dac
2728
LIB_DEPS += jesd204/axi_jesd204_rx
2829
LIB_DEPS += jesd204/axi_jesd204_tx
2930
LIB_DEPS += jesd204/jesd204_rx
3031
LIB_DEPS += jesd204/jesd204_tx
3132
LIB_DEPS += sysid_rom
32-
LIB_DEPS += util_dacfifo
33+
LIB_DEPS += util_do_ram
34+
LIB_DEPS += util_hbm
3335
LIB_DEPS += util_pack/util_cpack2
3436
LIB_DEPS += util_pack/util_upack2
3537
LIB_DEPS += xilinx/axi_adxcvr

projects/adrv9009/zcu102/system_bd.tcl

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
###############################################################################
2-
## Copyright (C) 2018-2023 Analog Devices, Inc. All rights reserved.
2+
## Copyright (C) 2018-2024 Analog Devices, Inc. All rights reserved.
33
### SPDX short identifier: ADIBSD
44
###############################################################################
55

6-
## FIFO depth is 18Mb - 1M samples
7-
set dac_fifo_address_width 17
8-
9-
## NOTE: With this configuration the #36Kb BRAM utilization is at ~57%
6+
## Offload attributes
7+
set dac_offload_type 0 ; ## BRAM
8+
set dac_offload_size [expr 2*1024*1024] ; ## 2 MB
9+
set plddr_offload_axi_data_width 0
1010

1111
source $ad_hdl_dir/projects/common/zcu102/zcu102_system_bd.tcl
12-
source $ad_hdl_dir/projects/common/xilinx/dacfifo_bd.tcl
1312
source $ad_hdl_dir/projects/scripts/adi_pd.tcl
1413

1514
#system ID
@@ -26,7 +25,8 @@ S=$ad_project_params(TX_JESD_S)\
2625
RX_OS:M=$ad_project_params(RX_OS_JESD_M)\
2726
L=$ad_project_params(RX_OS_JESD_L)\
2827
S=$ad_project_params(RX_OS_JESD_S)\
29-
DAC_FIFO_ADDR_WIDTH=$dac_fifo_address_width"
28+
DAC_OFFLOAD:TYPE=$dac_offload_type\
29+
SIZE=$dac_offload_size"
3030

3131
sysid_gen_sys_init_file $sys_cstring
3232

projects/adrv9009/zcu102/system_top.v

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ***************************************************************************
22
// ***************************************************************************
3-
// Copyright (C) 2014-2023 Analog Devices, Inc. All rights reserved.
3+
// Copyright (C) 2014-2024 Analog Devices, Inc. All rights reserved.
44
//
55
// In this HDL repository, there are many different and unique modules, consisting
66
// of various HDL (Verilog or VHDL) components. The individual modules are
@@ -214,7 +214,6 @@ module system_top (
214214
assign spi_csn_adrv9009 = spi_csn[1];
215215

216216
system_wrapper i_system_wrapper (
217-
.dac_fifo_bypass (gpio_o[60]),
218217
.adc_fir_filter_active (gpio_o[61]),
219218
.dac_fir_filter_active (gpio_o[62]),
220219
.gpio_i (gpio_i),

0 commit comments

Comments
 (0)