Quartus® Prime Pro Edition User Guide: Design Compilation
ID
683236
Date
7/07/2025
Public
1.1. Compilation Overview
1.2. Design Analysis & Elaboration
1.3. Design Synthesis
1.4. Design Place and Route
1.5. Incremental Optimization Flow
1.6. Fast Forward Compilation Flow
1.7. Full Compilation Flow
1.8. HSSI Dual Simplex IP Generation Flow
1.9. Exporting Compilation Results
1.10. Clearing Compilation Results
1.11. Integrating Other EDA Tools
1.12. Compiler Optimization Techniques
1.13. Compilation Monitoring Mode
1.14. Viewing Quartus Database File Information
1.15. Understanding the Design Netlist Infrastructure
1.16. Using Synopsys* Design Constraint (SDC) on RTL Files
1.17. Using the Node Finder
1.18. Synthesis Language Support
1.19. Synthesis Settings Reference
1.20. Fitter Settings Reference
1.21. Design Compilation Revision History
1.18.1.1. Verilog HDL Input Settings (Settings Dialog Box)
1.18.1.2. Design Libraries
1.18.1.3. Verilog HDL Configuration
1.18.1.4. Initial Constructs and Memory System Tasks
Verilog HDL Code: Initializing RAM with the readmemb Command
Text File Format: Initializing RAM with the readmemb Command
1.18.1.5. Verilog HDL Macros
2.1. Factors Affecting Compilation Results
2.2. Strategies to Reduce the Overall Compilation Time
2.3. Reducing Synthesis Time
2.4. Reducing Placement Time
2.5. Reducing Routing Time
2.6. Reducing Static Timing Analysis Time
2.7. Setting Process Priority
2.8. Reducing Compilation Time Revision History
1.18.1.4. Initial Constructs and Memory System Tasks
The Quartus® Prime software infers power-up conditions from the Verilog HDL initial constructs. The Quartus® Prime software also creates power-up settings for variables, including RAM blocks. If the Quartus® Prime software encounters non-synthesizable constructs in an initial block, it generates an error.
To avoid such errors, enclose non-synthesizable constructs (such as those intended only for simulation) in translate_off and translate_on synthesis directives. Synthesis of initial constructs enables the power-up state of the synthesized design to match the power-up state of the original HDL code in simulation.
Note: Initial blocks do not infer power-up conditions in some third-party EDA synthesis tools. If you convert between synthesis tools, you must set your power-up conditions correctly.
Quartus® Prime synthesis supports the $readmemb and $readmemh system tasks to initialize memories.
Verilog HDL Code: Initializing RAM with the readmemb Command
reg [7:0] ram[0:15]; initial begin $readmemb("ram.txt", ram); end
When creating a text file to use for memory initialization, specify the address using the format @<location > on a new line, and then specify the memory word such as 110101 or abcde on the next line.
The following example shows a portion of a Memory Initialization File (.mif) for the RAM.
Text File Format: Initializing RAM with the readmemb Command
@0 00000000 @1 00000001 @2 00000010 … @e 00001110 @f 00001111