execute_flow (::quartus::flow)

The following table displays information for the execute_flow Tcl command:

Tcl Package and Version

Belongs to ::quartus::flow 1.1

Syntax execute_flow [-h | -help] [-long_help] [-analysis_and_elaboration] [-check_ios] [-check_netlist] [-compile] [-compile_and_simulate] [-dont_export_assignments] [-eco] [-eda_synthesis] [-export_database] [-finalize] [-generate_functional_sim_netlist] [-implement] [-import_database] [-incremental_compilation_export] [-incremental_compilation_import] [-recompile] [-signalprobe] [-vqm_writer]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-analysis_and_elaboration Option to run Analysis &Elaboration
-check_ios Option to run I/O assignment analysis
-check_netlist Option to run Check and Save Netlist
-compile Option to run a full compilation
-compile_and_simulate Option to run a full compilation followed by a simulation
-dont_export_assignments Option not to export assignments to file. By default, this command exports assignments before running command-line executables.
-eco Option to run a Fitter ECO compilation
-eda_synthesis Option to run EDA Synthesis
-export_database Option to export a version-compatible database
-finalize Option to run algorithms to prepare design for programming.
-generate_functional_sim_netlist Option to generate a functional simulation netlist
-implement Option to run compilation up to route stage and skipping all time intensive algorithms after.
-import_database Option to import a version-compatible database
-incremental_compilation_export Option to export a design partition into a Quartus Prime Exported Partition (QXP) file
-incremental_compilation_import Option to import one or more Quartus Prime Exported Partition (QXP) files into the design partitions of the current project
-recompile Option to run a Rapid Recompile
-signalprobe Option to run a Signal Probe compilation
-vqm_writer Option to run VQM Writer

Runs one or more of the command-line executables using one of the
predefined flows, such as "-compile" or "-signalprobe". You can run
only one flow at a time, so you must use only one option.

Some flows have limited device support or other limitations based on
the features used. See documentation for the features in question for

The "-export_database" and "-import_database" options use the value of
the VER_COMPATIBLE_DB_DIR assignment for the version-compatible
database files directory, defaulting to "export_db".

The "-incremental_compilation_export" option uses the value of the
INCREMENTAL_COMPILATION_EXPORT_FILE global assignment for the path of
the Quartus Prime Exported Partition (QXP) file to be created. The value
should specify the name of the partition to be exported. The value of
(which can either have value POST_SYNTH or POST_FIT) determines
whether post-synthesis or post-fitting results should be
exported. Finally, the value of the
whether routing should be exported when a post-fit netlist is

The "-incremental_compilation_import" option uses the following
partition assignments to determine the location of the QXP files, and
how importation should be performed, on a per-partition basis:


The "-vqm_writer" option uses the value of the
directory, defaulting to "atom_netlists".

All assignments are exported first automatically, as if you
called the "export_assignments" command first, unless the
-dont_export_assignments option is specified.

You must use the Tcl command "catch" to determine whether the
predefined flow ran successfully or not, as in the following example:

if {[catch {execute_flow -compile} result]} {
	puts "\nResult: $result\n"
	puts "ERROR: Compilation failed. See report files.\n"
} else {
	puts "\nINFO: Compilation was successful.\n"
Example Usage
# To run quartus_map, quartus_fit, quartus_sta, quartus_asm
# or other executables based on options. (Refer to "Using 
# Compilation Flows," "Compiling Designs," and "Specifying 
# Compiler Settings" in Quartus Prime online Help for more 
# information.)
execute_flow -compile 

# To determine if compilation was successful or not
# and print out a personalized message.
if {[catch {execute_flow -compile} result]} {
	puts "\nResult: $result\n"
	puts "ERROR: Compilation failed. See report files.\n"
} else {
	puts "\nINFO: Compilation was successful.\n"

# To perform a full compilation followed by a simulation
execute_flow -compile_and_simulate 		
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: Can't run multiple flows simultaneously. Wait for current flow to complete.
TCL_ERROR 1 ERROR: Flow doesn't exist: <string>. Make sure the specified flow exists.
TCL_ERROR 1 ERROR: Only one flow option is allowed. Only one flow can be run for a single command call. If multiple flows are required, use multiple commands.
TCL_ERROR 1 ERROR: Can't find active revision. Make sure there is an open, active revision name. Use the -revision option of project_open, project_new, or use set_current_revision.
TCL_ERROR 1 ERROR: No project is currently open. Open an existing project or create a new project.
TCL_ERROR 1 ERROR: Error(s) found while running an executable. See report file(s) for error message(s). Message log indicates which executable was run last.
TCL_ERROR 1 ERROR: Option -<string> is illegal in the Quartus Prime User Interface. Specify a different option or use a similar command from the Processing menu.
TCL_ERROR 1 ERROR: At least one option is required. Specify at least one option.