INTRODUCCIÓN

El diseño básico del sistema Arty es un proyecto prediseñado que conecta todos los hardware necesarios de la Arty al procesador Microblaze para ser utilizados en Xilinx SDK. Ello permite al usuario saltar directamente al diseño de software en SDK.

En este tutorial, agregamos nuestro propio bloque IP personalizado en el diseño básico del sistema para ser utilizado con unos RGB LED programables.

Esta guía proporciona un ejercicio práctico paso a paso para la creación del diseño básico del sistema Arty – Proyecto en Vivado, y para empezar en Xilinx SDK.

Al final de este tutorial tiene:

  • Abierto el diseño de hardware (HW) basado en Microblaze prediseñado en Xilinx Vivado.
  • Importado e implementado un bloque personalizado DigiLEDs IP en el diseño.
  • Creado el proyecto .C en Xilinx Vivado SDK (Kit de Desenvolvimiento de Software /Software Development Kit) para interactuar/conectarse con Arty.

Pre requisitos:

Habilidades:

  • Familiaridad con Vivado
  • Experiencia del diseño de bloque

Hardware:

  • Placa Digilent FPGA Board
  • Cable Micro USB
    • Utilizado para la comunicación UART y programación JTAG
  • RGB LED programables (WS2812, Neopixel)
    • Cable de señal Data-in conectado a JB1 de la ARTY

Software:

  • Xilinx Vivado 2015.3 o 2015.4 con el paquete SDK.

Archivos de soporte de la placa:

  • Archivos de soporte de la Arty
    • Estos archivos describen las interfaces  GPIO  de su placa y facilitan la selección de su placa FPGA y adición de los bloques  GPIO IP.
    • Siga esta guía Wiki (Archivos soporte Vivado para las placas Digilent 7-Series FPGAsobre cómo se instalan los Archivos de soporte de la placa para Vivado.

Archivos de proyecto

  • Archivos tutoriales Arty BSD : ZIP

Flujo general de diseño

  1. Vivado
  • Abra Vivado
  • Ejecute el script BSD tcl para importar el proyecto
  • Agregue el IP personalizado DigiLEDs al repositorio IP del proyecto
  • Agregue el DigiLEDs IP al diseño y configúrelo.
  • Valide y guarde el diseño de bloque
  • Cree el envolvente/wrapper HDL del sistema
  • Ejecute Síntesis e Implementación del diseño
  • Genere el archivo Bit
  • Exporte el diseño de Hardware incluyendo el archivo bit stream en la herramienta SDK
  • Lance SDK

Ahora el diseño de Hardware es exportado a la herramienta SDK. La transferencia Vivado a SDK está realizada por el programa Vivado. Utilizamos SDK para crear una aplicación Software que utilizará los datos personalizados de la interfaz de la placa/plataforma y la configuración FPGA del hardware por la importación de información del diseño de hardware de Vivado.

2. SDK

  • Cree el proyecto nuevo de aplicación y seleccione la plantilla predeterminada Empty Application
  • Importe main.c
  • Programe FPGA

Tutorial

1. Crear un Proyecto nuevo

1.1) Descargue y extraiga los archivos del proyecto a un directorio que debe recordar. Podemos utilizar “C:/Work”  para este tutorial.

1.2) Abra Vivado y encuentre la Consola tcl en el fondo de la pantalla.

1.2) Escriba  “cd C:/Work/BSD/proj”  en la consola tcl, y ello te lleva a la carpeta que contiene el script tcl que debe generar el proyecto BSD.

1.3) Escriba  “source ./create_project”  en la consola tcl, y ello generará automáticamente el proyecto BSD.

Una vez terminado, podrá ver el Diseño básico del sistema Arty mostrado abajo.

2. Agregar nuestro repositorio personalizado IP

2.1) Encuentre y haga clic en  “Project Settings” (Configuración del proyecto) bajo Gestor de Proyecto/ Project Manager en la parte izquierda de Vivado.

2.2) Dentro de la configuración del proyecto, haga clic en “IP” en la parte izquierda. Luego haga clic en la pestaña “Gestor del Repositorio” y haga clic en el botón + (resaltado abajo).

2.3) Navegue en su carpeta de proyectos y seleccione la carpeta “DigiLED-master”.

2.4) Verifique que el nuevo repositorio se halle en la lista y haga clic en OK para salir de la configuración del proyecto.

3. Agregar nuestro IP personalizado

3.1) Haga clic en el botón “Agregar IP”  resaltado abajo.

3.2) Escriba “DigiLED” en el cuadro de búsqueda y haga doble clic en “DigiLED_v1.0”. Así agrega nuestro IP personalizado al diseño de bloque.

3.3) Haga clic en “Run Connection Automation”/Ejecute automatización conexión  y luego haga clic en “OK” para conectar el IP al Microblaze.

4. Configurar el IP

4.1) Encuentre el bloque  DigiLED_0  y haga doble clic en el bloque para personalizarlo.

4.2) Seleccione el punto sobresaliente HSV y cambie el número del campo LED al número de LED en su cinta de luz RGB LED antes de hacer clic en OK.

5. Agregar la clavija/en pin LED de señal

5.1) Haga clic derecho dentro de su diseño de bloque y haga clic en  “Crear Puerto”

5.2) Denomine el puerto “led_pin” y póngalo como una salida/Output. Haga clic en OK

5.3) Conecte el “led_pin” al “led_out” en el bloque DigiLED_0 utilizando su cursor (se ve como un lápiz).

5.4) En la parte izquierda de su diseño de bloque, seleccione la pestaña Fuentes, y abra el archivo  pins.xdc  dentro de la carpeta Limitaciones.

5.5) Copie la línea de abajo y peguela dentro de pins.xdc. Éste es el conectado al Conector JB1.

set_property -dict { PACKAGE_PIN E15   IOSTANDARD LVCMOS33 } [get_ports { led_pin }]; #IO_L11P_T1_SRCC_15 Sch=jb_p[1]

5.6) Guarde pins.xdc y ciérrelo.

6. Eliminar/Crear el envolvente/wrapper HDL de sistema

6.1) Dentro de la pestaña Fuentes, haga clic en “system_wrapper – STRUCTURE”  y pulse Eliminar/Delete. Puede también hacer clic derecho en “Eliminar archivo del Proyecto”. Chequee la casilla y haga clic en OK.

6.2) En la siguiente ventana emergente, haga clic en “Ignore y continúe con el módulo superior inválido” y haga clic en OK.

6.3) Haga clic derecho en  system.bd  y haga clic en  Crear envolvente/Wrapper HDL…

7. Generar el Archivo Bit

7.1) En la barra de herramientas superior, haga clic en Generar Flujo de bits. Si todavía no ha guardado su diseño, recibirás un indicador/ prompt para guardar el diseño de bloque.

7.2) Una vez el flujo de bits haya sido generado, un indicador / ventana emergente aparecerá en su pantalla. No necesita abrir el Diseño Implementado para esta demostración. Sólo haga clic en Cancelar.

8. Exportar el Diseño de Hardware a SDK

8.1) En la esquina superior izquierda de la ventana de la barra de herramientas, haga clic en  Archivo  y seleccione  Exporte Hardware.

Así se exporta el diseño de hardware design con el envolvente/ wrapper del sistema para la Herramienta de Desarrollo de Software (Software Development Tool) – Vivado SDK.

Asegúrese que el flujo de bits generado está incluido chequeando la casilla.

9. Lanzar SDK

9.1) En el Achivo , seleccione Lanzar SDK y haga clic en OK. El archivo SDK local creado para la ubicación del diseño de proyecto Vivado será lanzado. La transferencia a SDK de Vivado está completa.

10. Dentro de SDK para Vivado

10.1) Una ventana nueva para SDK será abierta. La especificación de diseño HW y los bloques IP incluidos se visualizan en el archivo  system.hdf . La herramenta SDK es independiente de Vivado, por ejemplo desde este punto puede crear su proyecto SW en C/C++ por encima del diseño HW exportado. Si es necesario, puede también lanzar SDK directamente de la carpeta SDK creada en el principal directorio del proyecto Vivado.

Ahora, si debe regresar a Vivado y hacer modificaciones en el diseño HW, se le recomienda a cerrar la ventana SDK y hacer las ediciones necesarias del diseño HW en Vivado. Luego debe seguir la secuencia de crear un envolvente/ wrapper HDL, guardar el diseño y la generación del archivo bit. Este nuevo archivo bit y envolvente/ wrapper del sistema deben ser luego exportados a SDK.

Dado que no tenemos que hacer ninguna edición al diseño HW en este momento, podemos empezar a crear una aplicación software.

10.2) En la esquina izquierda de la ventana principal SDK, está el panel Explorador del proyecto/ Project Explorer. Se puede ver que hay una carpeta principal del proyecto bajo el nombre de system_wrapper_hw_platform_0.

system es el nombre de su diseño de bloque creado en Vivado. Esta plataforma hardware tiene todas las definiciones de diseño HW, interfaces IP que han sido agregadas, información externa de la señal de salida e información de dirección de la memoria.

En caso de que en este momento haya cerrado SDK, puede hacer las ediciones a su diseño de hardware existente y exportar su diseño a SDK, y luego, después de lanzar la herramienta SDK, encontrará la nueva plataforma  de hardware llamada:  system_wrapper_hw_platform_1  además del antiguo diseño, por ejemplo  system_wrapper_hw_platform_0.

11. Crear el nuevo Proyecto de Aplicación en SDK

11.1) En el Archivo de la barra de herramientas principal, seleccione Nuevo Proyecto de Aplicación. Aparece una nueva ventana del proyecto.
Denomine su proyecto SDK sin espacios libres, como por ejemplo “DigiLEDs”. Asegúrese que el Hardware objetivo es el diseño de hardware correcto. En nuestro caso, será “system_wrapper_hw_platform_0”. Haga clic en “Siguiente”.

11.2) Seleccione Aplicación vacía bajo Plantillas disponibles en el panel izquierdo y haga clic en Terminar.

11.3) Una vez terminado el paso anterior, verá dos carpetas nuevas en el panel Explorador del Proyecto/ Project Explorer.

**DigiLEDs** which contains all the binaries, .C and .H (Header) files

**DigiLEDs_bsp** which is the board support folder

DigiLEDs es nuestra principal carpeta fuente de trabajo. Ella contiene también un archivo importante mostrado aquí, que es “lscript.ld”. Éste es un archivo Xilinx linker script autogenerado.

12. Agregar el Archivo fuente principal

12.1) Navegue a su carpeta de archivos del proyecto dentro del directorio de Trabajo y encuentre el archivo principal “main.c”.

12.2) Haga clic y arrastre este archivo main.c en la carpeta  DigiLEDs/src  dentro de Xilinx SDK. Elija copiar estos archivos fuente en el proyecto y haga clic en OK.

13. Programar FPGA con el Archivo Bit

13.1) Asegúrese de que Arty esté activada y conectada al servidor PC con el cable micro USB provisto.

En la herramienta de selección rápida verá un símbolo con una flecha roja y tres cajas cuadradas verdes. 

Haga clic en este símbolo para abrir la ventana del Programa FPGA.

Asegúrese que la Plataforma del Hardware está seleccionada como  system_wrapper_hw_platform_0. 

En la caja de configuración de software, bajo el archivo ELF a ser iniciado en la columna Block RAM, la opción de la fila debe mostrar bootloop. En caso contrario, haga clic en la fila y seleccione bootloop.

Ahora haga clic en Programa.

14. Programar el procesador Microblaze

14.1) Una vez FPGA haya sido programado exitosamente con el archivo bit, del panel Explorador del proyecto/Project Explorer, haga clic derecho en la carpeta del proyecto “DigiLEDs”. En  “Ejecute como” , seleccione “Launch en Hardware (depurador del sistema)

Su Arty puede iniciar la demostración DigiLEDs Demo. Pulsando el botón 0 pasará en ciclos por tres patrones en la tira LED RGB.