Due to a problem in the Quartus® II software version 10.1 and later, designs targeting Arria® II GZ EP2AGZ225 devices may fail to place memories successfully. This failure may occur for large memories with block type set to Auto. Quartus II Integrated Synthesis may incorrectly partition these memories into block sizes appropriate for M144K blocks which are unavailable in the EP2AGZ225 device. This failure is accompanied by messages such as the following:
Error (170039): Cannot place 32 RAM cells or portions of RAM cells in the design
Info (170038): Cannot place following RAM cells or portions of RAM cells -- a legal placement which satisfies all the RAM requirements could not be found
To work around this problem, target the memory to M9K (or other memory types) by one of the following methods:
- If the memory was created using the MegaWizard Plug-In Manager, select M9K for the option What should the memory block type be?
- If the memory was inferred from VHDL or Verilog HDL code, use the synthesis attribute ramstyle with a value of "M9K". See the Quartus II Handbook chapter Quartus II Integrated Synthesis (PDF) for details on the ramstyle attribute.
- To target a particular instance to M9K memory, add the following assignment to your Quartus II Settings File (.qsf):
set_parameter -name RAM_BLOCK_TYPE M9K -to "<hierarchical instance name>"
This problem is scheduled to be fixed in a future release of the Quartus II software