Quartus se atascó cuando compilo el siguiente código vhdl

0

Estoy tratando de compilar el siguiente código vhdl en quartus

process(CLK)
variable i: integer range 0 to 11 := 0;
variable d: unsigned (1 downto 0) := "01";
variable x: integer range 0 to 100 := 50;
variable y: integer range 0 to 74 := 30;
variable r: boolean := false;
begin
    if rising_edge(CLK) and not r then
    case prule((2*i+1) downto 2*i)  is
        when "01" =>
            d := d + "01";
        when "10" =>
            d := d - "01";
        when "11" =>
            if d="01" then
                    pixel(8*x, 8*y) <= true;
                    pixel(8*x, 8*y-1) <= true;
                    pixel(8*x, 8*y-2) <= true;
                    pixel(8*x, 8*y-3) <= true;
                    pixel(8*x, 8*y-4) <= true;
                    pixel(8*x, 8*y-5) <= true;
                    pixel(8*x, 8*y-6) <= true;
                    pixel(8*x, 8*y-7) <= true;
                    pixel(8*x, 8*y-8) <= true;
                    y := y - 1;
            elsif d="10" then
                    pixel(8*x, 8*y) <= true;
                    pixel(8*x, 8*y+1) <= true;
                    pixel(8*x, 8*y+2) <= true;
                    pixel(8*x, 8*y+3) <= true;
                    pixel(8*x, 8*y+4) <= true;
                    pixel(8*x, 8*y+5) <= true;
                    pixel(8*x, 8*y+6) <= true;
                    pixel(8*x, 8*y+7) <= true;
                    pixel(8*x, 8*y+8) <= true;
                    y := y + 1;
            elsif d="11" then
                    pixel(8*x, 8*y) <= true;
                    pixel(8*x-1, 8*y) <= true;
                    pixel(8*x-2, 8*y) <= true;
                    pixel(8*x-3, 8*y) <= true;
                    pixel(8*x-4, 8*y) <= true;
                    pixel(8*x-5, 8*y) <= true;
                    pixel(8*x-6, 8*y) <= true;
                    pixel(8*x-7, 8*y) <= true;
                    pixel(8*x-8, 8*y) <= true;
                    x := x - 1;
            else
                    pixel(8*x, 8*y) <= true;
                    pixel(8*x+1, 8*y) <= true;
                    pixel(8*x+2, 8*y) <= true;
                    pixel(8*x+3, 8*y) <= true;
                    pixel(8*x+4, 8*y) <= true;
                    pixel(8*x+5, 8*y) <= true;
                    pixel(8*x+6, 8*y) <= true;
                    pixel(8*x+7, 8*y) <= true;
                    pixel(8*x+8, 8*y) <= true;
                    x := x + 8;
            end if;
        when others =>
            r := true;
    end case;
    i := i + 1;
    end if;
end process;

Aquí pixel es el mapa de píxeles para VGA. Se compila si compilo sin actualizar las variables x y y , pero no en el código anterior.

Quartus se atasca durante unos 10 minutos y luego muestra el error de que mi PC no tiene suficiente espacio y memoria RAM. Tengo 22GB libres y 8GB RAM. Lo probé en una PC diferente, pero de nuevo, se atascó.

Estoy usando Quartus-II 16.0 lite edition.

¿Alguien sabe una salida?

    
pregunta crimson

0 respuestas

Lea otras preguntas en las etiquetas