Altera_Forum
Honored Contributor
12 years agoHow to use M9K Memory Blocks for a large array
Hi everyone,
I have a Problem with implementing a big Array in my design. Quartus always want to use Logic Elements for my array and I don't have a clue how to use Memory Blocks instead. I have a Cyclone IV so I want to use M9K. I'm using Quartus II 12.1. I'm coding in VHDL and this is the code for my arrays:
type My_Big_Array is array (1631 downto 0) of std_logic_vector (7 downto 0);
signal sig_big_array_0 : My_Big_Array := (
others => X"00"
);
signal sig_big_array_1 : PMy_Big_Array:= (
others => X"00"
);
attribute ramstyle : string;
attribute ramstyle of sig_big_array_0 : signal is "M9K";
attribute ramstyle of sig_big_array_1 : signal is "M9K";
I got the attribute-code from here: http://quartushelp.altera.com/12.0/mergedprojects/hdl/vhdl/vhdl_file_dir_ram.htm But the Analysis & Synthesis always tells me: Warning (11000): Verilog HDL warning at SomeBigArrays.vhd(92): can't infer memory for variable 'sig_big_array_0' with attribute '"M9K"'. Warning (11000): Verilog HDL warning at SomeBigArrays.vhd(92): can't infer memory for variable 'sig_big_array_1' with attribute '"M9K"'. What am I doing wrong? Do I have to enable M9K somewhere else too?