11
11
#
12
12
13
13
source $ad_hdl_dir /library/jesd204/scripts/jesd204.tcl
14
+ source $ad_hdl_dir /projects/common/xilinx/data_offload_bd.tcl
14
15
15
16
# TX parameters
16
17
set TX_NUM_OF_LANES $ad_project_params(TX_JESD_L) ; # L
@@ -21,7 +22,7 @@ set TX_SAMPLE_WIDTH 16 ; # N/NP
21
22
set TX_SAMPLES_PER_CHANNEL [expr $TX_NUM_OF_LANES * 32 / \
22
23
($TX_NUM_OF_CONVERTERS * $TX_SAMPLE_WIDTH )] ; # L * 32 / (M * N)
23
24
24
- set dac_fifo_name axi_ad9152_fifo
25
+ set dac_offload_name ad9152_data_offload
25
26
set dac_data_width [expr $TX_SAMPLE_WIDTH * $TX_NUM_OF_CONVERTERS * $TX_SAMPLES_PER_CHANNEL ]
26
27
27
28
# RX parameters
@@ -33,7 +34,7 @@ set RX_SAMPLE_WIDTH 16 ; # N/NP
33
34
set RX_SAMPLES_PER_CHANNEL [expr $RX_NUM_OF_LANES * 32 / \
34
35
($RX_NUM_OF_CONVERTERS * $RX_SAMPLE_WIDTH )] ; # L * 32 / (M * N)
35
36
36
- set adc_fifo_name axi_ad9680_fifo
37
+ set adc_offload_name ad9680_data_offload
37
38
set adc_data_width [expr $RX_SAMPLE_WIDTH * $RX_NUM_OF_CONVERTERS * $RX_SAMPLES_PER_CHANNEL ]
38
39
39
40
set MAX_TX_NUM_OF_LANES 4
@@ -72,7 +73,16 @@ ad_ip_parameter axi_ad9152_dma CONFIG.DMA_DATA_WIDTH_SRC 128
72
73
ad_ip_parameter axi_ad9152_dma CONFIG.DMA_DATA_WIDTH_DEST $dac_data_width
73
74
ad_ip_parameter axi_ad9152_dma CONFIG.CACHE_COHERENT $CACHE_COHERENCY
74
75
75
- ad_dacfifo_create $dac_fifo_name $dac_data_width $dac_data_width $dac_fifo_address_width
76
+ ad_data_offload_create $dac_offload_name \
77
+ 1 \
78
+ $dac_offload_type \
79
+ $dac_offload_size \
80
+ $dac_data_width \
81
+ $dac_data_width \
82
+ $plddr_offload_axi_data_width
83
+
84
+ ad_ip_parameter $dac_offload_name /i_data_offload CONFIG.SYNC_EXT_ADD_INTERNAL_CDC 0
85
+ ad_connect $dac_offload_name /sync_ext GND
76
86
77
87
# adc peripherals
78
88
@@ -111,7 +121,16 @@ ad_ip_parameter axi_ad9680_dma CONFIG.DMA_DATA_WIDTH_DEST 64
111
121
ad_ip_parameter axi_ad9680_dma CONFIG.CACHE_COHERENT $CACHE_COHERENCY
112
122
113
123
if {$sys_zynq == 0 || $sys_zynq == 1} {
114
- ad_adcfifo_create $adc_fifo_name $adc_data_width $adc_data_width $adc_fifo_address_width
124
+ ad_data_offload_create $adc_offload_name \
125
+ 0 \
126
+ $adc_offload_type \
127
+ $adc_offload_size \
128
+ $adc_data_width \
129
+ $adc_data_width \
130
+ $plddr_offload_axi_data_width
131
+
132
+ ad_ip_parameter $adc_offload_name /i_data_offload CONFIG.SYNC_EXT_ADD_INTERNAL_CDC 0
133
+ ad_connect $adc_offload_name /sync_ext GND
115
134
}
116
135
117
136
# shared transceiver core
@@ -155,26 +174,18 @@ for {set i 0} {$i < $TX_NUM_OF_CONVERTERS} {incr i} {
155
174
}
156
175
157
176
if {$sys_zynq == 0 || $sys_zynq == 1} {
158
- ad_connect $sys_dma_clk axi_ad9152_fifo/dma_clk
159
- ad_connect $sys_dma_reset axi_ad9152_fifo/dma_rst
177
+ ad_connect $sys_dma_clk $dac_offload_name /s_axis_aclk
178
+ ad_connect $sys_dma_resetn $dac_offload_name /s_axis_aresetn
160
179
ad_connect $sys_dma_clk axi_ad9152_dma/m_axis_aclk
161
180
ad_connect $sys_dma_resetn axi_ad9152_dma/m_src_axi_aresetn
162
- ad_connect axi_ad9152_fifo/bypass GND
163
181
}
164
- ad_connect util_daq3_xcvr/tx_out_clk_0 axi_ad9152_fifo/dac_clk
165
- ad_connect axi_ad9152_jesd_rstgen/peripheral_reset axi_ad9152_fifo/dac_rst
166
-
167
- # TODO: Add streaming AXI interface for DAC FIFO
168
- ad_connect axi_ad9152_upack/s_axis_valid VCC
169
- ad_connect axi_ad9152_upack/s_axis_ready axi_ad9152_fifo/dac_valid
170
- ad_connect axi_ad9152_upack/s_axis_data axi_ad9152_fifo/dac_data
182
+ ad_connect util_daq3_xcvr/tx_out_clk_0 $dac_offload_name /m_axis_aclk
183
+ ad_connect axi_ad9152_jesd_rstgen/peripheral_aresetn $dac_offload_name /m_axis_aresetn
184
+ ad_connect axi_ad9152_upack/s_axis $dac_offload_name /m_axis
171
185
172
- ad_connect axi_ad9152_tpl_core/dac_dunf axi_ad9152_fifo/dac_dunf
173
- ad_connect axi_ad9152_fifo/dma_xfer_req axi_ad9152_dma/m_axis_xfer_req
174
- ad_connect axi_ad9152_fifo/dma_ready axi_ad9152_dma/m_axis_ready
175
- ad_connect axi_ad9152_fifo/dma_data axi_ad9152_dma/m_axis_data
176
- ad_connect axi_ad9152_fifo/dma_valid axi_ad9152_dma/m_axis_valid
177
- ad_connect axi_ad9152_fifo/dma_xfer_last axi_ad9152_dma/m_axis_last
186
+ ad_connect $dac_offload_name /s_axis axi_ad9152_dma/m_axis
187
+ ad_connect $dac_offload_name /init_req axi_ad9152_dma/m_axis_xfer_req
188
+ ad_connect axi_ad9152_tpl_core/dac_dunf axi_ad9152_upack/fifo_rd_underflow
178
189
179
190
# connections (adc)
180
191
@@ -185,23 +196,43 @@ ad_connect axi_ad9680_jesd/rx_data_tdata axi_ad9680_tpl_core/link_data
185
196
ad_connect axi_ad9680_jesd/rx_data_tvalid axi_ad9680_tpl_core/link_valid
186
197
ad_connect axi_ad9680_tpl_core/adc_valid_0 axi_ad9680_cpack/fifo_wr_en
187
198
199
+ ad_ip_instance xlconcat cpack_reset_sources
200
+ ad_ip_parameter cpack_reset_sources config.num_ports {1}
201
+ ad_connect axi_ad9680_jesd_rstgen/peripheral_reset cpack_reset_sources/in0
202
+
203
+ ad_ip_instance util_reduced_logic cpack_rst_logic
204
+ ad_ip_parameter cpack_rst_logic config.c_operation {or}
205
+ ad_ip_parameter cpack_rst_logic config.c_size {1}
206
+
188
207
if {$sys_zynq == 0 || $sys_zynq == 1} {
189
- ad_connect util_daq3_xcvr/rx_out_clk_0 axi_ad9680_fifo/adc_clk
190
- ad_connect axi_ad9680_jesd_rstgen/peripheral_reset axi_ad9680_fifo/adc_rst
191
- ad_connect axi_ad9680_cpack/packed_fifo_wr_en axi_ad9680_fifo/adc_wr
192
- ad_connect axi_ad9680_cpack/packed_fifo_wr_data axi_ad9680_fifo/adc_wdata
193
- ad_connect $sys_dma_clk axi_ad9680_fifo/dma_clk
208
+ ad_connect util_daq3_xcvr/rx_out_clk_0 $adc_offload_name /s_axis_aclk
209
+ ad_connect axi_ad9680_jesd_rstgen/peripheral_aresetn $adc_offload_name /s_axis_aresetn
210
+ ad_connect axi_ad9680_cpack/packed_fifo_wr_en $adc_offload_name /s_axis_tvalid
211
+ ad_connect axi_ad9680_cpack/packed_fifo_wr_data $adc_offload_name /s_axis_tdata
212
+ ad_connect $adc_offload_name /s_axis_tlast GND
213
+ ad_connect $adc_offload_name /s_axis_tkeep VCC
214
+ ad_connect $sys_dma_clk $adc_offload_name /m_axis_aclk
215
+ ad_connect $sys_dma_resetn $adc_offload_name /m_axis_aresetn
194
216
ad_connect $sys_dma_clk axi_ad9680_dma/s_axis_aclk
195
217
ad_connect $sys_dma_resetn axi_ad9680_dma/m_dest_axi_aresetn
196
- ad_connect axi_ad9680_fifo/dma_wr axi_ad9680_dma/s_axis_valid
197
- ad_connect axi_ad9680_fifo/dma_wdata axi_ad9680_dma/s_axis_data
198
- ad_connect axi_ad9680_fifo/dma_wready axi_ad9680_dma/s_axis_ready
199
- ad_connect axi_ad9680_fifo/dma_xfer_req axi_ad9680_dma/s_axis_xfer_req
200
- ad_connect axi_ad9680_tpl_core/adc_dovf axi_ad9680_fifo/adc_wovf
218
+ ad_connect $adc_offload_name /m_axis axi_ad9680_dma/s_axis
219
+ ad_connect $adc_offload_name /init_req axi_ad9680_dma/s_axis_xfer_req
220
+ ad_connect axi_ad9680_cpack/fifo_wr_overflow axi_ad9680_tpl_core/adc_dovf
221
+
222
+ ad_ip_instance util_vector_logic rx_do_rstout_logic
223
+ ad_ip_parameter rx_do_rstout_logic config.c_operation {not}
224
+ ad_ip_parameter rx_do_rstout_logic config.c_size {1}
225
+
226
+ ad_connect $adc_offload_name /s_axis_tready rx_do_rstout_logic/op1
227
+
228
+ ad_ip_parameter cpack_reset_sources config.num_ports {2}
229
+ ad_ip_parameter cpack_rst_logic config.c_size {2}
230
+ ad_connect rx_do_rstout_logic/res cpack_reset_sources/in1
201
231
}
202
232
203
233
ad_connect util_daq3_xcvr/rx_out_clk_0 axi_ad9680_cpack/clk
204
- ad_connect axi_ad9680_jesd_rstgen/peripheral_reset axi_ad9680_cpack/reset
234
+ ad_connect cpack_reset_sources/dout cpack_rst_logic/op1
235
+ ad_connect cpack_rst_logic/res axi_ad9680_cpack/reset
205
236
206
237
for {set i 0} {$i < $RX_NUM_OF_CONVERTERS } {incr i} {
207
238
ad_connect axi_ad9680_tpl_core/adc_enable_$i axi_ad9680_cpack/enable_$i
@@ -214,13 +245,15 @@ ad_cpu_interconnect 0x44A60000 axi_ad9152_xcvr
214
245
ad_cpu_interconnect 0x44A04000 axi_ad9152_tpl_core
215
246
ad_cpu_interconnect 0x44A90000 axi_ad9152_jesd
216
247
ad_cpu_interconnect 0x7c420000 axi_ad9152_dma
248
+ ad_cpu_interconnect 0x7c430000 $dac_offload_name
217
249
ad_cpu_interconnect 0x44A50000 axi_ad9680_xcvr
218
250
ad_cpu_interconnect 0x44A10000 axi_ad9680_tpl_core
219
251
ad_cpu_interconnect 0x44AA0000 axi_ad9680_jesd
220
252
ad_cpu_interconnect 0x7c400000 axi_ad9680_dma
221
253
222
-
223
254
if {$sys_zynq == 0 || $sys_zynq == 1} {
255
+ ad_cpu_interconnect 0x7c410000 $adc_offload_name
256
+
224
257
ad_mem_hp1_interconnect $sys_dma_clk sys_ps7/S_AXI_HP1
225
258
ad_mem_hp1_interconnect $sys_dma_clk axi_ad9152_dma/m_src_axi
226
259
ad_mem_hp2_interconnect $sys_dma_clk sys_ps7/S_AXI_HP2
0 commit comments