¿Es la SRAM 55ns lo suficientemente rápida para manejar VGA de baja resolución?

1

Parece que no puedo envolver mi cabeza alrededor de las matemáticas.

Suponiendo que quiero una señal 640x480x256 VGA, y tengo un FPGA o un microcontrolador rápido para manejarlo, ¿ 55ns podría manejarlo?

Significa que cada byte de la memoria de 8 bits se traduciría en un píxel. También asumiendo que mi escalera R-2R se configuró para algo como RRRGGBBB .

Tengo una razón muy específica para usar DIP SRAM. Puedo encontrar velocidades de hasta aproximadamente 15ns pero tamaños pequeños. El 512k que quiero comprar remata en 55ns .

Si alguien me pudiera dar ejemplos de cómo se calcula el ancho de banda, podría ayudarme a decidir usar el 512k o tal vez hacer algo diferente con múltiples chips de 15 ns.

¡Gracias!

    
pregunta cbmeeks

5 respuestas

2

640x480x60Hz usa un reloj de píxeles de 25 MHz, por lo que necesitarías 1 byte cada 40 ns (para el 73% del tiempo).

También desea poder escribir datos de visualización en su RAM, así que supongamos que queremos dos accesos de byte de RAM en esos 40 ns: uno para leer y mostrar un píxel, uno para datos de visualización de R / W.

Así que puedes comprar RAM más rápida o RAM más amplia. Una memoria RAM de 32 bits de ancho que utiliza chips de 55 ns podría servir hasta cuatro bytes en una lectura de 60 ns y duraría 160 ns.

Esto ilustra la aritmética, puede explorar más las permutaciones. Si está utilizando un FPGA, puede hacer algunas cosas inteligentes de búsqueda previa para leer en varias palabras y leer más slots R / W entre ellas.

    
respondido por el TonyM
4

$$ {1 \ sobre 55 \ text {ns}} = 18 \ text {MHz}. $$

640x480 @ 60 Hz VGA usa un reloj de píxeles de 25.175 MHz, por lo que no hay forma de manejar eso desde una SRAM de 55 ns. Si no puede encontrar una SRAM de 15 ns lo suficientemente grande, puede agrupar un par de ellas con un decodificador de dirección.

    
respondido por el duskwuff
2

Sí, puedes hacerlo, pero no (exactamente) fácilmente. Como se ha señalado, el VGA 640x480x60 requiere una velocidad de reloj de 25 MHz o un tiempo de acceso / ciclo de 40 nseg. Entonces, si estás en esto todo el camino con tus 55 nsec chips, es usar dos de ellos. Si considera que los píxeles son impares o pares (si lsb de dirección es 0 o 1), está claro que puede proporcionar direcciones de lectura a 12,5 MHz mientras lee 2 bytes por reloj y luego controla la pantalla a 25 MHz. Algo como

simular este circuito : esquema creado usando CircuitLab

Tenga en cuenta que, como ahora hay físicamente 2 IC, solo necesitan ser 256k.

Además, tenga en cuenta que escribir en su RAM causará ruido en la pantalla, ya que la pantalla recogerá los datos de escritura como datos de pantalla. Ya que estás haciendo el control de RAM a nivel de píxel, en lugar del carácter, necesitarás hacer muchas escrituras, y por lo tanto tendrás mucho ruido de pantalla.

    
respondido por el WhatRoughBeast
1

Necesitas saber la tasa de píxeles. Usando cálculos en bruto para una imagen de 640x480 incluyendo píxeles en blanco, el tamaño del cuadro VGA podría ser 800x525. Ya que no va a utilizar ningún búfer intermedio, su tasa de píxeles a 60 fps debe ser 800x525x60 = 25.2MHz. Esa es una tasa de píxeles.

Ahora, dependiendo del estándar, como RGB o YUV4: 2: 2, y la profundidad de bits (como 8 bits), necesitará 24 bits y 16 bits por píxel (3 bytes y 2 bytes, respectivamente). Por lo tanto, su tasa de byte es el triple o el doble de la tasa de píxeles.

En su caso, necesita suministrar cada byte de datos a 25.2MHz, mientras que su memoria de 55ns puede hacerlo a ~ 18MHz, y 15ns puede hacerlo a 66MHz.

    
respondido por el Nazar
-1

640x480 a 1 byte por píxel a 30 fotogramas es 9.2Mbytes / seg (640 x 480 x velocidad de fotogramas x bits por pixel), o dicho de otra manera, con un bus de datos de 8 bits, 9.2Mtransfiere un segundo. Ahora, también debe poder escribir esos datos en el carnero igualmente rápido, por lo que hace 18.4MT / s. 1 / 18.4MT = 54ns por transferencia, justo en el límite.

Sin embargo, si ejecuta a 25 o 20 fps, debería estar bien, ya que solo necesitaría un tiempo de ciclo de 65 y 81 ns respectivamente, que su SRAM 55ns debería poder manejar cómodamente.

Siempre puedes usar dos SRAM juntas como un bus de 16 bits (estarías leyendo dos píxeles a la vez en lugar de solo uno), lo que reduce los requisitos de velocidad a la mitad, pero agrega un montón de pines adicionales.

    
respondido por el Sam

Lea otras preguntas en las etiquetas