1 Esquema general del módulo de control VGA reloj reset reloj reset Fila(9 bits) VGA RGB Sincr Vert Columna(9 bits) Refresco Interfaz Datos (6 bits) leer Sincr Hor Res1 (4 bits) Reloj: 12.5MHz Teclado Res2 (4 bits) Dato_teclado Clk_teclado Sumador reloj reset 2 Interfaz digital/analógico al monitor VGA Generador VGA digital Conversor D/A Generador VGA analógico 470 ohmios red1 1000 ohmios red red0 75 ohmios 470 ohmios green1 1000 ohmios green green0 470 ohmios 75 ohmios blue1 1000 ohmios blue blue0 75 ohmios 1 3 Temporización VGA horizontal blanking interval 640 muestras (pixels) 0.7 V (máximo brillo) líneas de intensidad analógicas (rojo, verde y azul) 0 V (negro) 31.77 µs 25.17 µs (max) 6.6 µs (min) 0.94 µs (min) 3.77 µs 1.89 µs (min) sincronismo horizontal comienzo de línea final de línea vertical blanking interval 480 líneas 0.7 V (máximo brillo) líneas de intensidad analógicas (rojo, verde y azul) 0 V (negro) 16.784 ms 15.25 ms (max) 1.534 ms (min) 64 µs 0.45 ms (min) 1.02 ms (min) sincronismo vertical 4 Generación de pixels y sincronismo clk = 12.5 MHz tciclo = 80 ns ~ 2 muestras/ciclo líneas de intensidad digitales (rojo, verde y azul) 11 (máximo brillo) 00 (negro) 397 ciclos 314 ciclos (max) 12 ciclos (min) 83 ciclos (min) 47 ciclos 24ciclos (min) sincronismo horizontal líneas de intensidad digitales (rojo, verde y azul) en exceso Memoria de refresco: 2 bits/color · 3 colores/pixel · 314 pixels/linea · 480 líneas/frame = 904320 bits/frame = 113040 bytes/frame = 111 Kb/frame 11 (máximo brillo) 00 (negro) 528 líneas 480 líneas (max) 14 líneas (min) 48 líneas (min) 2 líneas 32 líneas (min) sincronismo vertical 2 5 Pantalla 2 dígitos 7 segmentos 314 puntos 40 40 480 líneas 140 175 275 240 440 6 Esquema refresco Contador columna barrido 0-396 reloj Hsyn 325<Columna<373 Columna Columna=396 Columna Columna>313 o Fila>479 Leer blanking Contador línea barrido 0-527 Vsyn RGB Fila Fila 493<Fila<496 Datos and 3 7 Esquema Interfaz reloj reset 0 Fila(9 bits) 1 5 6 Columna(9 bits) ColorRojo= ((Fila==40) & (39<Columna<141) & Res1(0)) Or Datos (6 bits) ((Fila==240) & (39<Columna<141) & ColorRojo Res1(6)) ........... Datos=Leer&(Rojo lee ............ *ColorRojo+Azul*Not r (ColorRojo)) To 7 seg 2 4 3 To 7 seg Res1 (4 bits) Res2 (4 bits) 8 Memorias Memoria Memoria de refresco 9*3 bytes Memoria de caracter Si hay N caracteres diferentes se necesitan: N*8*8 bytes 3 caracteres por fila 9 caracteres por columna 4 9 Generación de caracteres y sincronismo clk = 6.25 MHz tciclo = 160 ns 3 caracteres 11 (máximo brillo) líneas de intensidad digitales (rojo, verde y azul) 00 (negro) 25 caracteres 3 caracteres 21 caracteres 10 caracteres sincronismo horizontal 2 3 0 3 carac 12 13 24 11 (máximo brillo) líneas de intensidad digitales (rojo, verde y azul) 00 (negro) 528 líneas (66 filas) 9 filas 57 filas 28 filas sincronismo vertical 9 caracteres 15 116 0 8 9 1 fila 36 28 filas 38 65 10 Modificaciones al esquema de generación de caracteres Se accede a memoria todos los ciclos donde se pintan caracteres ⇒Un ciclo se accede a la memoria de refresco ⇒El ciclo seguiente a la de caracteres y se actualiza RGB Cada 2 ciclos se actualiza el contador de columna de carácter. Es decir, la frecuencia de acceso a memoria es de 12.5 MHz, pero la de actualización de los contadores de 6.25MHz cc =13, 14, 15 Hsyn RGB =37 Vsyn AND fc cc Apagado horizontal >=3 fc NOR leer Memoria de caracter Apagado vertical >=9 5 11 Señales de handshake reloj reset W Datos (8 bits) Interfaz memoria leer OE CS reset A memoria Distinto reloj. Hace falta interbloqueo cambio Dato_actualiz. Dir_memoria (15 bits) Datos (8 bits) escribir Datos (8 bits) reloj } Dir_memoria (15 bits) Dir_memoria (15 bits) reconoc escribir Posición (x=2 y=4) dato_actualiz valor (5 bits) Interfaz comunicación y actualización memoria cambio reconoc Mismo reloj. No hace faltainterbloqueo } handshake 6