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
1.8.9. Fit a Design Using Multiple Seeds
This shell script example assumes that the Intel® Quartus® Prime software tutorial project called fir_filter exists in the current directory (defined in the file fir_filter.qpf). If the tutorial files are installed on your system, this project exists in the < Intel® Quartus® Prime directory>/qdesigns<quartus_version_number> /fir_filter directory.
Because the top-level entity in the project does not have the same name as the project, you must specify the revision name for the top-level entity with the --rev option. The --seed option specifies the seeds to use for fitting.
A seed is a parameter that affects the random initial placement of the Intel® Quartus® Prime Fitter. Varying the seed can result in better performance for some designs.
After each fitting attempt, the script creates new directories for the results of each fitting attempt and copies the complete project to the new directory so that the results are available for viewing and debugging after the script has completed.
#!/bin/sh ERROR_SEEDS="" quartus_map fir_filter --rev=filtref # Iterate over a number of seeds for seed in 1 2 3 4 5 do echo "Starting fit with seed=$seed" # Perform a fitting attempt with the specified seed quartus_fit fir_filter --seed=$seed --rev=filtref # If the exit-code is non-zero, the fitting attempt was # successful, so copy the project to a new directory if [ $? -eq 0 ] then mkdir ../fir_filter-seed_$seed mkdir ../fir_filter-seed_$seed/db cp * ../fir_filter-seed_$seed cp db/* ../fir_filter-seed_$seed/db else ERROR_SEEDS="$ERROR_SEEDS $seed" fi done if [ -z "$ERROR_SEEDS" ] then echo "Seed sweeping was successful" exit 0 else echo "There were errors with the following seed(s)" echo $ERROR_SEEDS exit 1 fi
Tip: Use Design Space Explorer II (DSE) included with the Intel® Quartus® Prime software script (by typing quartus_dse at a command prompt) to improve design performance by performing automated seed sweeping.