@@ -32,7 +32,7 @@ set RX_SAMPLE_WIDTH 16 ; # N/NP
3232
3333set RX_SAMPLES_PER_CHANNEL [expr $RX_NUM_OF_LANES * 32 / ($RX_NUM_OF_CONVERTERS * $RX_SAMPLE_WIDTH )] ; # L * 32 / (M * N)
3434
35- set dac_fifo_name axi_adrv9026_dacfifo
35+ set dac_offload_name adrv9026_data_offload
3636set dac_data_width [expr 32*$TX_NUM_OF_LANES ]
3737set dac_dma_data_width 128
3838
@@ -47,10 +47,10 @@ if {$JESD_MODE == "8B10B"} {
4747}
4848
4949source $ad_hdl_dir /library/jesd204/scripts/jesd204.tcl
50+ source $ad_hdl_dir /projects/common/xilinx/data_offload_bd.tcl
5051
5152# adrv9026
5253
53- create_bd_port -dir I dac_fifo_bypass
5454create_bd_port -dir I core_clk
5555
5656# dac peripherals
@@ -90,7 +90,15 @@ ad_ip_parameter axi_adrv9026_tx_dma CONFIG.DMA_DATA_WIDTH_SRC 128
9090ad_ip_parameter axi_adrv9026_tx_dma CONFIG.FIFO_SIZE 32
9191ad_ip_parameter axi_adrv9026_tx_dma CONFIG.CACHE_COHERENT $CACHE_COHERENCY
9292
93- ad_dacfifo_create $dac_fifo_name $dac_data_width $dac_dma_data_width $dac_fifo_address_width
93+ ad_data_offload_create $dac_offload_name \
94+ 1 \
95+ $dac_offload_type \
96+ $dac_offload_size \
97+ $dac_dma_data_width \
98+ $dac_data_width
99+
100+ ad_ip_parameter $dac_offload_name /i_data_offload CONFIG.SYNC_EXT_ADD_INTERNAL_CDC 0
101+ ad_connect $dac_offload_name /sync_ext GND
94102
95103# adc peripherals
96104
@@ -191,23 +199,16 @@ for {set i 0} {$i < $TX_NUM_OF_CONVERTERS} {incr i} {
191199}
192200
193201ad_connect tx_adrv9026_tpl_core/dac_valid_0 util_adrv9026_tx_upack/fifo_rd_en
194- ad_connect core_clk axi_adrv9026_dacfifo/dac_clk
195- ad_connect core_clk_rstgen/peripheral_reset axi_adrv9026_dacfifo/dac_rst
196-
197- ad_connect util_adrv9026_tx_upack/s_axis_valid VCC
198- ad_connect util_adrv9026_tx_upack/s_axis_ready axi_adrv9026_dacfifo/dac_valid
199- ad_connect util_adrv9026_tx_upack/s_axis_data axi_adrv9026_dacfifo/dac_data
200-
201- ad_connect core_clk axi_adrv9026_dacfifo/dma_clk
202- ad_connect core_clk_rstgen/peripheral_reset axi_adrv9026_dacfifo/dma_rst
203- ad_connect core_clk axi_adrv9026_tx_dma/m_axis_aclk
204- ad_connect axi_adrv9026_dacfifo/dma_valid axi_adrv9026_tx_dma/m_axis_valid
205- ad_connect axi_adrv9026_dacfifo/dma_data axi_adrv9026_tx_dma/m_axis_data
206- ad_connect axi_adrv9026_dacfifo/dma_ready axi_adrv9026_tx_dma/m_axis_ready
207- ad_connect axi_adrv9026_dacfifo/dma_xfer_req axi_adrv9026_tx_dma/m_axis_xfer_req
208- ad_connect axi_adrv9026_dacfifo/dma_xfer_last axi_adrv9026_tx_dma/m_axis_last
209- ad_connect axi_adrv9026_dacfifo/dac_dunf tx_adrv9026_tpl_core/dac_dunf
210- ad_connect axi_adrv9026_dacfifo/bypass dac_fifo_bypass
202+ ad_connect core_clk $dac_offload_name /m_axis_aclk
203+ ad_connect core_clk_rstgen/peripheral_aresetn $dac_offload_name /m_axis_aresetn
204+ ad_connect util_adrv9026_tx_upack/s_axis $dac_offload_name /m_axis
205+
206+ ad_connect core_clk $dac_offload_name /s_axis_aclk
207+ ad_connect core_clk_rstgen/peripheral_aresetn $dac_offload_name /s_axis_aresetn
208+ ad_connect core_clk axi_adrv9026_tx_dma/m_axis_aclk
209+ ad_connect $dac_offload_name /s_axis axi_adrv9026_tx_dma/m_axis
210+ ad_connect $dac_offload_name /init_req axi_adrv9026_tx_dma/m_axis_xfer_req
211+ ad_connect tx_adrv9026_tpl_core/dac_dunf util_adrv9026_tx_upack/fifo_rd_underflow
211212ad_connect core_clk_rstgen/peripheral_aresetn axi_adrv9026_tx_dma/m_src_axi_aresetn
212213
213214# connections (adc)
@@ -240,6 +241,7 @@ ad_cpu_interconnect 0x44A60000 axi_adrv9026_rx_xcvr
240241ad_cpu_interconnect 0x44A80000 axi_adrv9026_tx_xcvr
241242ad_cpu_interconnect 0x44A90000 axi_adrv9026_tx_jesd
242243ad_cpu_interconnect 0x7c420000 axi_adrv9026_tx_dma
244+ ad_cpu_interconnect 0x7c430000 $dac_offload_name
243245ad_cpu_interconnect 0x44AA0000 axi_adrv9026_rx_jesd
244246ad_cpu_interconnect 0x7c400000 axi_adrv9026_rx_dma
245247
0 commit comments