Quartus® II Software Support for High Memory Use Designs
Large FPGA designs require increasing amounts of memory to process. This page provides steps you can take when working with designs that require large amounts of memory, and ways you can increase the memory available for Quartus II software.
Check Memory Requirements
The Quartus II device support release notes has information on memory requirements for supported Intel® FPGA devices.
Intel FPGA strongly recommends that you ensure that your computer meets the minimum requirements for memory and swap space. If your computer does not have the recommended amount of memory and swap space available, try compiling the design on another computer that meets the requirements, or upgrade the memory in your computer to meet or exceed the recommendations.
Optimize Timing Assignments
It may be possible to optimize your timing assignments so they require less memory to process. Using timegroups (supported in Quartus II software versions 4.0 through 5.0) or assignment groups (supported beginning in version 5.1) to combine nodes with common assignments saves memory. You can use this approach instead of making separate timing assignments to many individual nodes.
For example, if your design has many multicycle assignments with a value of two, you can reduce memory use by assigning the source and destination nodes to two groups, then making a single multicycle assignment of two between the two groups. The memory savings depends on your particular design and assignments.
Expand Available Memory
32-Bit Windows: By default, 32-bit versions of Windows limit processes to 2 GB of memory. If your design requires more than 2 GB of memory, you can edit the boot.ini file to allow up to 3 GB of memory per process. Refer to the following solution for information about how to edit the boot.ini file: Can I allocate more than 2 GB of RAM for Quartus II software on Windows?
The Quartus II 32-bit Windows executables are large address space aware, and can use up to 3 GB of memory without modification.
64-Bit Windows: Windows XP x64 supports up to 8 TB of memory per process. If you run out of memory, install more RAM, or use techniques described above to optimize assignments.
Linux* : Most of the RedHat Enterprise Linux versions have maximum memory limits set by default. These limits cannot be changed. You can view the maximum memory limit information from the Red Hat Enterprise Linux web page.
Expand Available Memory Over 4 GB
If the 32-bit version of Quartus II software still cannot process your design in 3 GB of memory, with optimized timing assignments, use the 64-bit version of Quartus II software. Using a 64-bit version of Quartus II software allows you access to more than 4 GB of memory per process and, therefore, supports designs that require large amounts of memory to compile.
However, compiling designs with a 64-bit version of Quartus II software can require 50 to 100 percent more memory than the same design compiled with a 32-bit version. For example, if your design requires more than 3 GB of memory with the 32-bit version, you should have at least 6 GB of memory installed for a 64-bit compile.
For Windows, to use a 64-bit version of Quartus II software, you must select Quartus II software 64-bit components during installation.
For command-line use on Linux, to use a 64-bit version of Quartus II software, you can pass the --64bit flag to Quartus II software when calling the command-line executables (quartus, quartus_map, quartus_fit, quartus_sta, quartus_tan, and/or quartus_cdb).
Finally, you can set the QUARTUS_64BIT environment variable to specify 64-bit processing, or unset it to specify 32-bit processing. The environment variable affects both the GUI and command-line executables.
Submit a Service Request
In some cases, there may be design optimizations or software improvements that are required. Submit a service request through Intel FPGA mySupport site and include your design files so the problem can be reproduced and corrected.