Lección 4: Creación de proyectos en Quartus Prime.
Quartus Prime es la herramienta de desarrollo para dispositivos FPGA de la compañía Intel. Permite desarrollar todas las etapas del flujo de diseño y permite también integrarse con herramientas de otros fabricantes. Quartus Prime agrupa la información requerida para todas las etapas del flujo de diseño en proyectos. Un proyecto entonces contendrá todos los archivos y directorios destinados a configurar y procesar toda la información involucrada en el flujo de diseño de un determinado hardware. Quartus Prime ofrece una guía para la creación de proyecto nuevo (“New Project Wizard”). Veremos a continuación los pasos necesarios para crear un proyecto en Quartus Prime mediante esta guía:
- Abrir Quartus Prime Lite, haciendo click en el ícono de Quartus Prime Lite:
- Seleccionar File New Project Wizard, o hacer click en el botón de acceso directo en la pantalla de bienvenida:
o - En la ventana de Introduction, hace click en el botón Next >
- En la ventana de Directory, Name Top-Level Entity, se debe especificar:
- el directorio del proyecto en “What is the working directory for this project”. Para este ejemplo, lo configuraremos en “C:FPGA”.
- el nombre del proyecto en “What is the name of this project”. Para este ejemplo, lo especificaremos como “función_y_z”.
- el nombre de la entidad de mayor jerarquía en “What is the name of the top-level design entity for this project?…”
Para este ejemplo, debemos especificar “function_y_z” puesto que es el nombre que le dimos al componente a implementar.
- Luego de especificar los campos, hacer click en el botón Next> (confirmar si consulta sobre crear el directorio C:FPGA si no existe).
- En la ventana de Proyect Type, se debe seleccionar Empty project y hacer click en el botón Next>.
- En la ventana Add Files, seleccionamos en el campo “File name”, mediante el botón , el archivo función_y_z.vhd, el cual describimos en la sección anterior y que debemos copiar previamente en el directorio del proyecto (C:FPGA). Luego, hacer click en el botón Next >.
- En la ventana de Family, Device & Board Settings se debe seleccionar el dispositivo FPGA que se utilizará en el proyecto. La selección debe comenzar especificando la familia del dispositivo FPGA. Para el caso de la placa DE2-115 de Terasic, que supondremos en este ejemplo, la familia es Cyclone IV E y debe ser seleccionada en el campo Family. Para otras placas de desarrollo, debe especificarse la familia que corresponda. Luego, debe especificarse el dispositivo FPGA específico de las opciones que aparecen en el campo Available devices. El campo Name Filter puede ser utilizado para discriminar más fácilmente el dispositivo deseado, especificando, en nuestro caso, el dispositivo de la placa DE2-115: EP4CE115F29C7. Esta especificación filtra los dispositivos FPGA disponibles, y debe seleccionarse en el capo Available devices. Luego hacer click en el botón Next >.
- En la ventana EDA Tool Settings se puede configurar qué herramientas de desarrollo se desean integrar al flujo de diseño con Quartus Prime. En este caso, y para que quede configurado para futuras lecciones, elegiremos la herramienta de simulación ModelSim-Altera, la cual fue instalada con la versión Lite de Quartus Prime. En el campo de Format(s) se debe seleccionar VHDL. Luego, hacer click en Next>.
- En la pantalla Summary se mostrará un resumen de la configuración del proyecto creado. Se debe hacer click en el botón Finish.
Al finalizar la guía de creación de proyecto nuevo, el proyecto estará creado y abierto en Quartus Prime. La información del proyecto puede accederse en el panel de Project Navigator.
Seleccionando la vista de Hierarchy, podemos seleccionar que abra el archivo con la entidad de máxima jerarquía haciendo doble-click en función_y_z:
Debido a que el archivo conteniendo una entidad con el nombre función_y_z ha sido incorporado al proyecto, se abrirá el editor de Quartus Prime con e l archivo función_y_z.vhd.
Es necesario compilar el proyecto para que Quartus Prime procese la información de la descripción realizada. Para esto, se debe hacer seleccionar Processing Start compilation, o, alternativamente, hacer click en el ícono correspondiente en la barra de herramientas:
o |
El proceso de compilación ejecutará todas las etapas del flujo de diseño y su avance puede verse en el panel de tareas (Tasks).
Finalizada la compilación, Quartus Prime ha realizado una implantación asignando los pines de entrada y salida según un criterio que le resultó conveniente. Sin embargo, el dispositivo FPGA tiene sus pines físicamente a los periféricos específicos de la placa. Es por ello, que se deben configurar que las entradas y las salidas del diseño estén configuradas a los pines correctos de la placa para poder interactuar con los mismos.
La asignación de pines puede verse en la aplicación Pin Planner, ejecutando AssignmentsPin Planner.
En la pantalla de la aplicación Pin Planner, se observará que las señales de entrada y salida del diseño compilado, tienen una asignación de pines realizada por el Fitter de Quartus Prime.
Debido a la gran cantidad de pines de entrada y de salida, es conveniente utilizar los archivos de configuración (scripts) brindados por el fabricante para facilitar el proceso y disminuir la posibilidad de introducir errores en la configuración.
Los fabricantes de dispositivos FPGA asignan a los pines de los dispositivos coordenadas para su identificación. Por ejemplo, en los dispositivos de Intel, a las filas de pines se les asigna letra/s y a las columnas números. En consecuencia, las coordenadas consistirán de letra/s y un número para identificar cada pin del dispositivo.
Los fabricantes de placas, para facilitar la identificación de los periféricos a los que está conectado cada pin de la FPGA en la placa, brindan la configuración de los pines en archivos de comandos TCL. Estos archivos le asignan un nombre a cada uno de los pines físicos del dispositivo. De esta manera, el nombre asignado al pin brinda mucha más información que las coordenadas que lo identifica. Por ejemplo, el Laboratorio remoto de FPGA conecta el dispositivo FPGA a la interface web mediante los pines con los siguientes nombres:
IN_WEB(7 downto 0) | pines del dispositivo FPGA conectados a las llaves (switches) de la interface web del Laboratorio remoto de FPGA. |
OUT_WEB(15 downto 0) | pines del dispositivo FPGA conectados a los indicadores leds de la interface web del Laboratorio remoto de FPGA. |
La representación IN_WEB(7 downto 0) indica que es un vector de 8 elementos. Es decir, existirán 8 pines asignados a la funcionalidad IN_WEB, denominados IN_WEB(7), IN_WEB(6), IN_WEB(5), IN_WEB(4), IN_WEB(3), IN_WEB(2), IN_WEB(1), IN_WEB(0).
En el ejemplo realizado de la función de la figura 1, deberemos asignarle estos nombres a las señales de entrada y de salida, o conectarlas correspondientemente para poder utilizar la Interface Web del Laboratorio remoto de FPGA para comprobar su funcionamiento.