Logotipo de Zephyrnet

Video Series 34: Introducción a Video Frame Buffer IP (aplicación de ejemplo en Vitis)

Fecha:


Introducción a la IP del búfer de fotogramas de vídeo

La IP de lectura / escritura del búfer de fotogramas de video le permite mover datos de video desde el dominio de memoria (interfaz AXI4-Memory Mapped) a la interfaz AXI4-Stream o viceversa.

En un nivel alto, hace lo mismo que el AXI VDMA IP que hemos usado en entradas anteriores de la Serie Video (Serie de videos 24, Serie de videos 25, Serie de videos 26...).

Entonces, ¿por qué debería utilizar los núcleos IP del búfer de fotogramas de vídeo y no el AXI VDMA IP?

La respuesta está documentada en (Respuesta de Xilinx 72543). Básicamente, el AXI VDMA IP toma bytes de las interfaces AXI4-Stream y simplemente los mueve a la memoria, sin importar el formato de los datos de video.

El búfer de fotogramas de vídeo deberá conocer el formato de los datos que se transportan desde / hacia la memoria. Podrá almacenar los datos en la memoria de forma diferente según el formato seleccionado. Esto es útil para aplicaciones Linux.

Por ejemplo, los formatos V4L2 YUYV y UYVY ambos representan YUV4: 2: 2 de 8 bits, la única diferencia es la forma en que se almacenan en la memoria.

La IP de búfer de fotogramas de vídeo se recomienda para nuevos diseños.

Las direcciones IP de lectura / escritura del búfer de fotogramas de vídeo se documentan en (PG278).

Generación del diseño de ejemplo para la IP del búfer de fotogramas de video

Nota: Esto se basa en el diseño de ejemplo disponible en la versión 2019.2.

Diseño de ejemplo de hardware (Vivado 2019.2)

Para generar la parte de hardware (Diseño Vivado) del Diseño de Ejemplo de Aplicación, siga los pasos del Capítulo 5 de (PG278). Hay diseños de ejemplo disponibles para las placas KC705, ZCU102, ZCU104 y ZCU106. Recomendaría comenzar con el diseño de ejemplo incluso si no tiene ninguna de las placas de evaluación mencionadas anteriormente. Este es siempre el mejor punto de partida.

Note: para generar el diseño de ejemplo con una licencia Vivado WebPack, utilice la placa ZCU104 como punto de partida.

Hay dos diseños de ejemplo diferentes. Uno para la IP de lectura del búfer de fotogramas de video y otro para la IP de escritura del búfer de fotogramas de video.

Recomiendo usar el diseño de ejemplo para la IP de escritura del búfer de fotogramas de video, ya que incluye las direcciones IP de escritura del búfer de fotogramas de video y de lectura del búfer de fotogramas de video.

El diseño de hardware para el ejemplo de diseño de IP de escritura de búfer de fotogramas de vídeo es bastante básico.

Utiliza una IP de lectura de búfer de fotogramas de video para leer datos de la memoria a la interfaz AXI4-Stream.

Esto luego se convierte a video nativo y de nuevo a AXI4-Stream usando AXI4-Stream to Video Out y Video in a AXI4-Stream IPs.

Finalmente, los datos de AXI4-Stream se vuelven a escribir en la memoria utilizando la IP de escritura del búfer de fotogramas de vídeo.

1.jpg

Hay dos cosas que creo que es importante tener en cuenta en este diseño:

  1. Las dos direcciones IP de búfer de fotogramas de vídeo (lectura y escritura) tienen sus salidas de interrupción conectadas al procesador. Este es un requisito. El búfer de fotogramas de vídeo es una IP basada en interrupciones.

2.jpg

  1. La entrada de reinicio para las dos IP de búfer de fotogramas de video está conectada a una IP AXI GPIO. Esto es importante ya que le permite hacer un reinicio suave (desde el procesador) de las IP. Al igual que con cualquier IP de HLS, el búfer de fotogramas de video debe restablecerse si cambia la resolución.

Aplicación de ejemplo (Vitis 2019.2)

Para generar la aplicación de ejemplo, comience dentro de Vivado exportando el hardware a Xilinx Vitis (Archivo> Exportar> Exportar hardware…).

Asegúrese de que el flujo de bits esté incluido en el hardware exportado. Esto creará un archivo XSA.

1.JPG

Inicie Xilinx Vitis y seleccione un directorio que desee utilizar como espacio de trabajo.

En Vitis, seleccione Nuevo> Proyecto de plataforma.

2.JPG

Ingrese el nombre de la plataforma que elija (por ejemplo, v_frmbuf_zcu104_pfm) y haga clic en Siguiente.

3.JPG

Asegúrese Crear a partir de la especificación de hardware (XSA) está seleccionado y haga clic en Siguiente.

4.JPG

Seleccione el archivo XSA que ha exportado desde Vivado, asegúrese de que el procesador A53 esté seleccionado y haga clic en finalizar.

5.JPG

Una vez creada la plataforma, haga clic en Board Support Package debajo de psu_cortexa53_0> independiente en psu_cortexa53_0 y expandir el Controladores periféricos .

6.JPG

under Controladores periféricos, busque la línea correspondiente a Video Frame Buffer Write (v_frmbuf_wr) y haga clic en Importar ejemplos.

7.JPG

Seleccione el ejemplo (xv_frmbufwr_example) y haga clic en Aceptar.

8.JPG

Ejecutando la aplicación de ejemplo

Note: Los siguientes pasos asumen que la placa está encendida y conectada a través de UART, con los interruptores de modo BOOT configurados en modo JTAG y JTAG, y que un terminal UART (Tera Term por ejemplo) está abierto al puerto COM correcto.

Cree la aplicación seleccionándola y haciendo clic en el icono de martillo:

11.JPG

Para iniciar la aplicación de ejemplo en el hardware, haga clic con el botón derecho en la aplicación de diseño de ejemplo y haga clic en Ejecutar como> Ejecutar configuraciones...

9.JPG

En Cree, administre y ejecute configuraciones ventana, haga clic derecho en Depuración de una sola aplicación y haga clic Nueva configuración.

10.JPG

En la pestaña Configuración de destino de la ventana de configuración, asegúrese de que psu_init (si se ejecuta en la placa ZCU102, ZCU104 o ZCU106) y el programa FPGA estén habilitados y haga clic en Ejecutar.

12.JPG

En el terminal UART, debería ver que la aplicación está probando diferentes combinaciones de resolución de video / espacio de color.

10.jpg

Al final de la aplicación, puede dar razones por las que algunas de las pruebas no funcionaron (básicamente si la configuración del hardware no lo admite).

11.jpg

El espacio de color y la resolución de video probados se definen en las estructuras ColorFormats y TestModes en la aplicación.

12.jpg

13.jpg

Puede cambiar estas estructuras si desea probar menos formatos de color o si desea probar diferentes resoluciones de video.


¿Le gustó esta serie de videos?

  • Puede dar Kudos usando el botón Kudos  felicitaciones.JPG
  • Compártelo en las redes sociales con el botón Compartir compartir.JPG
  • No dude en comentar sobre este tema o crear un nuevo tema en los foros para hacer preguntas.

¿Quieres más de la serie de videos?

Pagar PrimeXBT
Opere con los socios CFD oficiales del AC Milan
La forma más fácil de operar con criptomonedas.
Fuente: https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Video-Series-34-Getting-started-with-the-Video-Frame-Buffer-IP/ba-p/ 1029060

punto_img

Información más reciente

punto_img