Intel® Quartus® Prime Standard Edition User Guide: Scripting
ID
683325
Date
9/24/2018
Public
1.1. Benefits of Command-Line Executables
1.2. Introductory Example
1.3. Command-Line Scripting Help
1.4. Project Settings with Command-Line Options
1.5. Compilation with quartus_sh --flow
1.6. Text-Based Report Files
1.7. Using Command-Line Executables in Scripts
1.8. Common Scripting Examples
1.9. The QFlow Script
1.10. Document Revision History
1.8.1. Create a Project and Apply Constraints
1.8.2. Check Design File Syntax
1.8.3. Create a Project and Synthesize a Netlist Using Netlist Optimizations
1.8.4. Archive and Restore Projects
1.8.5. Perform I/O Assignment Analysis
1.8.6. Update Memory Contents Without Recompiling
1.8.7. Create a Compressed Configuration File
1.8.8. Fit a Design as Quickly as Possible
1.8.9. Fit a Design Using Multiple Seeds
2.1. Tool Command Language
2.2. Intel® Quartus® Prime Tcl Packages
2.3. Intel® Quartus® Prime Tcl API Help
2.4. End-to-End Design Flows
2.5. Creating Projects and Making Assignments
2.6. Compiling Designs
2.7. Reporting
2.8. Timing Analysis
2.9. Automating Script Execution
2.10. Other Scripting Features
2.11. The Intel® Quartus® Prime Tcl Shell in Interactive Mode Example
2.12. The tclsh Shell
2.13. Tcl Scripting Basics
2.14. Tcl Scripting Revision History
2.10.5.1. The cmdline Package
You can use the cmdline package included with the Intel® Quartus® Prime software for more robust and self-documenting command-line argument passing. The cmdline package supports command-line arguments with the form -<option><value>.
cmdline Package
package require cmdline variable ::argv0 $::quartus(args) set options { { "project.arg" "" "Project name" } { "frequency.arg" "" "Frequency" } } set usage "You need to specify options and values" array set optshash [::cmdline::getoptions ::argv $options $usage] puts "The project name is $optshash(project)" puts "The frequency is $optshash(frequency)"
If you save those commands in a Tcl script called print_cmd_args.tcl you see the following output when you type the following command at a command prompt.
Passing Command-Line Arguments for Scripts
quartus_sh -t print_cmd_args.tcl -project my_project -frequency 100MHz The project name is my_project The frequency is 100MHz
Virtually all Intel® Quartus® Prime Tcl scripts must open a project. You can open a project, and you can optionally specify a revision name with code like the following example. The example checks whether the specified project exists. If it does, the example opens the current revision, or the revision you specify.
Full-Featured Method to Open Projects
package require cmdline variable ::argv0 $::quartus(args) set options { \ { "project.arg" "" "Project Name" } \ { "revision.arg" "" "Revision Name" } \ } array set optshash [::cmdline::getoptions ::argv0 $options] # Ensure the project exists before trying to open it if {[project_exists $optshash(project)]} { if {[string equal "" $optshash(revision)]} { # There is no revision name specified, so default # to the current revision project_open $optshash(project) -current_revision } else { # There is a revision name specified, so open the # project with that revision project_open $optshash(project) -revision \ $optshash(revision) } } else { puts "Project $optshash(project) does not exist" exit 1 } # The rest of your script goes here
If you do not require this flexibility or error checking, you can use just the project_open command.
Simple Method to Open Projects
set proj_name [lindex $argv 0] project_open $proj_name