Quartus Prime and Quartus II Software Scripting Support

The Quartus® Prime and Quartus II software includes comprehensive scripting support for command-line and tool command language (Tcl) script design flows. Separate executables for each stage of the software design flow (synthesis, fitting, and timing analysis, for example) include options for making common settings and performing common tasks. The Tcl scripting application program interface (API) includes commands covering basic to advanced functionality. The Quartus II Scripting Reference Manual (PDF) provides a complete reference covering all command-line options and Tcl commands. The Quartus Prime Settings File Reference Manual (PDF) lists and describes all QSF settings.

Command-Line Scripting

You can use Quartus Prime or Quartus II command-line executables in batch files, shell scripts, makefiles, and other scripts. For instance, use the following command to compile an existing project:

quartus_sh --flow compile <project name>

For more information about command-line scripting, refer to the Command Line Scripting chapter in Volume 2 of the Quartus II Handbook.

You can also use the Command-Line and Tcl API Help Utility for a complete list of supported options, descriptions, and examples. Run the utility by typing the following at a command prompt:

quartus_sh --qhelp

Tcl Scripting

Use the Tcl API for any of the following tasks:

  • Creating and managing projects
  • Making assignments
  • Compiling designs
  • Extracting report data
  • Performing timing analysis

For example, the following Tcl script uses design files for the fir_filter tutorial design in the <qdesigns> directory. The script creates a project, makes pin, clock, and timing assignments, and compiles the design.

load_package flow
project_new fir_filter -revision filtref -overwrite
set_global_assignment -name FAMILY Cyclone
set_global_assignment -name DEVICE EP1C6F256C6
set_global_assignment -name BDF_FILE filtref.bdf
set_global_assignment -name TOP_LEVEL_ENTITY filtref
# You could make other pin assignments here
set_location_assignment -to clk Pin_G1
create_base_clock -fmax "100 MHz" -target clk clocka
create_relative_clock -base_clock clocka -divide 2 \
  -offset "500 ps" -target clkx2 clockb
set_multicycle_assignment -from clk -to clkx2 2
execute_flow -compile
project_close

For more information about Tcl scripting, refer to the Tcl Scripting chapter in Volume 2 of the Quartus II Handbook.

You can also use the Command-Line and Tcl API Help Utility for a complete list of Tcl API commands, descriptions, and examples. Run the utility by typing the following at a command prompt:

quartus_sh --qhelp

Scripting Design Examples

Altera provides Tcl design examples you can learn from, modify, and use in your own designs.

Scripting Training

View online training presentations to get up to speed on scripting in the Quartus Prine or Quartus II software.

  • Online Demo: View a short demonstration of Tcl and command-line scripting.
  • Command-Line Scripting: This class covers the command-line executables and how to use them in scripts and Makefiles. It also provides examples.
  • Introduction to Tcl Scripting: These two classes cover the basics of Tcl scripting, describing the language and basic operations, along with examples.
  • Basic Tcl Scripting: These two classes introduce the Tcl scripting API for the Quartus Prime and Quartus II software. They also cover how to use Tcl scripts to create and compile projects, extract report data, and more. You should know how to write Tcl scripts before taking these classes.