Skip to content

Commit 8aa23e1

Browse files
committed
fmcomms11: Replace adc/dacfifo with data_offload
Signed-off-by: Ionut Podgoreanu <[email protected]>
1 parent c674ea9 commit 8aa23e1

File tree

4 files changed

+80
-59
lines changed

4 files changed

+80
-59
lines changed

projects/fmcomms11/common/fmcomms11_bd.tcl

Lines changed: 55 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
###############################################################################
2-
## Copyright (C) 2019-2023 Analog Devices, Inc. All rights reserved.
2+
## Copyright (C) 2019-2025 Analog Devices, Inc. All rights reserved.
33
### SPDX short identifier: ADIBSD
44
###############################################################################
55

66
source $ad_hdl_dir/library/jesd204/scripts/jesd204.tcl
7+
source $ad_hdl_dir/projects/common/xilinx/data_offload_bd.tcl
78

89
# JESD204 TX parameters
910
set TX_NUM_OF_LANES 8 ; # L
@@ -20,20 +21,16 @@ set RX_NUM_OF_CONVERTERS 1 ; # M
2021
set RX_SAMPLES_PER_FRAME 4 ; # S
2122
set RX_SAMPLE_WIDTH 16 ; # N/NP
2223

23-
# Data path FIFO attributes
24+
# Data path attributes
2425

25-
set adc_fifo_name axi_ad9625_fifo
26+
set adc_offload_name ad9625_data_offload
2627
set adc_data_width 256
27-
set adc_dma_data_width 64
28+
set adc_dma_data_width 256
2829

29-
set dac_fifo_name axi_ad9162_fifo
30+
set dac_offload_name ad9162_data_offload
3031
set dac_data_width 256
3132
set dac_dma_data_width 256
3233

33-
# DAC FIFO bypass
34-
35-
create_bd_port -dir I dac_fifo_bypass
36-
3734
# dac peripherals
3835

3936
ad_ip_instance axi_adxcvr axi_ad9162_xcvr [list \
@@ -68,7 +65,17 @@ ad_ip_instance axi_dmac axi_ad9162_dma [list \
6865
DMA_DATA_WIDTH_DEST $dac_dma_data_width \
6966
]
7067

71-
ad_dacfifo_create $dac_fifo_name $dac_data_width $dac_dma_data_width $dac_fifo_address_width
68+
ad_data_offload_create $dac_offload_name \
69+
1 \
70+
$dac_offload_type \
71+
$dac_offload_size \
72+
$dac_dma_data_width \
73+
$dac_data_width \
74+
$plddr_offload_axi_data_width
75+
76+
ad_ip_parameter $dac_offload_name/i_data_offload CONFIG.HAS_BYPASS 0
77+
ad_ip_parameter $dac_offload_name/i_data_offload CONFIG.SYNC_EXT_ADD_INTERNAL_CDC 0
78+
ad_connect $dac_offload_name/sync_ext GND
7279

7380
# adc peripherals
7481

@@ -99,7 +106,17 @@ ad_ip_instance axi_dmac axi_ad9625_dma [list \
99106
DMA_DATA_WIDTH_DEST 64 \
100107
]
101108

102-
ad_adcfifo_create $adc_fifo_name $adc_data_width $adc_dma_data_width $adc_fifo_address_width
109+
ad_data_offload_create $adc_offload_name \
110+
0 \
111+
$adc_offload_type \
112+
$adc_offload_size \
113+
$adc_data_width \
114+
$adc_dma_data_width \
115+
$plddr_offload_axi_data_width
116+
117+
ad_ip_parameter $adc_offload_name/i_data_offload CONFIG.HAS_BYPASS 0
118+
ad_ip_parameter $adc_offload_name/i_data_offload CONFIG.SYNC_EXT_ADD_INTERNAL_CDC 0
119+
ad_connect $adc_offload_name/sync_ext GND
103120

104121
# shared transceiver core
105122

@@ -141,22 +158,18 @@ for {set i 0} {$i < $TX_NUM_OF_CONVERTERS} {incr i} {
141158
ad_connect axi_ad9162_core/dac_enable_$i util_ad9162_upack/enable_$i
142159
}
143160

144-
ad_connect util_fmcomms11_xcvr/tx_out_clk_0 axi_ad9162_fifo/dac_clk
145-
ad_connect axi_ad9162_jesd_rstgen/peripheral_reset axi_ad9162_fifo/dac_rst
146-
ad_connect $sys_cpu_clk axi_ad9162_fifo/dma_clk
147-
ad_connect $sys_cpu_reset axi_ad9162_fifo/dma_rst
161+
ad_connect util_fmcomms11_xcvr/tx_out_clk_0 $dac_offload_name/m_axis_aclk
162+
ad_connect axi_ad9162_jesd_rstgen/peripheral_aresetn $dac_offload_name/m_axis_aresetn
163+
ad_connect $sys_cpu_clk $dac_offload_name/s_axis_aclk
164+
ad_connect $sys_cpu_resetn $dac_offload_name/s_axis_aresetn
148165
ad_connect $sys_cpu_clk axi_ad9162_dma/m_axis_aclk
149166
ad_connect $sys_cpu_resetn axi_ad9162_dma/m_src_axi_aresetn
150-
ad_connect util_ad9162_upack/s_axis_valid VCC
151-
ad_connect util_ad9162_upack/s_axis_ready axi_ad9162_fifo/dac_valid
152-
ad_connect util_ad9162_upack/s_axis_data axi_ad9162_fifo/dac_data
153-
ad_connect axi_ad9162_core/dac_dunf axi_ad9162_fifo/dac_dunf
154-
ad_connect axi_ad9162_fifo/dma_xfer_req axi_ad9162_dma/m_axis_xfer_req
155-
ad_connect axi_ad9162_fifo/dma_ready axi_ad9162_dma/m_axis_ready
156-
ad_connect axi_ad9162_fifo/dma_data axi_ad9162_dma/m_axis_data
157-
ad_connect axi_ad9162_fifo/dma_valid axi_ad9162_dma/m_axis_valid
158-
ad_connect axi_ad9162_fifo/dma_xfer_last axi_ad9162_dma/m_axis_last
159-
ad_connect dac_fifo_bypass axi_ad9162_fifo/bypass
167+
168+
ad_connect util_ad9162_upack/s_axis $dac_offload_name/m_axis
169+
ad_connect axi_ad9162_core/dac_dunf util_ad9162_upack/fifo_rd_underflow
170+
171+
ad_connect $dac_offload_name/s_axis axi_ad9162_dma/m_axis
172+
ad_connect $dac_offload_name/init_req axi_ad9162_dma/m_axis_xfer_req
160173

161174
# connections (adc)
162175

@@ -167,29 +180,36 @@ ad_connect axi_ad9625_jesd/rx_sof axi_ad9625_core/link_sof
167180
ad_connect axi_ad9625_jesd/rx_data_tdata axi_ad9625_core/link_data
168181
ad_connect axi_ad9625_jesd/rx_data_tvalid axi_ad9625_core/link_valid
169182

170-
ad_connect util_fmcomms11_xcvr/rx_out_clk_0 axi_ad9625_fifo/adc_clk
171-
ad_connect axi_ad9625_jesd_rstgen/peripheral_reset axi_ad9625_fifo/adc_rst
172-
ad_connect axi_ad9625_core/adc_valid_0 axi_ad9625_fifo/adc_wr
173-
ad_connect axi_ad9625_core/adc_data_0 axi_ad9625_fifo/adc_wdata
174-
ad_connect $sys_cpu_clk axi_ad9625_fifo/dma_clk
183+
ad_connect util_fmcomms11_xcvr/rx_out_clk_0 $adc_offload_name/s_axis_aclk
184+
ad_connect axi_ad9625_jesd_rstgen/peripheral_aresetn $adc_offload_name/s_axis_aresetn
185+
186+
ad_connect axi_ad9625_core/adc_valid_0 $adc_offload_name/s_axis_tvalid
187+
ad_connect axi_ad9625_core/adc_data_0 $adc_offload_name/s_axis_tdata
188+
ad_connect axi_ad9625_core/adc_dovf GND
189+
190+
ad_connect $adc_offload_name/s_axis_tlast GND
191+
ad_connect $adc_offload_name/s_axis_tkeep VCC
192+
193+
ad_connect $sys_cpu_clk $adc_offload_name/m_axis_aclk
175194
ad_connect $sys_cpu_clk axi_ad9625_dma/s_axis_aclk
195+
ad_connect $sys_cpu_resetn $adc_offload_name/m_axis_aresetn
176196
ad_connect $sys_cpu_resetn axi_ad9625_dma/m_dest_axi_aresetn
177-
ad_connect axi_ad9625_fifo/dma_wr axi_ad9625_dma/s_axis_valid
178-
ad_connect axi_ad9625_fifo/dma_wdata axi_ad9625_dma/s_axis_data
179-
ad_connect axi_ad9625_fifo/dma_wready axi_ad9625_dma/s_axis_ready
180-
ad_connect axi_ad9625_fifo/dma_xfer_req axi_ad9625_dma/s_axis_xfer_req
181-
ad_connect axi_ad9625_core/adc_dovf axi_ad9625_fifo/adc_wovf
197+
198+
ad_connect $adc_offload_name/m_axis axi_ad9625_dma/s_axis
199+
ad_connect $adc_offload_name/init_req axi_ad9625_dma/s_axis_xfer_req
182200

183201
# interconnect (cpu)
184202

185203
ad_cpu_interconnect 0x44A60000 axi_ad9162_xcvr
186204
ad_cpu_interconnect 0x44A00000 axi_ad9162_core
187205
ad_cpu_interconnect 0x44A90000 axi_ad9162_jesd
188206
ad_cpu_interconnect 0x7c420000 axi_ad9162_dma
207+
ad_cpu_interconnect 0x7c430000 $dac_offload_name
189208
ad_cpu_interconnect 0x44A50000 axi_ad9625_xcvr
190209
ad_cpu_interconnect 0x44A10000 axi_ad9625_core
191210
ad_cpu_interconnect 0x44AA0000 axi_ad9625_jesd
192211
ad_cpu_interconnect 0x7c400000 axi_ad9625_dma
212+
ad_cpu_interconnect 0x7c410000 $adc_offload_name
193213

194214
# gt uses hp3, and 100MHz clock for both DRP and AXI4
195215

projects/fmcomms11/zc706/Makefile

Lines changed: 7 additions & 5 deletions
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 - 2025 Analog Devices, Inc.
33
### SPDX short identifier: BSD-1-Clause
44
## Auto-generated, do not modify!
55
####################################################################################
@@ -12,8 +12,9 @@ M_DEPS += ../../scripts/adi_pd.tcl
1212
M_DEPS += ../../common/zc706/zc706_system_constr.xdc
1313
M_DEPS += ../../common/zc706/zc706_system_bd.tcl
1414
M_DEPS += ../../common/zc706/zc706_plddr3_constr.xdc
15-
M_DEPS += ../../common/zc706/zc706_plddr3_adcfifo_bd.tcl
16-
M_DEPS += ../../common/xilinx/dacfifo_bd.tcl
15+
M_DEPS += ../../common/zc706/zc706_plddr3_data_offload_bd.tcl
16+
M_DEPS += ../../common/xilinx/data_offload_bd.tcl
17+
M_DEPS += ../../../library/util_hbm/scripts/adi_util_hbm.tcl
1718
M_DEPS += ../../../library/jesd204/scripts/jesd204.tcl
1819
M_DEPS += ../../../library/common/ad_iobuf.v
1920

@@ -22,16 +23,17 @@ LIB_DEPS += axi_dmac
2223
LIB_DEPS += axi_hdmi_tx
2324
LIB_DEPS += axi_spdif_tx
2425
LIB_DEPS += axi_sysid
26+
LIB_DEPS += data_offload
2527
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_adc
2628
LIB_DEPS += jesd204/ad_ip_jesd204_tpl_dac
2729
LIB_DEPS += jesd204/axi_jesd204_rx
2830
LIB_DEPS += jesd204/axi_jesd204_tx
2931
LIB_DEPS += jesd204/jesd204_rx
3032
LIB_DEPS += jesd204/jesd204_tx
3133
LIB_DEPS += sysid_rom
32-
LIB_DEPS += util_dacfifo
34+
LIB_DEPS += util_do_ram
35+
LIB_DEPS += util_hbm
3336
LIB_DEPS += util_pack/util_upack2
34-
LIB_DEPS += xilinx/axi_adcfifo
3537
LIB_DEPS += xilinx/axi_adxcvr
3638
LIB_DEPS += xilinx/util_adxcvr
3739

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
###############################################################################
2-
## Copyright (C) 2019-2023 Analog Devices, Inc. All rights reserved.
2+
## Copyright (C) 2019-2025 Analog Devices, Inc. All rights reserved.
33
### SPDX short identifier: ADIBSD
44
###############################################################################
55

6-
# instantiate the base design
7-
source $ad_hdl_dir/projects/common/zc706/zc706_system_bd.tcl
8-
9-
# load all the FIFO related proccesses
10-
source $ad_hdl_dir/projects/common/zc706/zc706_plddr3_adcfifo_bd.tcl
11-
source $ad_hdl_dir/projects/common/xilinx/dacfifo_bd.tcl
12-
# NOTE: to swap the resources comment the two lines above, and uncomment to two line below
13-
#source $ad_hdl_dir/projects/common/zc706/zc706_plddr3_dacfifo_bd.tcl
14-
#source $ad_hdl_dir/projects/common/xilinx/adcfifo_bd.tcl
6+
## Offload attributes
7+
set adc_offload_type 1 ; ## PL_DDR
8+
set adc_offload_size [expr 1024*1024*1024] ; ## 1 GB
159

16-
# the DAC FIFO has a 500KSMP depth - 1 Mbyte
17-
set dac_fifo_address_width 15
10+
set dac_offload_type 0 ; ## BRAM
11+
set dac_offload_size [expr 1*1024*1024] ; ## 1 MB
1812

19-
# by default PLDDR is used (1 Gbyte), this varible should be ignored
20-
set adc_fifo_address_width 15
13+
set plddr_offload_axi_data_width 512
2114

15+
# instantiate the base design
16+
source $ad_hdl_dir/projects/common/zc706/zc706_system_bd.tcl
17+
source $ad_hdl_dir/projects/common/zc706/zc706_plddr3_data_offload_bd.tcl
2218
source ../common/fmcomms11_bd.tcl
2319
source $ad_hdl_dir/projects/scripts/adi_pd.tcl
2420

21+
ad_plddr_data_offload_create $adc_offload_name
22+
2523
#system ID
2624
ad_ip_parameter axi_sysid_0 CONFIG.ROM_ADDR_BITS 9
2725
ad_ip_parameter rom_sys_0 CONFIG.PATH_TO_FILE "$mem_init_sys_file_path/mem_init_sys.txt"
2826
ad_ip_parameter rom_sys_0 CONFIG.ROM_ADDR_BITS 9
2927

30-
set sys_cstring "DAC_FIFO_ADDR_WIDTH=$dac_fifo_address_width\
31-
ADC_FIFO_ADDR_WIDTH=$adc_fifo_address_width"
28+
set sys_cstring "DAC_OFFLOAD:TYPE=$dac_offload_type\
29+
SIZE=$dac_offload_size\
30+
ADC_OFFLOAD:TYPE=$adc_offload_type\
31+
SIZE=$adc_offload_size"
3232

3333
sysid_gen_sys_init_file $sys_cstring

projects/fmcomms11/zc706/system_top.v

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ***************************************************************************
22
// ***************************************************************************
3-
// Copyright (C) 2019-2023 Analog Devices, Inc. All rights reserved.
3+
// Copyright (C) 2019-2025 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
@@ -311,7 +311,6 @@ module system_top (
311311
.tx_data_7_p (tx_data_p[7]),
312312
.tx_ref_clk_0 (trx_ref_clk),
313313
.tx_sync_0 (tx_sync),
314-
.tx_sysref_0 (1'b0),
315-
.dac_fifo_bypass (gpio_o[60]));
314+
.tx_sysref_0 (1'b0));
316315

317316
endmodule

0 commit comments

Comments
 (0)