Estoy trabajando en un circuito digital que utiliza componentes discretos para controlar una pantalla VGA de 640x480 en un modo de texto de 80x30.
Para una pantalla de 640x480, el reloj de píxeles es 25.175MHz, que tiene un período de alrededor de 40ns. No entiendo cómo se supone que puedo proporcionar un nuevo píxel a la pantalla con tanta frecuencia.
La arquitectura básica para mi circuito es la siguiente:
El contador binario para píxeles horizontales cuenta de 25.175MHz a 800 (640 píxeles visibles + 160 para porche delantero, sincronización, porche trasero). A 800, incremente el contador de línea vertical (y restablezca a 525 líneas)
Usando la posición horizontal y vertical, deriva la coordenada x, y del carácter actual.
Usando la coordenada x, y del carácter, indexe en la memoria de video para recuperar el carácter ASCII.
Utilice el carácter ASCII para indexar en la ROM de caracteres para obtener un patrón de bits para el carácter
Utilice el registro de desplazamiento paralelo al serial para convertir una línea de caracteres de 8 píxeles a bits individuales a una frecuencia de reloj de píxeles
Si sigue la cadena, va: Contador -> RAM -> ROM -> Registro de desplazamiento paralelo a serie
Usando los componentes más rápidos que puedo encontrar, los retrasos de propagación y el tiempo de acceso suman alrededor de 15ns + 20ns + 70ns + 15ns = 120ns, mucho más que el período de 40ns para 25MHz.
A resoluciones y frecuencias de actualización aún más altas, puede tener relojes de píxeles muy por encima de 100MHz, que será un período de 10ns.
¿Cómo es posible proporcionar nuevos píxeles a la pantalla cada 10ns cuando solo el tiempo de acceso para RAM / ROM ya está muy por encima de él, sin siquiera considerar todas las otras señales en su sistema?