|
1 | 1 | ###############################################################################
|
2 |
| -## Copyright (C) 2019-2023 Analog Devices, Inc. All rights reserved. |
| 2 | +## Copyright (C) 2019-2025 Analog Devices, Inc. All rights reserved. |
3 | 3 | ### SPDX short identifier: ADIBSD
|
4 | 4 | ###############################################################################
|
5 | 5 |
|
@@ -143,3 +143,143 @@ if {$ad_project_params(JESD_MODE) == "64B66B"} {
|
143 | 143 | }
|
144 | 144 |
|
145 | 145 | }
|
| 146 | + |
| 147 | +ad_ip_parameter axi_ddr_cntrl CONFIG.C0_CLOCK_BOARD_INTERFACE default_250mhz_clk1 |
| 148 | +ad_ip_parameter axi_ddr_cntrl CONFIG.C0_DDR4_BOARD_INTERFACE ddr4_sdram_c1_062 |
| 149 | + |
| 150 | +if {$ad_project_params(CORUNDUM) == "1"} { |
| 151 | + |
| 152 | + set INPUT_CHANNELS $RX_NUM_OF_CONVERTERS |
| 153 | + set INPUT_SAMPLES_PER_CHANNEL $RX_SAMPLES_PER_CHANNEL |
| 154 | + set INPUT_SAMPLE_DATA_WIDTH $RX_DMA_SAMPLE_WIDTH |
| 155 | + |
| 156 | + set INPUT_WIDTH [expr $INPUT_CHANNELS*$INPUT_SAMPLES_PER_CHANNEL*$INPUT_SAMPLE_DATA_WIDTH] |
| 157 | + |
| 158 | + set OUTPUT_CHANNELS $TX_NUM_OF_CONVERTERS |
| 159 | + set OUTPUT_SAMPLES $TX_SAMPLES_PER_CHANNEL |
| 160 | + set OUTPUT_SAMPLE_WIDTH $TX_DMA_SAMPLE_WIDTH |
| 161 | + |
| 162 | + set OUTPUT_WIDTH [expr $OUTPUT_CHANNELS*$OUTPUT_SAMPLES*$OUTPUT_SAMPLE_WIDTH] |
| 163 | + |
| 164 | + set CPU MB |
| 165 | + |
| 166 | + source $ad_hdl_dir/library/corundum/scripts/corundum_vcu118_cfg.tcl |
| 167 | + set APP_ENABLE 0 |
| 168 | + source $ad_hdl_dir/library/corundum/scripts/corundum.tcl |
| 169 | + |
| 170 | + ad_ip_parameter axi_dp_interconnect CONFIG.NUM_CLKS 3 |
| 171 | + ad_connect axi_dp_interconnect/aclk2 sys_250m_clk |
| 172 | + |
| 173 | + ad_ip_parameter axi_ddr_cntrl CONFIG.ADDN_UI_CLKOUT3_FREQ_HZ 125 |
| 174 | + set_property name sys_125m_rstgen [get_bd_cells sys_500m_rstgen] |
| 175 | + |
| 176 | + ad_connect corundum_rstgen/slowest_sync_clk sys_250m_clk |
| 177 | + ad_connect corundum_rstgen/ext_reset_in axi_ddr_cntrl/c0_ddr4_ui_clk_sync_rst |
| 178 | + |
| 179 | + create_bd_intf_port -mode Master -vlnv analog.com:interface:if_qspi_rtl:1.0 qspi0 |
| 180 | + create_bd_intf_port -mode Master -vlnv analog.com:interface:if_qspi_rtl:1.0 qspi1 |
| 181 | + create_bd_intf_port -mode Master -vlnv analog.com:interface:if_qsfp_rtl:1.0 qsfp |
| 182 | + |
| 183 | + create_bd_port -dir O -from 0 -to 0 -type rst qsfp_rst |
| 184 | + create_bd_port -dir O fpga_boot |
| 185 | + create_bd_port -dir O -type clk qspi_clk |
| 186 | + create_bd_port -dir I -type rst ptp_rst |
| 187 | + set_property CONFIG.POLARITY ACTIVE_HIGH [get_bd_ports ptp_rst] |
| 188 | + create_bd_port -dir I -type clk qsfp_mgt_refclk |
| 189 | + create_bd_port -dir I -type clk qsfp_mgt_refclk_bufg |
| 190 | + |
| 191 | + create_bd_port -dir O -type clk clk_125mhz |
| 192 | + create_bd_port -dir O -type clk clk_250mhz |
| 193 | + |
| 194 | + ad_connect sys_500m_clk clk_125mhz |
| 195 | + ad_connect sys_250m_clk clk_250mhz |
| 196 | + |
| 197 | + ad_connect corundum_hierarchy/clk_125mhz clk_125mhz |
| 198 | + ad_connect corundum_hierarchy/clk_corundum sys_250m_clk |
| 199 | + |
| 200 | + ad_connect corundum_hierarchy/rst_125mhz sys_125m_rstgen/peripheral_reset |
| 201 | + |
| 202 | + ad_connect corundum_hierarchy/qspi0 qspi0 |
| 203 | + ad_connect corundum_hierarchy/qspi1 qspi1 |
| 204 | + ad_connect corundum_hierarchy/qsfp qsfp |
| 205 | + ad_connect corundum_hierarchy/qsfp_rst qsfp_rst |
| 206 | + ad_connect corundum_hierarchy/fpga_boot fpga_boot |
| 207 | + ad_connect corundum_hierarchy/qspi_clk qspi_clk |
| 208 | + ad_connect corundum_hierarchy/ptp_rst ptp_rst |
| 209 | + ad_connect corundum_hierarchy/qsfp_mgt_refclk qsfp_mgt_refclk |
| 210 | + ad_connect corundum_hierarchy/qsfp_mgt_refclk_bufg qsfp_mgt_refclk_bufg |
| 211 | + |
| 212 | + ad_cpu_interconnect 0x50000000 corundum_hierarchy s_axil_corundum |
| 213 | + ad_cpu_interconnect 0x52000000 corundum_gpio_reset |
| 214 | + |
| 215 | + ad_mem_hp1_interconnect sys_250m_clk corundum_hierarchy/m_axi |
| 216 | + |
| 217 | + ad_cpu_interrupt "ps-5" "mb-5" corundum_hierarchy/irq |
| 218 | + |
| 219 | + if {$APP_ENABLE == 1} { |
| 220 | + ad_cpu_interconnect 0x51000000 corundum_hierarchy s_axil_application |
| 221 | + |
| 222 | + ad_ip_instance util_cpack2 util_corundum_cpack [list \ |
| 223 | + NUM_OF_CHANNELS $INPUT_CHANNELS \ |
| 224 | + SAMPLES_PER_CHANNEL $INPUT_SAMPLES_PER_CHANNEL \ |
| 225 | + SAMPLE_DATA_WIDTH $INPUT_SAMPLE_DATA_WIDTH \ |
| 226 | + ] |
| 227 | + |
| 228 | + ad_connect util_corundum_cpack/clk rx_device_clk |
| 229 | + ad_connect util_corundum_cpack/fifo_wr_en rx_mxfe_tpl_core/adc_valid_0 |
| 230 | + for {set i 0} {$i<$INPUT_CHANNELS} {incr i} { |
| 231 | + ad_connect util_corundum_cpack/enable_${i} rx_mxfe_tpl_core/adc_enable_${i} |
| 232 | + ad_connect util_corundum_cpack/fifo_wr_data_${i} rx_mxfe_tpl_core/adc_data_${i} |
| 233 | + } |
| 234 | + |
| 235 | + ad_connect corundum_hierarchy/input_clk axi_mxfe_rx_jesd/device_clk |
| 236 | + ad_connect corundum_hierarchy/input_rstn rx_device_clk_rstgen/peripheral_aresetn |
| 237 | + |
| 238 | + ad_connect corundum_hierarchy/output_clk axi_mxfe_tx_jesd/device_clk |
| 239 | + ad_connect corundum_hierarchy/output_rstn tx_device_clk_rstgen/peripheral_aresetn |
| 240 | + |
| 241 | + ad_connect corundum_hierarchy/input_axis_tvalid util_corundum_cpack/packed_fifo_wr_en |
| 242 | + ad_connect corundum_hierarchy/input_axis_tdata util_corundum_cpack/packed_fifo_wr_data |
| 243 | + ad_connect corundum_hierarchy/input_axis_tready util_corundum_cpack/packed_fifo_wr_overflow |
| 244 | + |
| 245 | + ad_ip_instance util_reduced_logic cpack_rst_logic_corundum |
| 246 | + ad_ip_parameter cpack_rst_logic_corundum config.c_operation {or} |
| 247 | + ad_ip_parameter cpack_rst_logic_corundum config.c_size {4} |
| 248 | + |
| 249 | + ad_ip_instance util_vector_logic rx_do_rstout_logic_corundum |
| 250 | + ad_ip_parameter rx_do_rstout_logic_corundum config.c_operation {not} |
| 251 | + ad_ip_parameter rx_do_rstout_logic_corundum config.c_size {1} |
| 252 | + |
| 253 | + ad_ip_instance xlconcat cpack_reset_sources_corundum |
| 254 | + ad_ip_parameter cpack_reset_sources_corundum config.num_ports {4} |
| 255 | + |
| 256 | + ad_connect corundum_hierarchy/input_axis_tready rx_do_rstout_logic_corundum/Op1 |
| 257 | + |
| 258 | + ad_connect rx_device_clk_rstgen/peripheral_reset cpack_reset_sources_corundum/in0 |
| 259 | + ad_connect rx_mxfe_tpl_core/adc_tpl_core/adc_rst cpack_reset_sources_corundum/in1 |
| 260 | + ad_connect rx_do_rstout_logic_corundum/res cpack_reset_sources_corundum/in2 |
| 261 | + ad_connect corundum_hierarchy/input_packer_reset cpack_reset_sources_corundum/in3 |
| 262 | + |
| 263 | + ad_connect cpack_reset_sources_corundum/dout cpack_rst_logic_corundum/op1 |
| 264 | + ad_connect cpack_rst_logic_corundum/res util_corundum_cpack/reset |
| 265 | + |
| 266 | + ad_ip_instance xlconcat input_enable_concat_corundum |
| 267 | + ad_ip_parameter input_enable_concat_corundum config.num_ports $INPUT_CHANNELS |
| 268 | + |
| 269 | + for {set i 0} {$i<$INPUT_CHANNELS} {incr i} { |
| 270 | + ad_connect input_enable_concat_corundum/In${i} rx_mxfe_tpl_core/adc_enable_${i} |
| 271 | + } |
| 272 | + |
| 273 | + ad_connect input_enable_concat_corundum/dout corundum_hierarchy/input_enable |
| 274 | + |
| 275 | + ad_ip_instance xlconcat output_enable_concat_corundum |
| 276 | + ad_ip_parameter output_enable_concat_corundum config.num_ports $OUTPUT_CHANNELS |
| 277 | + |
| 278 | + for {set i 0} {$i<$OUTPUT_CHANNELS} {incr i} { |
| 279 | + ad_connect output_enable_concat_corundum/In${i} tx_mxfe_tpl_core/dac_enable_${i} |
| 280 | + } |
| 281 | + |
| 282 | + ad_connect output_enable_concat_corundum/dout corundum_hierarchy/output_enable |
| 283 | + } |
| 284 | + |
| 285 | +} |
0 commit comments