Tcl commands vary depending on the mode you use, and run scripts differ for each mode.
In Non-Project Mode, every operation and tool setting requires individual Tcl commands. This includes setting tool options, running implementation commands, generating reports, and writing design checkpoints. In Project Mode, wrapper commands manage synthesis, implementation, and reporting steps.
In Project Mode, you add sources using the add_files Tcl command for project management. You can copy files into the
project to store separate versions or reference them remotely. In Non-Project Mode, you
use read_verilog, read_vhdl, read_xdc, and read_* and related commands to read source files from their
current locations.
In Project Mode, the launch_runs command starts
tools with preconfigured run strategies and generates standard reports. This provides
consolidated implementation commands, standard reporting, use of run strategies, and run
status tracking. You can also run custom Tcl commands before or after each design step.
Vivado stores and manages run results automatically within the
project. In Non-Project Mode, you run individual commands, such as opt_design, place_design,
and route_design.
Many Tcl commands work in either mode, including reporting commands. Some
commands are specific to one mode and must not be mixed when creating scripts. For
example, in Project Mode, avoid base-level commands like synth_design, which are specific to Non-Project Mode. Using Non-Project
Mode commands in Project Mode prevents database updates and automatic report
generation.
The following figure shows the difference between Project Mode and Non-Project Mode Tcl commands.