2023-07-06 12:08:22 +00:00
|
|
|
###############################################################################
|
|
|
|
## Copyright (C) 2015-2023 Analog Devices, Inc. All rights reserved.
|
|
|
|
### SPDX short identifier: ADIBSD
|
|
|
|
###############################################################################
|
2015-11-03 19:07:55 +00:00
|
|
|
|
2023-07-06 12:08:22 +00:00
|
|
|
# ip
|
2022-07-12 11:06:15 +00:00
|
|
|
source ../../scripts/adi_env.tcl
|
2018-08-14 09:59:39 +00:00
|
|
|
source $ad_hdl_dir/library/scripts/adi_ip_xilinx.tcl
|
2015-11-03 19:07:55 +00:00
|
|
|
|
|
|
|
adi_ip_create axi_gpreg
|
|
|
|
adi_ip_files axi_gpreg [list \
|
|
|
|
"$ad_hdl_dir/library/common/ad_rst.v" \
|
|
|
|
"$ad_hdl_dir/library/common/up_clock_mon.v" \
|
|
|
|
"$ad_hdl_dir/library/common/up_axi.v" \
|
2018-07-20 09:10:41 +00:00
|
|
|
"$ad_hdl_dir/library/xilinx/common/ad_rst_constr.xdc" \
|
2015-11-03 19:07:55 +00:00
|
|
|
"axi_gpreg_io.v" \
|
2020-09-17 11:12:09 +00:00
|
|
|
"axi_gpreg_constr.ttcl" \
|
2015-11-03 19:07:55 +00:00
|
|
|
"axi_gpreg_clock_mon.v" \
|
|
|
|
"axi_gpreg.v" ]
|
2022-05-17 11:46:30 +00:00
|
|
|
|
|
|
|
set_property FILE_TYPE SystemVerilog [get_files "axi_gpreg.v"]
|
2015-11-03 19:07:55 +00:00
|
|
|
|
|
|
|
adi_ip_properties axi_gpreg
|
2020-09-17 11:12:09 +00:00
|
|
|
adi_ip_ttcl axi_gpreg "axi_gpreg_constr.ttcl"
|
2015-11-03 19:07:55 +00:00
|
|
|
|
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 0} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_0 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 1} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_1 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 2} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_2 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 3} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_3 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 4} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_4 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 5} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_5 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 6} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_6 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_IO')) > 7} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports up_gp_*_7 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
|
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 0} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_0 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 1} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_1 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 2} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_2 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 3} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_3 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 4} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_4 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 5} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_5 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 6} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_6 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.NUM_OF_CLK_MONS')) > 7} \
|
2017-04-06 09:36:47 +00:00
|
|
|
[ipx::get_ports d_clk_7 -of_objects [ipx::current_core]]
|
2015-11-03 19:07:55 +00:00
|
|
|
|
|
|
|
set_property driver_value 0 [ipx::get_ports -filter "direction==in" -of_objects [ipx::current_core]]
|
|
|
|
|
|
|
|
ipx::save_core [ipx::current_core]
|
|
|
|
|