Paso 2: Salida - controlador VGA parte 1
Dará salida a nuestros datos visuales usando el puerto HDMI presente en el tablero. El puerto HDMI está conectado a el PL (lógica programable = FPGA) de la ZYNQ y necesitamos para el diseño de un controlador en VHDL para él. Si alguna vez han diseñado un controlador VGA encontrará esto muy similar. Los tiempos para HDMI y VGA son realmente iguales, de hecho se puede construir en un controlador VGA existente para obtener un controlador HDMI.
Para una mejor comprensión de lo que realmente está sucediendo en primer lugar diseñaremos un controlador VGA
Queremos visualizar con una resolución de 1920 x 1080.
El controlador VGA es responsable de transmitir los datos de píxeles (en formato RGB) secuencialmente, píxel por píxel de la pantalla. Fuera del área de área de visualización real de 1920 x 1080 también hay algunas áreas de "frontera", a saber: frente porche, porche trasero y retrace. El tamaño en píxeles de las áreas son estándar y específicos para cada resolución. Estas áreas no aparecen realmente en la pantalla pero son obligatorios y el color de los píxeles en esta área debe ser negro. Una pregunta válida sería por qué son necesarias estas áreas adicionales. Esta pregunta desafía el propósito de este instructivo, pero si tienes curiosidad por saber que le animo a hacer más investigación en línea.
Este es un buen video explicando la interfaz VGA https://goo.gl/vfSw6o
En nuestro caso queremos visualizar con una resolución de 1920 * 1080, y estos son los tiempos:
Área de pantalla horizontal = 1920 píxeles
Porche de frente horizontal = 88 píxeles
Horizontal nuevo porche = 148 pixeles
Retrace horizontal = 44 pixeles
Área de visualización vertical = 1080 píxeles
Vertical pórche de entrada = 4 pixeles
Vertical nuevo porche = 36 píxeles
Retrace vertical = 5 píxeles
(Aquí puedes encontrar tiempos para otras resoluciones http://goo.gl/hFNRVb )
Así que nuestra resolución real será 2200 x 1125. Queremos 60 fps (frames por segundo) por lo que nuestro reloj de píxel será 60 * 2200 * 1125 = 148,5 MHz. En el tablero de Zybo 125 Mhz reloj se proporciona. Vamos a utilizar una IP MMCM para generar el reloj de píxel de 148,5 MHz necesitamos.