117 lines
4.7 KiB
Tcl
117 lines
4.7 KiB
Tcl
# ip
|
|
|
|
source ../scripts/adi_env.tcl
|
|
source $ad_hdl_dir/library/scripts/adi_ip_xilinx.tcl
|
|
|
|
adi_ip_create axi_adrv9001
|
|
adi_ip_files axi_adrv9001 [list \
|
|
"$ad_hdl_dir/library/xilinx/common/ad_serdes_clk.v" \
|
|
"$ad_hdl_dir/library/xilinx/common/ad_mmcm_drp.v" \
|
|
"$ad_hdl_dir/library/xilinx/common/ad_serdes_in.v" \
|
|
"$ad_hdl_dir/library/xilinx/common/ad_serdes_out.v" \
|
|
"$ad_hdl_dir/library/xilinx/common/ad_mul.v" \
|
|
"$ad_hdl_dir/library/common/ad_dds_cordic_pipe.v" \
|
|
"$ad_hdl_dir/library/common/ad_dds_sine_cordic.v" \
|
|
"$ad_hdl_dir/library/common/ad_dds_sine.v" \
|
|
"$ad_hdl_dir/library/common/ad_dds_1.v" \
|
|
"$ad_hdl_dir/library/common/ad_dds_2.v" \
|
|
"$ad_hdl_dir/library/common/ad_dds.v" \
|
|
"$ad_hdl_dir/library/common/ad_datafmt.v" \
|
|
"$ad_hdl_dir/library/common/up_tdd_cntrl.v" \
|
|
"$ad_hdl_dir/library/common/ad_tdd_control.v" \
|
|
"$ad_hdl_dir/library/common/ad_addsub.v" \
|
|
"$ad_hdl_dir/library/common/ad_rst.v" \
|
|
"$ad_hdl_dir/library/common/up_xfer_cntrl.v" \
|
|
"$ad_hdl_dir/library/common/up_xfer_status.v" \
|
|
"$ad_hdl_dir/library/common/up_clock_mon.v" \
|
|
"$ad_hdl_dir/library/common/up_delay_cntrl.v" \
|
|
"$ad_hdl_dir/library/common/up_adc_common.v" \
|
|
"$ad_hdl_dir/library/common/up_adc_channel.v" \
|
|
"$ad_hdl_dir/library/common/up_dac_common.v" \
|
|
"$ad_hdl_dir/library/common/up_dac_channel.v" \
|
|
"$ad_hdl_dir/library/common/ad_pnmon.v" \
|
|
"$ad_hdl_dir/library/common/ad_pngen.v" \
|
|
"$ad_hdl_dir/library/common/up_axi.v" \
|
|
"$ad_hdl_dir/library/xilinx/common/up_xfer_cntrl_constr.xdc" \
|
|
"$ad_hdl_dir/library/xilinx/common/ad_rst_constr.xdc" \
|
|
"$ad_hdl_dir/library/xilinx/common/up_xfer_status_constr.xdc" \
|
|
"$ad_hdl_dir/library/xilinx/common/up_clock_mon_constr.xdc" \
|
|
"adrv9001_rx.v" \
|
|
"adrv9001_tx.v" \
|
|
"adrv9001_pack.v" \
|
|
"adrv9001_aligner4.v" \
|
|
"adrv9001_aligner8.v" \
|
|
"adrv9001_rx_link.v" \
|
|
"adrv9001_tx_link.v" \
|
|
"axi_adrv9001_rx.v" \
|
|
"axi_adrv9001_rx_channel.v" \
|
|
"axi_adrv9001_if.v" \
|
|
"axi_adrv9001_tx.v" \
|
|
"axi_adrv9001_tx_channel.v" \
|
|
"axi_adrv9001_core.v" \
|
|
"axi_adrv9001_constr.xdc" \
|
|
"axi_adrv9001_tdd.v" \
|
|
"axi_adrv9001.v" ]
|
|
|
|
adi_ip_properties axi_adrv9001
|
|
|
|
adi_init_bd_tcl
|
|
adi_ip_bd axi_adrv9001 "bd/bd.tcl"
|
|
|
|
adi_ip_add_core_dependencies { \
|
|
analog.com:user:util_cdc:1.0 \
|
|
}
|
|
|
|
set cc [ipx::current_core]
|
|
|
|
ipx::infer_bus_interface delay_clk xilinx.com:signal:clock_rtl:1.0 $cc
|
|
ipx::infer_bus_interface adc_1_clk xilinx.com:signal:clock_rtl:1.0 $cc
|
|
ipx::infer_bus_interface adc_2_clk xilinx.com:signal:clock_rtl:1.0 $cc
|
|
ipx::infer_bus_interface dac_1_clk xilinx.com:signal:clock_rtl:1.0 $cc
|
|
ipx::infer_bus_interface dac_2_clk xilinx.com:signal:clock_rtl:1.0 $cc
|
|
ipx::infer_bus_interface adc_1_rst xilinx.com:signal:reset_rtl:1.0 $cc
|
|
ipx::infer_bus_interface adc_2_rst xilinx.com:signal:reset_rtl:1.0 $cc
|
|
ipx::infer_bus_interface dac_1_rst xilinx.com:signal:reset_rtl:1.0 $cc
|
|
ipx::infer_bus_interface dac_2_rst xilinx.com:signal:reset_rtl:1.0 $cc
|
|
|
|
ipx::add_bus_parameter POLARITY [ipx::get_bus_interfaces adc_1_rst -of_objects $cc]
|
|
ipx::add_bus_parameter POLARITY [ipx::get_bus_interfaces adc_2_rst -of_objects $cc]
|
|
ipx::add_bus_parameter POLARITY [ipx::get_bus_interfaces dac_1_rst -of_objects $cc]
|
|
ipx::add_bus_parameter POLARITY [ipx::get_bus_interfaces dac_2_rst -of_objects $cc]
|
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.INDEPENDENT_1R1T_SUPPORT')) == 1 && spirit:decode(id('MODELPARAM_VALUE.DISABLE_TX2_SSI')) == 0} \
|
|
[ipx::get_ports dac_2* -of_objects $cc]
|
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.INDEPENDENT_1R1T_SUPPORT')) == 1 && spirit:decode(id('MODELPARAM_VALUE.DISABLE_RX2_SSI')) == 0} \
|
|
[ipx::get_ports adc_2* -of_objects $cc]
|
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.DISABLE_TX2_SSI')) == 0} \
|
|
[ipx::get_ports *tx2_* -of_objects $cc]
|
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.DISABLE_RX2_SSI')) == 0} \
|
|
[ipx::get_ports *rx2_* -of_objects $cc]
|
|
|
|
set_property driver_value 0 [ipx::get_ports *_sync_in* -of_objects $cc]
|
|
|
|
## Customize XGUI layout
|
|
|
|
set page0 [ipgui::get_pagespec -name "Page 0" -component $cc]
|
|
|
|
ipgui::add_param -name "EXT_SYNC" -component $cc -parent $page0
|
|
set_property -dict [list \
|
|
"display_name" "External sync" \
|
|
"tooltip" "NOTE: If active enables the external synchronization features for Rx and Tx. The external sync signals must be synchronous with to ref_clk" \
|
|
"widget" "checkBox" \
|
|
] [ipgui::get_guiparamspec -name "EXT_SYNC" -component $cc]
|
|
|
|
adi_set_ports_dependency "adc_sync_in" \
|
|
"(spirit:decode(id('MODELPARAM_VALUE.EXT_SYNC')) == 1)"
|
|
adi_set_ports_dependency "dac_sync_in" \
|
|
"(spirit:decode(id('MODELPARAM_VALUE.EXT_SYNC')) == 1)"
|
|
|
|
adi_add_auto_fpga_spec_params
|
|
ipx::create_xgui_files $cc
|
|
|
|
ipx::save_core $cc
|
|
|