Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1489474
implemented scripts/auto_timing_fix.tcl
phlfm Sep 10, 2025
87f8044
scripts/adi_project_xilinx.tcl: added ADI_POST_ROUTE_SCRIPT flag
phlfm Sep 10, 2025
beda6b0
scripts/adi_project_xilinx.tcl: added documentation for run flags
phlfm Sep 10, 2025
f2d6cf0
projects/fmcomms2: auto timing fix added as post route script
phlfm Sep 10, 2025
c485f42
projects/fmcomms2: change strategy to Congestion_SpreadLogic_high
phlfm Sep 10, 2025
ebdd90f
projects/fmcomms2: refactor system_project.tcl as Factory Method
phlfm Sep 10, 2025
711ecfb
projects/ad9081_fmca_ebz/vcu118: auto timing fix added as post route …
phlfm Sep 10, 2025
e96efa8
projects/ad9081_fmca_ebz/vcu118: change strategy to Congestion_Spread…
phlfm Sep 10, 2025
2cc0018
projects/fmcomms2: update copyright header
phlfm Sep 10, 2025
d9f795f
move build docs from adi_project_xilinx.tcl to build_hdl.rst
phlfm Sep 19, 2025
dcd4b10
projects/scripts/adi_project_xilinx.tcl: fixed typo
phlfm Sep 19, 2025
dbddf29
projects/scripts/adi_project_xilinx.tcl: removed redundant elsif
phlfm Sep 19, 2025
19827c5
scripts/auto_timing_fix.tcl: fixed typo
phlfm Sep 19, 2025
ba61f00
projects/fmcomms5: added ATF as post-route script
phlfm Sep 25, 2025
8c4ef13
projects/fmcomms5: refactor system_project.tcl as Factory Method
phlfm Sep 25, 2025
4d9f047
scripts/auto_timing_fix.tcl: removed checkpoint for each iteration
phlfm Sep 25, 2025
7a59b76
projects/fmcomms5: change strategy to Congestion_SpreadLogic_high
phlfm Sep 25, 2025
175a371
projects/daq2: refactor system_project.tcl as Factory Method
phlfm Sep 25, 2025
73d1d5d
projects/daq2: auto timing fix added as post route script
phlfm Sep 25, 2025
0c62f70
projects/daq2: removing trailing ws from system_project.tcl
phlfm Sep 25, 2025
734c73a
projects/daq2: change strategy to Congestion_SpreadLogic_high
phlfm Sep 25, 2025
ac0b807
projects/daq2: updating copyright header
phlfm Sep 25, 2025
7fed80d
projects/fmcomms5: updating copyright header
phlfm Sep 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion docs/user_guide/build_hdl.rst
Original file line number Diff line number Diff line change
Expand Up @@ -576,9 +576,37 @@ Running the command below will create a folder named **LVDSCMOSN1**.

make LVDS_CMOS_N=1

Enabling Out-of-Context synthesis
Available build flags and parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Below are some of the available parameters and system variables that can be used
when building a project:

- **ADI_EXTRACT_PORTS**: if set, extracts port properties from a predefined list
of IPs into 'ports_properties.txt'.
- **ADI_GENERATE_BIN**: if set, generates a binary bitstream file (.bin)
in addition to the .xsa hardware platform.
- **ADI_GENERATE_UTILIZATION**: if set, generates CSV and log files detailing
resource utilization for the design and specific IPs.
- **ADI_GENERATE_XPA**: if set, runs a Xilinx Power Analysis (XPA) and generates
a summary report.
- **ADI_MAX_OOC_JOBS**: specifies the number of parallel jobs to use for
Out-of-Context (OOC) synthesis.
- **ADI_MAX_THREADS**: specifies the maximum number of threads for Vivado
operations. Default value is 8.
- **ADI_NO_BITSTREAM_COMPRESSION**: if set, disables compression of the final
bitstream file.
- **ADI_POST_ROUTE_SCRIPT**: specifies the path to a Tcl script to be executed
after the routing design step.
- **ADI_POWER_OPTIMIZATION**: if set to 1, enables power optimization during the
implementation run.
- **ADI_PROJECT_DIR**: specifies a base directory for output files such as logs
and reports.
- **ADI_SKIP_SYNTHESIS**: if set, the entire procedure will exit before starting
synthesis.
- **ADI_USE_OOC_SYNTHESIS**: if set to 1, launches synthesis for OOC IP modules
in parallel.

You can opt in for out-of-context synthesis during the build by defining
the ``ADI_USE_OOC_SYNTHESIS`` system variable. By setting the
``ADI_MAX_OOC_JOBS`` system variable you can adjust the number of
Expand Down
3 changes: 3 additions & 0 deletions projects/ad9081_fmca_ebz/vcu118/system_project.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]

# get_env_param retrieves parameter value from the environment if exists,
# other case use the default value
Expand Down Expand Up @@ -95,4 +96,6 @@ if {$ADI_USE_OOC_SYNTHESIS == 1} {
set_property used_in_synthesis false [get_files timing_constr.xdc]
}

set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run ad9081_fmca_ebz_vcu118
19 changes: 11 additions & 8 deletions projects/daq2/kcu105/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
###############################################################################
## Copyright (C) 2014-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2014-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME kcu105

# get_env_param retrieves parameter value from the environment if exists,
# other case use the default value
#
# Use over-writable parameters from the environment.
#
# e.g.
# make RX_JESD_L=4 RX_JESD_M=2 TX_JESD_L=4 TX_JESD_M=2
# make RX_JESD_L=4 RX_JESD_M=2 TX_JESD_L=4 TX_JESD_M=2

# Parameter description:
# [RX/TX]_JESD_M : Number of converters per link
# [RX/TX]_JESD_L : Number of lanes per link
# [RX/TX]_JESD_S : Number of samples per frame

adi_project daq2_kcu105 0 [list \
adi_project daq2_${BOARD_NAME} 0 [list \
RX_JESD_M [get_env_param RX_JESD_M 2 ] \
RX_JESD_L [get_env_param RX_JESD_L 4 ] \
RX_JESD_S [get_env_param RX_JESD_S 1 ] \
Expand All @@ -29,14 +31,15 @@ adi_project daq2_kcu105 0 [list \
TX_JESD_S [get_env_param TX_JESD_S 1 ] \
]

adi_project_files daq2_kcu105 [list \
adi_project_files daq2_${BOARD_NAME} [list \
"../common/daq2_spi.v" \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/kcu105/kcu105_system_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

## To improve timing in DDR4 MIG
set_property strategy Performance_RefinePlacement [get_runs impl_1]
## daq2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run daq2_kcu105
adi_project_run daq2_${BOARD_NAME}
23 changes: 12 additions & 11 deletions projects/daq2/zc706/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
###############################################################################
## Copyright (C) 2014-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2014-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME zc706

# get_env_param retrieves parameter value from the environment if exists,
# other case use the default value
#
# Use over-writable parameters from the environment.
#
# e.g.
# make RX_JESD_L=4 RX_JESD_M=2 TX_JESD_L=4 TX_JESD_M=2
# make RX_JESD_L=4 RX_JESD_M=2 TX_JESD_L=4 TX_JESD_M=2

# Parameter description:
# [RX/TX]_JESD_M : Number of converters per link
# [RX/TX]_JESD_L : Number of lanes per link
# [RX/TX]_JESD_S : Number of samples per frame

adi_project daq2_zc706 0 [list \
adi_project daq2_${BOARD_NAME} 0 [list \
RX_JESD_M [get_env_param RX_JESD_M 2 ] \
RX_JESD_L [get_env_param RX_JESD_L 4 ] \
RX_JESD_S [get_env_param RX_JESD_S 1 ] \
Expand All @@ -29,17 +31,16 @@ adi_project daq2_zc706 0 [list \
TX_JESD_S [get_env_param TX_JESD_S 1 ] \
]

adi_project_files daq2_zc706 [list \
adi_project_files daq2_${BOARD_NAME} [list \
"../common/daq2_spi.v" \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/zc706/zc706_plddr3_constr.xdc" \
"$ad_hdl_dir/projects/common/zc706/zc706_system_constr.xdc" ]

adi_project_run daq2_zc706

## To improve timing in the axi_ad9680_offload component
set_property strategy Performance_Retiming [get_runs impl_1]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_plddr3_constr.xdc" \
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

## daq2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run daq2_${BOARD_NAME}
19 changes: 11 additions & 8 deletions projects/daq2/zcu102/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
###############################################################################
## Copyright (C) 2016-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2016-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME zcu102

# get_env_param retrieves parameter value from the environment if exists,
# other case use the default value
#
# Use over-writable parameters from the environment.
#
# e.g.
# make RX_JESD_L=4 RX_JESD_M=2 TX_JESD_L=4 TX_JESD_M=2
# make RX_JESD_L=4 RX_JESD_M=2 TX_JESD_L=4 TX_JESD_M=2

# Parameter description:
# [RX/TX]_JESD_M : Number of converters per link
# [RX/TX]_JESD_L : Number of lanes per link
# [RX/TX]_JESD_S : Number of samples per frame

adi_project daq2_zcu102 0 [list \
adi_project daq2_${BOARD_NAME} 0 [list \
RX_JESD_M [get_env_param RX_JESD_M 2 ] \
RX_JESD_L [get_env_param RX_JESD_L 4 ] \
RX_JESD_S [get_env_param RX_JESD_S 1 ] \
Expand All @@ -29,14 +31,15 @@ adi_project daq2_zcu102 0 [list \
TX_JESD_S [get_env_param TX_JESD_S 1 ] \
]

adi_project_files daq2_zcu102 [list \
adi_project_files daq2_${BOARD_NAME} [list \
"../common/daq2_spi.v" \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/zcu102/zcu102_system_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

adi_project_run daq2_zcu102
## daq2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

## To improve timing in the axi_ad9680_offload component
set_property strategy Performance_Retiming [get_runs impl_1]
adi_project_run daq2_${BOARD_NAME}
18 changes: 10 additions & 8 deletions projects/fmcomms2/kcu105/system_project.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,20 @@
source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME kcu105

adi_project fmcomms2_kcu105
adi_project_files fmcomms2_kcu105 [list \
adi_project fmcomms2_${BOARD_NAME}
adi_project_files fmcomms2_${BOARD_NAME} [list \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/kcu105/kcu105_system_constr.xdc" \
"$ad_hdl_dir/projects/common/kcu105/kcu105_system_lutram_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" \
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_lutram_constr.xdc" ]

## To improve timing in DDR4 MIG
set_property strategy Performance_RefinePlacement [get_runs impl_1]
set_property STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE ExploreWithAggressiveHoldFix [get_runs impl_1]
## fmcomms2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run fmcomms2_kcu105
adi_project_run fmcomms2_${BOARD_NAME}
source $ad_hdl_dir/library/axi_ad9361/axi_ad9361_delay.tcl
16 changes: 10 additions & 6 deletions projects/fmcomms2/zc702/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
###############################################################################
## Copyright (C) 2014-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2014-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME zc702

adi_project fmcomms2_zc702
adi_project_files fmcomms2_zc702 [list \
adi_project fmcomms2_${BOARD_NAME}
adi_project_files fmcomms2_${BOARD_NAME} [list \
"system_top.v" \
"system_constr.xdc" \
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/zc702/zc702_system_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

set_property strategy Performance_Explore [get_runs impl_1]
## fmcomms2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run fmcomms2_zc702
adi_project_run fmcomms2_${BOARD_NAME}
source $ad_hdl_dir/library/axi_ad9361/axi_ad9361_delay.tcl

16 changes: 11 additions & 5 deletions projects/fmcomms2/zc706/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
###############################################################################
## Copyright (C) 2014-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2014-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME zc706

adi_project fmcomms2_zc706
adi_project_files fmcomms2_zc706 [list \
adi_project fmcomms2_${BOARD_NAME}
adi_project_files fmcomms2_${BOARD_NAME} [list \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/zc706/zc706_system_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

adi_project_run fmcomms2_zc706
## fmcomms2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run fmcomms2_${BOARD_NAME}
source $ad_hdl_dir/library/axi_ad9361/axi_ad9361_delay.tcl

16 changes: 11 additions & 5 deletions projects/fmcomms2/zcu102/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
###############################################################################
## Copyright (C) 2016-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2014-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME zcu102

adi_project fmcomms2_zcu102
adi_project_files fmcomms2_zcu102 [list \
adi_project fmcomms2_${BOARD_NAME}
adi_project_files fmcomms2_${BOARD_NAME} [list \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/zcu102/zcu102_system_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

adi_project_run fmcomms2_zcu102
## fmcomms2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run fmcomms2_${BOARD_NAME}
source $ad_hdl_dir/library/axi_ad9361/axi_ad9361_delay.tcl

17 changes: 11 additions & 6 deletions projects/fmcomms2/zed/system_project.tcl
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
###############################################################################
## Copyright (C) 2014-2023 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2014-2023, 2025 Analog Devices, Inc. All rights reserved.
### SPDX short identifier: ADIBSD
###############################################################################

source ../../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project_xilinx.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set ADI_POST_ROUTE_SCRIPT [file normalize $ad_hdl_dir/scripts/auto_timing_fix.tcl]
set BOARD_NAME zed

adi_project fmcomms2_zed
adi_project_files fmcomms2_zed [list \
adi_project fmcomms2_${BOARD_NAME}
adi_project_files fmcomms2_${BOARD_NAME} [list \
"system_top.v" \
"system_constr.xdc"\
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"$ad_hdl_dir/projects/common/zed/zed_system_constr.xdc" ]
"$ad_hdl_dir/projects/common/${BOARD_NAME}/${BOARD_NAME}_system_constr.xdc" ]

adi_project_run fmcomms2_zed
source $ad_hdl_dir/library/axi_ad9361/axi_ad9361_delay.tcl
## fmcomms2 design is presenting hold time violations on some paths
## set the strategy to spread logic and help with hold time fixes
set_property strategy Congestion_SpreadLogic_high [get_runs impl_1]

adi_project_run fmcomms2_${BOARD_NAME}
source $ad_hdl_dir/library/axi_ad9361/axi_ad9361_delay.tcl
Loading