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.
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>
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:
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
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:
Scripting Design Examples
Altera provides Tcl design examples you can learn from, modify, and use in your own designs.
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.