Uso de Xilinx ISE Design Suite para preparar módulos Verilog para integración en LabVIEW FPGA

Actualizado el Aug 2, 2023

Ambiente

Software

  • LabVIEW FPGA Module

Otros

  • Xilinx ISE Design Suite

Dos de los lenguajes de descripción de hardware más utilizados son VHDL y Verilog. LabVIEW FPGA soporta de forma nativa la integración de IP escrita en VHDL. Sin embargo, no es posible integrar de forma nativa IP escrita en Verilog. Este tutorial muestra cómo usar Xilinx ISE Design Suite para preparar un módulo Verilog existente para su integración en LabVIEW FPGA a través de uno de los siguientes métodos:

  • IP de Nivel de Componente (CLIP) : se ejecuta en paralelo, independientemente del flujo de datos del VI
  • Nodo de Integración de IP (IPIN) : se ejecuta según lo definido por el flujo de datos de VI


Nota: Si usa Xilinx Vivado Design Suite, consulte Uso de Xilinx Vivado Design Suite para preparar módulos Verilog para la integración en LabVIEW FPGA (en inglés).

Software y archivos necesarios

Para completar este tutorial, debe tener instalado el siguiente software:

  • Entorno de desarrollo de LabVIEW
  • Módulo LabVIEW FPGA
  • Herramienta de compilación LabVIEW FPGA Module Xilinx para ISE
  • Una copia con licencia de Xilinx ISE Design Suite (para desarrollo HDL)


Debe descargar y extraer la carpeta zip adjunta que será el directorio de trabajo para el tutorial. La carpeta contiene todos los archivos HDL que se usarán a lo largo del tutorial y un proyecto LabVIEW FPGA completo con IP integrado a través de CLIP e IPIN.

Módulo Verilog

Con el fin de este tutorial, se ha proporcionado un módulo Verilog simple como punto de partida. El archivo se puede encontrar en los archivos adjuntos en la siguiente ubicación:

.. \ verilog_integration_tut \ Adder.v.

Adder.v crea
una instancia de un sumador de 8 bits impulsado por reloj con un reinicio asincrónico y habilitación de reloj. La siguiente tabla muestra la definición de puerto para el componente.

Puerto

Dirección

Descripción

clk

en

Reloj de entrada que impulsa el componente

clkEn

en

Habilitar la señal para la sincronización del reloj

se establecen

en

Restablecimiento asincrónico

dataInA (7: 0)

en

Puerto de datos de entrada de 8 bits A

dataInB (7: 0)

en

Puerto de datos de entrada de 8 bits B

salida de datos (7: 0)

afuera

Puerto de datos de salida de 8 bits

 

Opciones de integración

Para integrar IP externa o de terceros en LabVIEW FPGA, puede usar IP a Nivel de Componente (CLIP) o el Nodo de Integración de IP (IPIN). Si bien ambos permiten la integración de código externo a LabVIEW, estas opciones tienen diferentes casos de uso y limitaciones. NI recomienda que consulte la Ayuda de LabVIEW (en inglés) para conocer los diferentes requisitos de diseño antes de integrar cualquier IP externa.

Una diferencia que es relevante para este tutorial es que el archivo de síntesis de nivel superior para CLIP debe ser un archivo VHDL, mientras que IPIN puede usar listas de red como archivo de síntesis de nivel superior. Esto significa que la generación de un contenedor VHDL es necesaria para CLIP pero opcional para IPIN. Sin embargo, IPIN puede requerir un contenedor VHDL en escenarios específicos. Por ejemplo, cuando un tipo de puerto de nivel superior del módulo Verilog no es compatible con LabVIEW.

Configuración de un proyecto ISE

Para preparar un módulo Verilog para su integración en LabVIEW FPGA, primero debe crear un proyecto y configurarlo correctamente en Xilinx ISE Design Suite.

  1. Abra Xilinx ISE Design Suite desde Inicio »Todos los Programas» Xilinx ISE .

  2. Haga clic en Archivo »Nuevo Proyecto y configure la página Crear Nuevo Proyecto como se muestra a continuación.

  1. Haga clic en Siguiente .

  2. En la página Configuración del Proyecto , configure las configuraciones Familia, Dispositivo, Paquete y Velocidad según sea necesario para su objetivo FPGA. Puede encontrar los detalles de cada objetivo en la sección General de la ventana Propiedades del Objetivo FPGA en LabVIEW. En este tutorial, prepararemos IP para usar en un PXIe-7965R (FlexRIO).

  3. Seleccione VHDL como Idioma Preferido para asegurarse de que los archivos siempre se generen en VHDL.

  1. Haga clic en Siguiente hasta llegar a la página Resumen del Proyecto y luego haga clic en Finalizar .

 

Agregar una fuente de nivel superior

  1. En la vista Implementación de diseño, haga clic con el botón derecho en el objetivo FPGA y seleccione Agregar Fuente .
  2. Busque el módulo Adder.v Verilog en el directorio de trabajo y haga clic en Abrir .

 

  1. Haga clic en Aceptar para agregar el módulo Verilog al proyecto.

Sintetizando el Diseño

Una vez que se agrega el módulo Verilog al proyecto, se debe sintetizar en un formato de lista de red compatible que pueda ser utilizado por un módulo VHDL. Este tutorial utiliza el formato NGC.

  1. En la vista Implementación del diseño, haga clic en Adder (Adder.v) .

  2. En la vista Procesos, haga clic con el botón derecho en Sythesize-XST y seleccione Propiedades del Proceso. .

  1. Seleccione la categoría Opciones Específicas de Xilinx en la ventana Propiedades del Proceso .

  2. Establezca la propiedad Add I / O Buffers en FALSE . No habrá conexiones de pines FPGA directas cuando usemos este componente dentro de un diseño de LabVIEW FPGA, haciendo que estos búferes sean innecesarios.

  3. Establezca el valor de la propiedad Empaquetar Registros de E / S en IOB en No.

  1. Haga clic en Aplicar para guardar los cambios y haga clic en Aceptar para salir de la ventana Propiedades del Proceso .

  2. En la vista Procesos, haga clic con el botón derecho en Synthesize-XST y haga clic en Ejecutar.

  1. Durante la síntesis, se crea un archivo netlist de Xilinx NGC llamado Adder.ngc . Esta netlist es un código sintetizado que define el componente que se empaquetará. En el directorio de trabajo del proyecto ISE, busque el archivo Adder.ngc y anote su ubicación.

Creación del modelo de simulación VHDL

La creación de un modelo de simulación VHDL le permite simular con precisión el comportamiento de un módulo Verilog a partir de un contexto VHDL.

Nota: Este paso es necesario solo si planea simular IP a nivel de componente en un simulador de terceros como Xilinx ISIM (en inglés). En el caso del Nodo de Integración IP, el comportamiento de la simulación se puede establecer en un Modelo de Post-Síntesis para propósitos de simulación dentro del ambiente de LabVIEW. Como la IP a nivel de componente no se puede simular directamente dentro de LabVIEW FPGA, excluir la lista de conexiones del modelo de simulación permitirá una funcionalidad completa para la mayoría de los casos de uso. Para obtener más información sobre cómo depurar código LabVIEW FPGA mediante simulación, consulte Prueba y depuración de código LabVIEW FPGA (en inglés).

  1. Expanda Synthesize-XST , haga clic con el botón derecho en Generar Modelo de Simulación Posterior a la Síntesis y seleccione Ejecutar.

  1. Se crea un modelo de simulación VHDL post-síntesis. En el directorio de trabajo, busque Adder_synthesis.vhd y anote su ubicación.

Creación de un contenedor VHDL

Para integrar una lista de red NGC en LabVIEW FPGA, debe crear un archivo contenedor VHDL que instancia el componente. Por lo general, la creación de este archivo no es difícil, pero puede requerir algunos conocimientos del lenguaje VHDL.

  1. En la vista Implementación de diseño, haga clic con el botón derecho en el objetivo FPGA y seleccione Nueva Fuente.

  2. Cree un nuevo módulo VHDL configurando la ventana como se muestra a continuación.

  1. Haga clic en Siguiente para pasar a la página Definir Módulo . Configure la página como se muestra a continuación. Asegúrese de que los puertos definidos para el módulo contenedor VHDL coincidan con los puertos definidos en el módulo Verilog original. Los módulos de envoltura requieren un conjunto de puertos que correspondan a la IP original.

  1. Haga clic en Siguiente hasta llegar a la página Resumen y luego haga clic en Finalizar.
  2. Cree una instancia del componente Adder en las declaraciones de arquitectura del módulo VHDL como se muestra a continuación.

  1. Asigne los puertos del componente Adder a los puertos de nivel superior del AdderWrapper.

  1. Haga clic en Archivo »Guardar .

Integrando la IP en LabVIEW

Una vez que haya sintetizado el módulo Verilog en una lista de redes y creado un contenedor VHDL, se aplica el procedimiento de integración IP estándar para CLIP o IP Integration Node.

  1. Reúna los archivos HDL y de síntesis necesarios. Necesitará el contenedor VHDL y todas las listas de red, así como sus modelos de simulación. Para este diseño necesitará los siguientes archivos:

    • AdderWrapper.vhd : el contenedor VHDL creado en este tutorial para el módulo Verilog. Este será el módulo de nivel superior.

    • Adder.ngc : la lista de conexiones sintetizada para el módulo Verilog.

    • Adder_synthesis.vhd : el modelo de simulación para la lista de conexiones del módulo Verilog. Para usar esto al importar la IP a LabVIEW, configure el comportamiento de simulación de Adder.ngc en Definido por el usuario y seleccione este archivo.

  2. Siga los pasos en el Tutorial Importación de IP externa a LabVIEW FPGA (en inglés) para integrar la IP en LabVIEW FPGA. Utilice los archivos enumerados anteriormente al elegir archivos de síntesis.