Altera_Forum
Honored Contributor
16 years agoCompile freezing when used indexing signal with an array is greater than 15000
Hi,
I'm facing a strange issue with Quartus II. ModelSim simulations showed that the software is running well and it has no issues. However, when using Quartus to compile, it simply the compilation freezes on 2%. On top of the architeture, the image_array type is defined through ofsubtype elements is std_logic_vector(7 downto 0);
type image_array is array(0 to 307199) of elements; The i_std signal (internal) is being used to store a image (through a linear array) constant i_std : image_array := (x"AA", x"1B", x"10", x"10", x"10", x"10",...,x"B0", x"B0", x"10",x"10"); A internal signal (counter) is defined in order to index the array defined by i_std: signal counter_c : integer range 0 to 307200 := 0; In the body of the architeture, we have a process that on falling edge of a clock signal, it increases the counter (counter_c) and it assign to an out signal of the entity the values of i_std sequentially through the index increasing: indexprocess: process(CLK)
begin
if (falling_edge(CLK)) then
if (counter_c < 307200) then
VIDEO_DATA <= i_std(counter_c);
counter_c <= counter_c + 1;
end if;
end if;
CLK and VIDEO_DATA are defined as in and out ports respectively.
end process indexprocess;As I said, it works perfectly on ModelSIM, however, it stop at 2% of compilation on quartus. The problem doesn't happen if I replace at the process the counter_c index to a constant value. If the counter_c is defined with a size smaller than 15000, the compilation finishes sucessfully. I also tried to exchange the FPGA on quartus to a most powerful one (with more memory, etc), but the problem continues to happen. Have any one already had a similar problem ? I thank you your help in advance ! BR, Rosseto