VIVADO
VIVADO
TRADUCCIÓN DE VIVADO
U2
Elaborado por:
Galván Chávez Daniela
Docente:
Uruapan Michoacán
INTRODUCCIÓN
Este tutorial lo guía a través del flujo de diseño usando el software Xilinx Vivado para crear un
circuito digital simple usando VHDL. Un flujo de diseño típico consiste en crear modelo (s),
crear archivo (s) de restricción de usuario, crear un proyecto Vivado, importar los modelos
creados, asignar archivo (s) de restricción creado, ejecutar opcionalmente simulación de
comportamiento, sintetizar el diseño, implementar el diseño , generando el flujo de bits y,
finalmente, verificando la funcionalidad en el hardware mediante la descarga del archivo de
flujo de bits generado. Pasará por el flujo de diseño típico dirigido a las placas DDR Basys3 y
Nexys4 basadas en Artix-7. El flujo de diseño típico se muestra a continuación. El número en
círculo indica el paso correspondiente en este tutorial.
Los objetivos
• Cree un proyecto de Vivado con el uso de modelos HDL y un dispositivo FPGA específico
ubicado en las placas DDR Basys3 o Nexys4
Este tutorial está dividido en pasos que consisten en declaraciones generales que
proporcionan información sobre las instrucciones detalladas que siguen. Siga estas
instrucciones detalladas para avanzar a través del tutorial.
Figura 3. Nombre del proyecto y entrada de ubicación
1-1-5. Seleccione la opción Proyecto RTL en el formulario Tipo de proyecto y haga clic en
Siguiente.
1-1-6. Seleccione VHDL como el idioma de destino y el idioma del simulador en el formulario
Añadir fuentes.
1-1-7. Haga clic en el botón Green Plus, luego haga clic en el botón Agregar archivos ..., vaya al
directorio c: \ xup \ digital \ sources \ tutorial, seleccione tutorial.vhd, haga clic en Abrir y
verifique que la casilla Copiar archivos de restricciones en proyectos esté marcada . Luego haga
clic en Siguiente.
1-1-8. Haga clic en Siguiente en el formulario Agregar IP existente.
1-1-9. En el formulario Agregar restricciones, haga clic en el botón Verde Plus, luego en el
botón Agregar archivos ..., busque el directorio c: \ xup \ digital \ sources \ tutorial, seleccione
Basys3_Master.xdc (para Basys3) o Nexys4DDR_Master.xdc (para Nexys4 DDR), haga clic en
Abrir y, a continuación, haga clic en Siguiente.
El archivo de restricción XDC asigna las ubicaciones físicas de E / S en FPGA a los interruptores
y los LED ubicados en la placa. Esta información se puede obtener a través del esquema de la
placa o la guía del usuario de la placa.
1-1-10. En el formulario Pieza predeterminada, utilizando la opción Piezas y varios campos
desplegables de la sección Filtro, seleccione la pieza xc7a35tcpg236-1 (para Basy3) o la pieza
xc7a100tcsg324-1 (para Nexys4 DDR). Haga clic en Siguiente.
Figura 4. Selección de piezas para Basys3
Figura 4. Selección de parte para Nexys4 DDR
1-1-11. Haga clic en Finalizar para crear el proyecto Vivado.
1-1-12. Use el Explorador de Windows y busque en el directorio c: \ xup \ digital \ tutorial.
Usted encontrará que el
Se han creado tutorial.srcs y otros directorios, y el archivo de proyecto tutorial.xpr (Vivado). Se
crean dos subdirectorios, constrs_1 y sources_1, bajo el directorio tutorial.srcs; en el fondo,
debajo de ellos, se colocan los archivos Nexys4DDR_Master.xdc o Basys3_Master.xdc
(restricción) y tutorial.vhd (fuente) copiados, respectivamente.
Figura 5. Estructura del directorio generado.
1-2. Abra la fuente tutorial.vhd y analice el contenido.
1-2-1. En el panel Fuentes, haga doble clic en la entrada tutorial.vhd para abrir el archivo en
modo de texto.
El diseño toma la entrada de los interruptores deslizantes 0 a 7 de la placa y alterna los LED en
la placa. Como la lógica combinatoria se inserta entre algunos interruptores, los LED se
encenderán / apagarán dependiendo del patrón de los interruptores. Esta es una
demostración de lógica combinatoria muy básica.
Figura 6. Apertura del archivo fuente
1-3. Abra la fuente Basys3_Master.xdc o Nexys4DDR_Master.xdc, analice el contenido y edite
el archivo.
1-3-1. En el panel Fuentes, expanda la carpeta Restricciones y haga doble clic en la entrada
Basys3_Master.xdc (Basys3) o Nexys4DDR_Master.xdc (Nexys4 DDR) para abrir el archivo en
modo texto.
Figura 7. Apertura del archivo de restricción
1-3-2. Descomente SW [7: 0] eliminando el signo # o resaltando SW [7: 0] y presionando
CTRL /. Uncomment LED [7: 0]. Los nombres de los pines se deberán cambiar para que
coincidan con los nombres de los pines en el archivo tutorial.vhd.
Figura 8. Edición del Basys3 Master XDC
Figura 8. Edición del Nexys4 DDR Master XDC
1-3-3. Cambie el nombre de sw [*] a swt [*], y el LED [*] a led [*], ya que los nombres de los
puertos en el modelo son swt y led.
1-3-4. Cierre el archivo Basys3_Master.xdc o el archivo Nexys4DDR_Master.xdc que guarda los
cambios.
1-4. Realizar el análisis de RTL en el archivo de origen.
1-4-1. En el panel Fuentes, seleccione la entrada tutorial.vhd y haga clic en Esquema (es
posible que tenga que expandir la entrada Abrir diseño elaborado) en las tareas de Análisis RTL
del panel Navegador de flujo.
Se muestra una vista lógica del diseño.
Figura 9. Una vista lógica del diseño.
Observe que algunas de las entradas del conmutador pasan por las puertas antes de enviarse a
los LED y el resto pasa directamente a los LED como se modela en el archivo.
1-5. Restricciones de E / S
1-5-1. Una vez que se realiza el análisis de RTL, está disponible otro diseño estándar
denominado diseño de planificación de E / S. Haga clic en el botón desplegable y seleccione el
diseño de planificación de E / S.
Figura 10. Selección de diseño de planificación de E / S
Observe que la vista Paquete se muestra en el área Vista auxiliar, la pestaña Lista de red RTL
está seleccionada y la pestaña Puertos de E / S se muestra en el área Vista de consola. También
tenga en cuenta que los puertos de diseño (led y swt) se enumeran en la pestaña Puertos de
E / S, y ambos tienen múltiples estándares de E / S.
Mueva el cursor del mouse sobre la vista del paquete, resaltando diferentes pines.
Observe que la vista Paquete se muestra en el área Vista auxiliar, la pestaña Lista de red RTL
está seleccionada y la pestaña Puertos de E / S se muestra en el área Vista de consola. También
tenga en cuenta que los puertos de diseño (led y swt) se enumeran en la pestaña Puertos de
E / S, y ambos tienen múltiples estándares de E / S.
Mueva el cursor del mouse sobre la vista del paquete, resaltando diferentes pines. Observe
que el número de sitio del pin se muestra en la parte inferior de la GUI de Vivado, junto con el
tipo de pin (User IO, GND, VCCO ...) y el banco de E / S al que pertenece.
Figura 11. Vista de diseño de planificación de E / S para Nexys4 DDR
Puede expandir los puertos led y swt haciendo clic en el cuadro + y observe que led [7: 0] y swt
[7: 0] tienen pines asignados y utilizan el estándar de E / S LVCMOS33. Para cambiar el
Estándar de E / S, debe hacer clic en la E / S estándar del puerto deseado y seleccionar el
Estándar de E / S apropiado. El archivo maestro XDC ya tiene el estándar de E / S correcto al
editar el archivo en los pasos 1-3-3.
Figura 12. Pestaña Puertos de E / S para Nexys4 DDR
Los puertos ya tienen asignados los pines. Si desea asignar pines en esta vista, debe hacer clic
en la columna Sitio a lo largo de la fila del puerto deseado para abrir un cuadro desplegable.
Escriba la variable de puerto adecuada para saltar a los pines con esa variable. Desplácese
hacia abajo hasta que vea el nombre de puerto correcto, luego selecciónelo y presione la tecla
Intro para asignar el pin.
Figura 13. Asignación de ubicación del pin
También puede asignar el pin seleccionando su entrada en la pestaña Puertos de E / S,
arrastrándolo a la vista Paquete y ubicándolo en la ubicación deseada
También puede asignar el estándar de E / S seleccionando su entrada en la pestaña Puertos de
E / S, seleccionando la pestaña Configurar de la ventana Propiedades del puerto de E / S, y
luego haciendo clic en el botón desplegable del campo Estándar de E / S, seleccionando
LVCMOS33.
Figura 14. Asignación de estándar de E / S a través del formulario Propiedades de puerto de E /
S
También puede asignar las restricciones de pines y los estándares de E / S mediante los
comandos tcl, escribiendo el comando en la pestaña de la consola Tcl para asignar la ubicación
del pin R13 y la E / S LVCSMOS33 como se muestra a continuación y presionando la tecla Intro
después del comando.
set_property -dict {PACKAGE_PIN R13 IOSTANDARD LVCMOS33} [get_ports {swt [7]}];
Simular el diseño utilizando el simulador de XSim, paso 2
2-1. Agregue el archivo tutorial_tb.vhd testbench.
2-1-1. Haga clic en Agregar orígenes en las tareas de Project Manager del panel de Flow
Navigator.
Figura 15. Añadir fuentes
2-1-2. Seleccione la opción Agregar o Crear orígenes de simulación y haga clic en Siguiente.
Figura 16. Selección de la opción Fuentes de simulación
2-1-3. En el formulario Agregar archivos de fuentes, haga clic en el botón verde más y luego
haga clic en el botón Agregar archivos ...
2-1-4. Vaya a la carpeta c: \ xup \ digital \ sources \ tutorial, seleccione tutorial_tb.vhd y haga
clic en Aceptar.
2-1-5. Haga clic en Finalizar.
El archivo tutorial_tb.vhd se agregará al grupo de fuentes de simulación, y tutorial.vhd se
colocará automáticamente en su jerarquía como una instancia tut1.
Figura 17. Jerarquía de fuentes de simulación.
2-1-6. Con el Explorador de Windows, verifique que el directorio sim_1 se haya creado al
mismo nivel que los directorios constrs_1 y sources_1 en el directorio tutorial.srcs, y que se
coloque una copia de tutorial_tb.vhd en tutorial.srcs> sim_1> importados> fuentes.
2-1-7. Haga doble clic en tutorial_tb para ver su contenido.
El banco de pruebas VHDL tiene la misma estructura que cualquier código fuente de diseño
VHDL. Hay algunas excepciones que necesitan alguna explicación. Después de las
declaraciones de la biblioteca, tenga en cuenta que la declaración de la entidad se deja vacía
en las líneas 16 y 17. La unidad bajo prueba (UUT, o el código VHDL que se está simulando) se
crea como una declaración de componente de las líneas 20 a 25. Para generar los resultados
esperados Durante la simulación, las líneas 38 a 48 simulan el comportamiento de la UUT. Las
líneas 49 a 52 son la declaración de puerto para el UUT. Las líneas 56 a 86 definen la
generación de estímulos y comparan la salida esperada con la salida UUT. La línea 87 termina
el banco de pruebas.
Para proporcionar comentarios al usuario a través de la ventana de la consola del simulador
Vivado, examine las líneas 74 a 80. Tenga en cuenta que varias líneas se han concatenado en
una línea, separadas por el carácter de final de línea VHDL ";".
2-2. Simule el diseño para 1000 ns usando el simulador XSIM.
2-2-1. Haga clic en Configuración de simulación, seleccione la pestaña Simulación. Cambia el
tiempo de simulación a 1000 ns. Haga clic en Aplicar, luego haga clic en Aceptar.
2-2-2. Seleccione tutorial_tb en el grupo Orígenes de simulación y haga clic en Ejecutar
simulación en el panel Navegador de flujo. Seleccione la opción Ejecutar simulación de
comportamiento.
Se compilarán los archivos de banco de pruebas y fuente y se ejecutará el simulador Vivado
(suponiendo que no haya errores). Verá una salida de simulador similar a la que se muestra a
continuación. Verá resultados coincidentes y no coincidentes del UUT y del procedimiento en
el banco de pruebas. Los desajustes se insertaron deliberadamente para demostrar la
funcionalidad TEXTIO del banco de pruebas VHDL.
Figura 22. Vista del resumen del proyecto para Nexys4 DDR
Haga clic en los distintos enlaces para ver cuál proporciona información y qué le permite
cambiar la configuración de la síntesis.
3-1-4. Haga clic en el enlace Mostrar gráfico en la pestaña Resumen del proyecto.
Tenga en cuenta que se estima que se utilizan tres LUT y 16 IO (8 entradas y 8 salidas).
Figura 23. Resumen de estimación de utilización de recursos
3-1-5. Haga clic en Esquema en las tareas Diseño sintetizado de Tareas de síntesis del panel
Navegador de flujo para ver el diseño sintetizado en vista esquemática.
Figura 26. Resultados de la implementación para Nexys4 DDR
Usando el Explorador de Windows, verifique que el directorio impl_1 se cree al mismo nivel
que synth_1 en el directorio tutorial_runs. El directorio impl_1 contiene varios archivos,
incluidos varios archivos de informe (* .RPT).
Realizar la simulación de tiempo Paso 5
5-1. Ejecutar la simulación de tiempo.
5-1-1. Haga clic en Ejecutar simulación en Simulación en el panel de Flow Navigator.
5-1-2. Haga clic en Ejecutar proceso de simulación de tiempo de implementación posterior
para ejecutar la simulación en el diseño implementado.
Las ventanas del simulador aparecerán como se ven durante la simulación de
comportamiento.
Usando el Explorador de Windows, verifique que el directorio impl sea creado bajo sim_1 que
está bajo el directorio tutorial.sim. El directorio impl contiene archivos generados para
ejecutar la simulación de tiempo.
5-1-3. Haga clic en el botón Ajustar zoom para ver la ventana de la forma de onda de 0 a 1000
ns.
5-1-4. Haga clic izquierdo en 110 ns (donde la entrada del interruptor cambia a 0000010b.
Haga clic en el botón Agregar marcador).
5-1-5. Arrastre el marcador a donde cambian los leds (en la marca de 114 ns).
5-1-6. Haga clic en el botón Agregar marcador nuevamente y desplácese a donde led_exp_out
cambia (180 ns).
Figura 29. Apertura de nuevo objetivo de hardware
6-1-6. En el menú desplegable, haga clic en Conectar automáticamente.
El estado de la sesión de hardware cambia de Desconectado al nombre del servidor y el
dispositivo está resaltado. También tenga en cuenta que el estado indica que no está
programado.
Figura 30. Sesión de hardware abierta para el DDR Nexys4
Figura 30. Sesión de hardware abierta para el Basys3
6-1-7. Seleccione el dispositivo y verifique que lab1.bit esté seleccionado como el archivo de
programación en la pestaña General.
Figura 32. Seleccionando para programar el FPGA.
6-1-9. Haga clic en Programa para programar el FPGA.
La luz DONE se encenderá cuando el dispositivo esté programado. Es posible que vea algunos
otros LED encendidos dependiendo de las posiciones del interruptor.
6-1-10. Verifique la funcionalidad girando los interruptores y observando la salida en los LED.
6-1-11. Cierre la sesión de hardware seleccionando Archivo> Cerrar Administrador de
hardware.
6-1-12. Haga clic en OK para cerrar la sesión.
6-1-13. Cuando esté satisfecho, apague el tablero.
6-1-14. Cierre el programa Vivado seleccionando Archivo> Salir.
Conclusión
La herramienta de software Vivado se puede utilizar para realizar un flujo de diseño
completo. El proyecto se creó utilizando los archivos de origen suministrados (modelo
HDL y archivo de restricción del usuario). Se realizó una simulación de
comportamiento para verificar la funcionalidad del modelo. El modelo se sintetizó,
implementó y se generó un flujo de bits. La funcionalidad se verificó en hardware
utilizando el flujo de bits generado.