Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 12/13/2021

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents execute_flow (::quartus::flow)

The following table displays information for the execute_flow Tcl command:

Tcl Package and Version

Belongs to ::quartus::flow

Syntax execute_flow [-h | -help] [-long_help] [-analysis_and_elaboration] [-check_ios] [-check_netlist] [-compile] [-dont_export_assignments] [-eco <value> ] [-export_database] [-finalize] [-generate_functional_sim_netlist] [-implement] [-import_database] [-incremental_compilation_export] [-incremental_compilation_import] [-quick_elaboration] [-signalprobe]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-analysis_and_elaboration Option to run Analysis and 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
-dont_export_assignments Option not to export assignments to file. By default, this command exports assignments before running command-line executables.
-eco <value> Option to run a Fitter ECO compilation
-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
-quick_elaboration Option to run Quick Elaboration
-signalprobe Option to run a Signal Probe compilation

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 details. 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 of the INCREMENTAL_COMPILATION_EXPORT_PARTITION_NAME global assignment should specify the name of the partition to be exported. The value of the INCREMENTAL_COMPILATION_EXPORT_NETLIST_TYPE global assignment (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 INCREMENTAL_COMPILATION_EXPORT_ROUTING global assignment specifies whether routing should be exported when a post-fit netlist is generated. 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: PARTITION_IMPORT_FILE PARTITION_IMPORT_PROMOTE_ASSIGNMENTS PARTITION_IMPORT_NEW_ASSIGNMENTS PARTITION_IMPORT_EXISTING_ASSIGNMENTS PARTITION_IMPORT_EXISTING_LOGICLOCK_REGIONS 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
                execute_flow -compile
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 mess