Intel® Quartus® Prime Pro Edition User Guide: Design Compilation
ID
683236
Date
12/04/2023
Public
A newer version of this document is available. Customers should click here to go to the newest version.
2.1. Compilation Overview
2.2. Using the Compilation Dashboard
2.3. Design Netlist Infrastructure
2.4. Using the Node Finder
2.5. Analysis & Elaboration Flow
2.6. Design Synthesis
2.7. Design Place and Route
2.8. Incremental Optimization Flow
2.9. Fast Forward Compilation Flow
2.10. Full Compilation Flow
2.11. Compilation Monitoring Mode
2.12. Exporting Compilation Results
2.13. Integrating Other EDA Tools
2.14. Compiler Optimization Techniques
2.15. Synthesis Language Support
2.16. Synthesis Settings Reference
2.17. Fitter Settings Reference
2.18. Design Compilation Revision History
2.6.3.1. Registering the SDC-on-RTL SDC File
2.6.3.2. Applying the SDC-on-RTL Constraints
2.6.3.3. Inspecting SDC-on-RTL Constraints
2.6.3.4. Creating Constraints in SDC-on-RTL SDC Files
2.6.3.5. Using Entity-Based SDC-on-RTL Constraints
2.6.3.6. Types of SDC Files Used in the Intel® Quartus® Prime Software
2.6.3.7. Example: Using SDC-on-RTL Features
2.12.1. Exporting a Version-Compatible Compilation Database
2.12.2. Importing a Version-Compatible Compilation Database
2.12.3. Creating a Design Partition
2.12.4. Exporting a Design Partition
2.12.5. Reusing a Design Partition
2.12.6. Viewing Quartus Database File Information
2.12.7. Clearing Compilation Results
3.1. Factors Affecting Compilation Results
3.2. Strategies to Reduce the Overall Compilation Time
3.3. Reducing Synthesis Time and Synthesis Netlist Optimization Time
3.4. Reducing Placement Time
3.5. Reducing Routing Time
3.6. Reducing Static Timing Analysis Time
3.7. Setting Process Priority
3.8. Reducing Compilation Time Revision History
2.15.1.3.1. Hierarchical Design Configurations
A design can have more than one configuration. For example, you can define a configuration that specifies the source code you use in particular instances in a sub-hierarchy, and then define a configuration for a higher level of the design.
For example, suppose a subhierarchy of a design is an eight-bit adder, and the RTL Verilog code describes the adder in a logical library named rtllib. The gate-level code describes the adder in the gatelib logical library. If you want to use the gate-level code for the 0 (zero) bit of the adder and the RTL level code for the other seven bits, the configuration might appear as follows:
Gate-level code for the 0 (zero) bit of the adder
config cfg1; design aLib.eight_adder; default liblist rtllib; instance adder.fulladd0 liblist gatelib; endconfig
If you are instantiating this eight-bit adder eight times to create a 64-bit adder, use configuration cfg1 for the first instance of the eight-bit adder, but not in any other instance. A configuration that performs this function is shown below:
Use configuration cfg1 for first instance of eight-bit adder
config cfg2; design bLib.64_adder; default liblist bLib; instance top.64add0 use work.cfg1:config; endconfig
Note: The name of the unbound module may be different from the name of the cell that is bounded to the instance.