Lee el valor de píxel VGA de la SRAM en VHDL

-1

Estoy usando una SRAM para almacenar un cuadro que debo mostrar en la pantalla con la interfaz VGA. Necesito leer el valor de píxel de la SRAM y luego enviarlo al monitor VGA. He creado un controlador SRAM pero se requieren algunos ciclos de reloj antes de que los datos estén disponibles. No sé cómo acceder a la RAM sin salir del proceso de Pixel.

Aquí hay una parte simplificada del código:

process (CLK_25MHZ)
begin
    if (CLK_25MHZ'event and CLK_25MHZ = '1') then
        if (ACTIVE_VIDEO) then
            -- This part is repeated for every pixel and I can't exit from this part
            -- until I have sent the pixel data. If I exit this pixel is lost.
            -- I need something like this:
            addr <= CALCULATE_ADDRESS();
            VGA_RGB <= READ_RAM(addr);
        else            
            VGA_RGB <= "000000000000";      
        end if;
        -- Here there are the signals timings.
    end if;
end process;
    
pregunta Oceanic815

1 respuesta

1

Creo que lo que intentas lograr es posible, pero necesitas modificar tu diseño y pensar cómo superarás las limitaciones de la velocidad de lectura de tu RAM.

Con respecto a la velocidad, creo que lo mejor que puede hacer es leer los datos y almacenarlos durante los períodos de borrado del video, esto se puede hacer usando un FIFO, cuyo tamaño estará determinado por la diferencia en la la cantidad de datos que necesita durante el período de video activo y la cantidad de datos que puede proporcionar la RAM en ese tiempo, es de esperar que solo sean unas pocas líneas.

En cuanto al retraso de lectura, si implementara el FIFO, esto se reduciría, si no quisiera hacerlo, entonces necesita replicar la señal ACTIVE_VIDEO pero compensarla con 5 relojes y usar la señal retardada en su declaración IF. Esto se sincronizará cuando los datos lleguen cuando los necesite, ya que todos los datos se retrasarán en la misma cantidad, los datos de video aún estarán alineados.

espero que esto ayude,

Gipsy

    
respondido por el Gipsy Danger

Lea otras preguntas en las etiquetas