Generando e Integrando Aurora IP en su proyecto de LabVIEW

Actualizado el Dec 5, 2023

Ambiente

Hardware

  • PXIe-6591
  • PXIe-6592
  • High-Speed Serial Instrument

Software

  • LabVIEW
  • LabVIEW FPGA Module

Este artículo proporciona un procedimiento paso a paso para generar un núcleo de IP en particular (Aurora) y explica cómo integrar la IP generada en un proyecto de LabVIEW para que pueda compilar y trabajar con la IP.

Antes de que empieces

Instale el software y los controladores adecuados para su dispositivo. Consulte la Guía de Inicio de su dispositivo que se encuentra en la sección Recursos adicionales de este documento.

Consulte "Cómo utilizar su conjunto de documentación" en la Guía de inicio correspondiente para obtener más detalles sobre cómo realizar los pasos siguientes.

Abrir Vivado

Nota: La compatibilidad con Vivado 2013.4 es solo para Windows 7.

Abra el directorio de la herramienta Xilinx Vivado navegando a C: \ NIFPGA \ programas \ VivadoXXXX_Y \ bin \ vivado.bat, donde XXXX_Y es la versión de Vivado que se abrirá.

Crear un proyecto de IP administrado

Se le pedirá que cree un nuevo proyecto y siga el asistente para completar este proceso. El FPGA de Xilinx que se usa en el 6591R es el xc7k410tffg900-3, y el 6592R usa el xc7k410tffg900-2. Seleccione uno de los dos para completar la creación del nuevo proyecto.

Una vez que se crea el nuevo proyecto, siga el proceso de agregar IP a su proyecto a través del Catálogo de IP dentro de Vivado.

Elija Aurora IP del catálogo de IP

En este punto, elija el esquema de codificación que desee. Trabajaremos con la IP 64b / 66b. Haga doble clic en la IP para abrir la ventana de personalización del núcleo de IP. Es posible que se le solicite que Generate Output Products en este momento. Si es así, seleccione Generate.

Modificar propiedades principales

Desde el Manual del usuario, NI recomienda no usar AXI4-Lite para DRP, por lo que seleccionamos Native para este paso. Para este ejemplo en particular, todas las demás opciones principales se dejarán por defecto.

En la pestaña GT Selections, implemente un puerto en Quad 3. De acuerdo con la información de ubicación de los puertos en el 6591R / 92R, seleccione lo siguiente:

Cuando haya terminado, seleccione  OK y Generate para generar los productos de salida. El resultado será un núcleo de IP sintetizado (archivo .xci) que se muestra a continuación.

Nota: Nuestros proyectos de muestra vienen con un archivo .xci que contiene todas las configuraciones principales utilizadas para el CLIP del proyecto de muestra.

Así es como se ve en la pestaña IP Sources:

Crear archivos de lista de redes .edf

Si el núcleo de IP que está utilizando está escrito en Verilog, se debe crear una lista de conexiones para compilar correctamente el diseño. Haga clic con el botón derecho en el archivo .xci en la ventana de Sources y seleccione Open IP Example Design.

En la nueva ventana de Vivado que aparece, seleccione el VI de nivel superior para el que le gustaría generar una lista de conexiones, y luego haga clic en Run Synthesis en el lado izquierdo.

Una vez que se complete la síntesis, seleccione Open Synthesized Design de una de las siguientes maneras:

  1. En la ventana emergente
  2. Seleccione Open Synthesized Design en el panel de la izquierda en Synthesis
  3. Abra la pestaña Design Runs y haga clic con el botón derecho, luego seleccione Open Synthesized Design

Ejemplo de la ventana emergente donde se puede seleccionar Open Synthesized Design :

Para escribir el archivo .edf, use este comando Tcl en el proyecto:
write_edif <nombre de la entidad> .edf

Esto crea la lista de conexiones que necesitará usar cuando importe el núcleo de IP a su proyecto de LabVIEW. Puede encontrarlo en la ubicación indicada por la salida de la ventana de la Tcl Console.

Para el proyecto de muestra Aurora, se crearon varios archivos .edf con este método, incluidos los siguientes archivos:

Para crear archivos .edf para esos bloques específicos, deberá permanecer en la ventana Synthesized Design en Vivado, donde puede ver varias celdas asociadas con el diseño en la ventana Netlist:

Para crear un .edf para una celda asociada, ingrese el siguiente comando:
write_edif -cell <nombre de la celda> <nombre de archivo> .edf

Por ejemplo, para crear clock_module.edf, el comando sería:
write_edif -cell clock_module_i aurora_64b66b_clock_module.edf

Nota: Es posible que deba especificar un nombre de ruta más largo según la ubicación de la celda en su proyecto. Por ejemplo, clock_module_i puede estar debajo de aurora_64b66b_0_block_i / clock_module_i

Agregar restricciones

En la misma ubicación que el archivo .edf resultante, encontrará el archivo .xdc de restricciones en la carpeta .srcs. Deberá agregar esto a su proyecto de LabVIEW para restringir correctamente su núcleo:

Agregar un archivo de restricciones requerirá algunas modificaciones para que las restricciones funcionen en LabVIEW vs Vivado. Una aplicación exitosa de restricciones en Vivado no asegurará que las restricciones se apliquen correctamente en LabVIEW. Asegúrese de monitorear el registro de Xilinx generado por la compilación de su proyecto LV FPGA para identificar cualquier restricción no aplicada y corregir los problemas a medida que surjan.

Consulte el Manual del usuario para obtener más información sobre el uso de %ClipInstancePath% en restricciones, de modo que el compilador Vivado pueda ubicar las celdas, pines o bloques restringidos en el flujo de diseño LV FPGA.

Escribir un contenedor VHDL alrededor del núcleo IP

En este punto, el núcleo está listo para integrarse en un VHDL Wrapper, que esencialmente se convertirá en el IP de nivel de componente (CLIP) para el 6591R / 92R.

Este proceso no es trivial y requiere una comprensión profunda del conocimiento y la experiencia en Diseño Digital. También implicará comprender la interfaz FPGA proporcionada por el 6591R / 92R y poder interconectar adecuadamente esas señales con el núcleo IP y la envoltura.

Consulte un proyecto de muestra prediseñado para comprender mejor lo que se requiere en un CLIP.

Consulte el Manual del usuario para obtener más detalles y asistencia sobre este proceso.

Sintetizar proyecto completo

Cuando tenga su archivo .edf y sus archivos .xdc creados, junto con la fuente HDL integrada en un CLIP, ahora está listo para pasar al proyecto de LabVIEW y comenzar a integrar su IP en el 6591R / 92R. El último paso recomendado antes de acercarse a este punto es sintetizar y depurar su diseño aquí para asegurarse de que funcione completamente.

En este escenario, es deseable un banco de pruebas VHDL para probar la funcionalidad del núcleo de IP y verificar que el contenedor funcione correctamente. Xilinx proporciona diseños de ejemplo con archivos de simulación que pueden ser un punto de partida para crear su propio banco de pruebas para su diseño.

Tener una buena comprensión del CLIP y el conocimiento de que está funcionando le ayudará a depurar su diseño mientras continúa el desarrollo en LV FPGA. De esa manera, los archivos de bits compilados en LabVIEW que terminan fallando o causando problemas se pueden depurar en LV FPGA con confianza.

Cree un proyecto de LabVIEW

Abra LabVIEW (última versión compatible) y cree un nuevo proyecto. Puede hacer clic con el botón derecho en Mi PC y seleccionar New »Targets and Devices para agregar el objetivo FPGA 6591R / 92R al proyecto.

Consulte el Manual del usuario para obtener más detalles y asistencia sobre este proceso.

Agregar CLIP al proyecto

Una vez que el objetivo está configurado, es hora de integrar su núcleo IP en su envoltorio VHDL (CLIP) en el proyecto de LabVIEW para que pueda interactuar con las señales CLIP y compilar diseños basados en su CLIP. Haga clic derecho en FPGA Target y seleccione Properties para abrir una nueva ventana de configuración.

Para agregar un CLIP a su proyecto, seleccione el elemento Component-Level IP en la sección de la izquierda y haga clic en el botón superior derecho para Crear Archivo , que iniciará el Asistente de CLIP . Siga los pasos del asistente de CLIP para crear su CLIP engarzado para el proyecto.

La nota importante en este proceso es que cuando agrega archivos fuente al CLIP, querrá incluir su archivo CLIP de nivel superior, cualquier archivo HDL referenciado por su CLIP, sus listas de red .edf para su núcleo de IP y su archivo de restricciones .xdc para el nivel superior VHDL Wrapper. Del proyecto de muestra Aurora:

Consulte el Manual del usuario para obtener más detalles y asistencia sobre este proceso.

Compile con éxito el proyecto LV FPGA

Suponiendo que el CLIP se sintetizó correctamente en Vivado, cree una especificación de compilación en el proyecto de LabVIEW para iniciar la compilación del código CLIP + LV FPGA asociado con el objetivo. Si las restricciones se realizan correctamente, no hay violaciones de tiempo en el diseño y no hay otros problemas presentes, debería terminar con un archivo de bits completo para el 6591R / 92R.

Se necesitará algo de trabajo en el lado LV FPGA para traer datos al Host, y también para configurar el CLIP y usar interfaces estandarizadas asociadas con el núcleo IP. Proporcionamos muchas bibliotecas de diseño de instrumentos (IDL) que lo ayudarán a crear la interfaz desde el CLIP hasta su host.

¡Felicidades! Ha tomado la IP de un tercero y ha configurado, generado e integrado esta IP en una aplicación 6591R / 92R.