Tcl Hook scripts allow you to run custom Tcl scripts prior to (tcl.pre) and after (tcl.post) synthesis and implementation design runs, or any of the implementation steps. Whenever you launch a run, the Vivado tool uses a predefined Tcl script which executes a design flow based on the selected strategy. Tcl Hook scripts let you customize the standard flow, with pre-processors or post-processors, such as for generating custom reports. The Tcl Hook script must be a standard Tcl script.
Every step in the design flow has a pre- and post-hook capability. Common
examples are:
- Custom reports: timing, power, utilization, or any user-defined tcl report.
- Temporary parameters for workarounds.
- Over-constraining timing constraints for portions of the flow.
- Multiple iterations of stages (e.g. multiple calls to phys_opt_design).
- Modifications to netlist, constraint, or device programming.
Important: Relative paths within
the tcl.pre and tcl.post scripts are relative to the appropriate run directory of the
project they are applied to: <project>/<project.runs>/<run_name>. You can use the
DIRECTORY property of the current project or current run to define the relative paths in
your Tcl hook scripts:
get_property DIRECTORY [current_project]
get_property DIRECTORY [current_run]
For more information on defining Tcl Hook scripts, refer to the Vivado Design Suite User Guide: Using Tcl Scripting (UG894).