@@ -16,6 +16,7 @@ set MAX_RX_OS_NUM_OF_LANES 2
16
16
set DATAPATH_WIDTH 4
17
17
source $ad_hdl_dir /library/jesd204/scripts/jesd204.tcl
18
18
source $ad_hdl_dir /projects/common/xilinx/adi_fir_filter_bd.tcl
19
+ source $ad_hdl_dir /projects/common/xilinx/data_offload_bd.tcl
19
20
20
21
# TX parameters
21
22
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)] \
53
54
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 ]
54
55
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 )]
55
56
56
- set dac_fifo_name axi_adrv9009_dacfifo
57
+ set dac_offload_name adrv9009_data_offload
57
58
set dac_data_width [expr $TX_SAMPLE_WIDTH * $TX_NUM_OF_CONVERTERS * $TX_SAMPLES_PER_CHANNEL ]
58
59
59
60
# adrv9009
60
61
61
62
create_bd_port -dir I ref_clk
62
63
63
- create_bd_port -dir I dac_fifo_bypass
64
64
create_bd_port -dir I adc_fir_filter_active
65
65
create_bd_port -dir I dac_fir_filter_active
66
66
@@ -110,7 +110,15 @@ ad_ip_parameter axi_adrv9009_tx_dma CONFIG.MAX_BYTES_PER_BURST 256
110
110
ad_ip_parameter axi_adrv9009_tx_dma CONFIG.AXI_SLICE_DEST true
111
111
ad_ip_parameter axi_adrv9009_tx_dma CONFIG.AXI_SLICE_SRC true
112
112
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
114
122
115
123
# adc peripherals
116
124
@@ -348,26 +356,19 @@ for {set i 0} {$i < $TX_NUM_OF_CONVERTERS} {incr i} {
348
356
349
357
ad_connect tx_fir_interpolator/active dac_fir_filter_active
350
358
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
358
362
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
361
365
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
369
366
ad_connect $sys_dma_resetn axi_adrv9009_tx_dma/m_src_axi_aresetn
370
367
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
+
371
372
# connections (adc)
372
373
373
374
if {$RX_OCTETS_PER_FRAME == 8} {
@@ -437,6 +438,7 @@ ad_cpu_interconnect 0x44A80000 axi_adrv9009_tx_xcvr
437
438
ad_cpu_interconnect 0x43C00000 axi_adrv9009_tx_clkgen
438
439
ad_cpu_interconnect 0x44A90000 axi_adrv9009_tx_jesd
439
440
ad_cpu_interconnect 0x7c420000 axi_adrv9009_tx_dma
441
+ ad_cpu_interconnect 0x7c430000 $dac_offload_name
440
442
ad_cpu_interconnect 0x44A60000 axi_adrv9009_rx_xcvr
441
443
ad_cpu_interconnect 0x43C10000 axi_adrv9009_rx_clkgen
442
444
ad_cpu_interconnect 0x44AA0000 axi_adrv9009_rx_jesd
0 commit comments