El puerto VGA tiene cinco señales "claves para su control": señales de sincronización horizontal y vertical (hsync y vsync), y tres señales de vídeo (para el rojo, verde y azul).
Realizar un controlador de video es relativamente sencillo ya que tenemos que generar estas 5 señales y utilizarlas a nuestras necesidades.
En esta primera parte realizaremos un trazado de pantalla de resolucion 640 por 480 px. Con un reloj de 25Mhz para los contadores que realizaremos en vhdl.
Señal HSYNC(sincronia horizontal).-
display = 640px (dato cambiable segun la resolucion que se quiera) NOTA 1
right border = 16px
retrace = 96px
left border = 48px
-----------------------------
TOTAL = 800 px
Entonces podemos generar la señal Hsync utilizando un contador (count_H) modulo 800 de la siguiente manera:
Hsync=0 cuando count_H sea mayor a 655 y menor a 752 caso contrario Hsync=1
top border = 33px
display = 480px (dato cambiable segun la resolucion que se quiera) NOTA 1
bottom border= 10px
retrace = 2px
-----------------------------
TOTAL = 525 px
Entonces podemos generar la señal Vsync utilizando un contador (count_V) modulo 525 de la siguiente manera:
Vsync=0 cuando count_V sea mayor a 489 y menor a 492 caso contrario Vsync=1
por ejemplo cuando hay un "1" en la linea de video R se envia el color rojo (lo mismo para las otras señales), pero esta señal solamente se debe enviar cuando estemos en "display" en el sector visible 640x480 definido antes, NO se deberia de enviar esta señal en los margenes no visibles del monitor.
por este motivo como se ve en los anteriores graficos existe 2 señales adicionales h_video_on y v_video_on, que nos indican cuando estamos trazando la parte visible del monitor.
h_video_on=1
v_video_on=1 cuando count_V sea mayor a 0 y menor a 480 caso contrario v_video_on=0
Descripcion VHDL algo de teoria del vga. mas extendido de lo dicho aqui: monitor vga
Por el momento esta parte deberias de ser capas de comprenderla ya que aqui esta la clave del exito con monitores vga, este modulo es necesario para poder continuar con la siguiente entrega de este mini tutorial del monitor VGA con VHDL
NOTA 1
Si se cambia la resolucion de pantalla tambien hay que cambiar el clock de los contadores.
Para nuestro caso 640x480 obtenimos que el reloj es de 25 Mhz de esta manera:
800px * 525px * f para un monitor de frecuencia f=60 Hz
entonces -> 800x525x60 = 25 Mhz (aproximadamente)