Type: Answers

Area: Tools

Why does my design fail to simulate or function correctly on my board but pass when I delete the db directory and recompile the design in the Quartus II software version 5.1, 5.1 SP1 and 5.1 SP2?


Due to a problem in versions 5.1, 5.1 SP1 and 5.1 SP2 of the QuartusII® software, a functional failure may occur in designs with either of the following characteristics:

  • The design contains inferred ROM. A design with inferred ROM has the following Information messages in the Analysis & Synthesis Messages :

    Info: Inferred <number> megafunctions from design logic

    Info: Inferred altsyncram megafunction (OPERATION_MODE=ROM, …) from the following design logic: <logic name>

  • The path for the memory initialization file of any RAM or ROM is specified through User Library paths. RAM or ROM instantiations that specify absolute paths to memory initialization files, or with memory initialization files in the project directory, are not affected.

The issue occurs when changes to RAM and ROM memory initialization files are not recognized properly in a subsequent compilation. This can cause the design to fail functionally in a gate-level timing simulation or hardware after a successful compilation.

The issue is caused by a failure to detect changes to the memory contents of ROM inferred by the Quartus II software, or changes to the memory initialization files of an instantiated RAM or ROM. The Quartus II software versions 5.0 and earlier do not have this issue.

To fix this issue, install the patch listed below for your version of the Quartus II software.

Quartus II Software Version Patch
Version 5.1 Install Service Pack 2 and Install Required Patch
Version 5.1 SP1 PC Platform: pc_quartus_51_sp1_memory_file_patch_1_19.exe
Unix Platform: solaris_quartus_51_sp1_memory_file_patch_1_19.tar
Linux Platform: linux_quartus_51_sp1_memory_file_patch_1_19.tar
Version 5.1 SP1 Web Edition PC Platform: pc_quartus_51_memory_file_patch_1_19_we.exe
Version 5.1 SP2 PC Platform: pc_quartus_51_sp2_memory_file_patch_2_01.exe
Unix Platform: solaris_quartus_51_sp2_memory_file_patch_2_01.tar
Linux Platform: linux_quartus_51_sp2_memory_file_patch_2_01.tar
Version 5.1 SP2 Web Edition PC Platform: pc_quartus_51_memory_file_patch_2_01_we.exe

You can work around this issue, without a patch,by deleting the db subdirectory in your project directory before every compilation.