UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERÍA ELECTRÓNICA Y ELÉCTRICA LABORATORIO DE SISTEMAS DIGITALES TEMA: MANEJO DE QUARTUS II I. PROFESOR: Guillermo Tejada Muñoz OBJETIVO Aprender el manejo del Quartus II programando el FPGA EP4CE115F29C7 inserto en la tarjeta DE2-115 de altera. Familiarizarse con el funcionamiento de la tarjeta DE2-115 de Altera II. MATERIALES Y EQUIPOS (1) PC con Quartus v. 12.1 instalada (1) Multímetro. Tarjeta DE2-115 de Altera III. CONOCIMIENTOS PREVIOS (Se evaluará por escrito) 1. Diseño de circuitos conbinacionales, secuenciales síncronos y asíncronos 2. Lenguaje VHDL. IV. PARTE EXPERIMENTAL Con el objeto de aprender el manejo del Quartus se programará en el FPGA EP4CE115F29C7 (inserto en la tarjeta DE2-115) un circuito lógico combinacional (semisumador). Se utilizarán dos métodos: 1) Editando en Quartus el circuito lógico. 2) Editando en Quartus el código VHDL del circuito. Para ambos métodos se seguirán los siguientes pasos: PASO 1: CREANDO UN NUEVO PROYECTO PASO 2: INGRESAR EL DISEÑO PASO 3: SÍNTESIS PASO 4: SIMULACIÓN PASO 5: PROTOTIPADO DEL FPGA La diferencia entre ambos métodos radicará en el paso 2, como se verá más adelante. Para un circuito secuencial existen más métodos para programar el FPGA, por ejemplo se puede editar en Quartus la Máquina de Estados Finitos del circuito. MÉTODO 1: EDITANDO EN QUARTUS EL CIRCUITO LÓGICO PASO 1: CREANDO UN NUEVO PROYECTO 1. Abrir Quartus luego File New Proyect Wizard 2. Seleccione o cree el directorio y subdirectorio. También el nombre del proyecto. En este caso, el nombre de proyecto es: “halfadder” Pasar a la página 2 y luego a la página 3 con Next 3. Seleccionar el FPGA 4. Seleccionar el ModelSim-Altera como Simulador. Pase a la próxima página con “Next” y se mostrará un Resumen del proyecto Click Finish. PASO 2: INGRESAR EL DISEÑO 5. Presione en “New” se desplegarán varias opciones de edición, seleccione: “Block Diagram/Schematic File” 6. Presionar el icono el símbolo de puerta lógica (ver flecha roja). Se abrirá una ventana con las librerías, desplegar Primitives Logic , aparecerán un conjunto de puertas lógicas. Cada vez que seleccione una puerta presione OK. 7. Para conectar las puertas utilice el “Orthogonal Node Tool”, como s indica en la flecha. 8. Los pines de entrada y salida pueden encontrarse desplegando Primitives Pin 9. Los nombres de los pines pueden ser renombrados. Guarde el diseño: File Save. Se abrirá una ventana preguntando por el nombre del esquemático y el lugar donde guardar el diseño. Guarde con el nombre por default: halfadder. PASO 3: SÍNTESIS 10. En la etapa de Síntesis se realiza un análisis del diseño esquemático con la finalidad de generar el circuito en el dispositivo FPGA. Para ello debe seleccionar: Proccesing Start Compilation Al final del proceso se pueden generar errores que pueden ser vistos en la parte inferior del esquemático. Verifique las conexiones erradas. En caso de éxito la próxima etapa es la simulación. También se puede sintetizar mediante la barra de herramientas: PASO 4: SIMULACIÓN 11. Para la simulación se utiliza el simulador ModelSim que viene incorporado en el Quartus. Verifique su configuración abriendo ToolsOptions 12. Haga Click en EDA Tool Options y escriba el path de ModelSim. Si no está instalado, entonces vaya a la página de Altera y baje e instale: Modelsim-Altera Starter Edition (Se sugiere: Instalarlo en el directorio de Altera). 13. Para inicializar la simulación seleccione: ToolsRun Simulation Tool Gate Level Simulation. En la ventana emergente, despliege “+ work” y haga 2 click en “halfadder Entity”. 14. Las señales de interés para el halfadder son: A0, B0, S0 y S1. Para transferir las señales de interés, coloque el mouse sobre la señal y con el click derecho seleccione del menu pop pup: AddTo WaveSelect Signals 15. Para colocar forzar la señal de A0 a 1 o 0, sobre A0 haga click con el botón derecho, y en la ventana emergente seleccione “Force”, luego en la otra ventana emergente en “Value” el valor lógico deseado. En el caso de la figura la señal A0 es forzada a 1. Este valor será válido para los primeros 100ps de la simulación. De la misma forma se debe seleccionar el valor para B0. 16. En la figura se ha forzado para que las señales de entrada sean A0=0, B0=1 y el periodo de la simulación se ha colocado en 100ps. Luego de presionar el botón RUN el resultado ha sido de S0=1 y S1=0. 17. Seleccionar otros valores para A0 y B0 , cada vez que presione RUN se ejecutará para un periodo de 100ps posteriores al anterior. Por tanto, seleccionar entradas A0 y B0 que cubran todas las combinaciones posibles entre A0 y B0. Verifique la respuesta. PASO 5: PROTOTIPADO DEL FPGA 18. Para asociar las señales de entrada y salida del esquemático con los pines físicos del FPGA seleccione del menú: Assignmente Pin Planner. 19. Designar: A0 PIN_Y23, B0 PIN_Y24, S0 PIN_H15, S1 PIN_G16 Luego, para asignar los pines físicos al diseño ir a: ProcessingStartI/O Assignment Analysis 20. Conectar Tarjeta DE2-115 de Altera (aquí está inserto el FPGA) a la entrada USB de la PC (donde está instalado el QUARTUS). Luego del menú: Tools Programmer PROBLEMAS CON RESPECTO LA HERRAMIENTA DEL PROGRAMADOR FPGA • No se ha encontrado el puerto USB (placa DE2 no detectada). Solución: Ingresar en el menú de inicio de Windows a ''Dispositivos e impresoras'' y proceda con la instalación del nuevo controlador. El controlador DE2 se encuentra en la carpeta Quartus II: C: \ altera \ 12.1 \ quartus \ drivers. Note: No seleccionar directorios x32 o x64. • El USB-Blaster [USB-0] no se muestra. Solución: Verificar que el cable USB está conectado a la entrada '' Blaster ''. Presione el botón '' Configuración de hardware '', haga doble clic en '' USB-Blaster '' y cierre la ventana de Configuración de hardware. El archivo halfadder.sof no se muestra. Solución: presione el botón '' Agregar archivo '', vaya a c: \ LabSession \ lab1 \ output_files y haga doble clic en halfadder.sof. Después de haber terminado la descarga al FPGA, para verificar la funcionalidad del circuito en el tablero, simplemente cambie las entradas (A0) y (B0) '' encendido '' y '' apagado '', y haga una comparación entre los resultados mostrados en las salidas S0 y S1. MÉTODO 2: EDITANDO EN QUARTUS EL CÓDIGO VHDL PASO 1. CREANDO UN NUEVO PROYECTO: Se procede como en el caso anterior. PASO 2. INGRESAR EL DISEÑO: En este caso seguir: File New VHDL File Figura 1. Escribir en el editor de texto el código VHDL del semisumador: Guardar: File Save El nombre por default para guardar el archivo es: halfadder.vhd. Es importante asegurarse que el nombre de la entidad (de “entity” dentro del código VHDL) sea también halfadder, de otra manera la herramienta de síntesis no podrá encontrar la entidad para sintetizarla. PASO 3. SÍNTESIS: Se procede como en el caso anterior. PASO 4. SIMULACIÓN: Después de configurar el simulador como en el caso anterior. Seleccionar: ToolsRun Simulation Tool RTL Simulation Y se procede de la misma forma como en el caso anterior. PASO 5. PROTOTIPADO DEL FPGA: Se procede como en el caso anterior. Tarea: Así como ha sido posible diseñar el circuito a partir de su Diagrama de bloques (Schematic file) y también mediante su código VHDL (VHDL file), Quartus permite otros métodos de edición del diseño, en la Figura 1 se puede observar que se puede optar por la edición del diseño a partir de su Diagrama de Estados o Máquina de Estados Finitos (State Machine File). Investigue y programe el FPGA a partir de esta opción. INDICACIONES PARA EL INFORME FINAL REFERENCIAS. Manual DE2-115 de Altera. ftp://ftp.altera.com/up/pub/Intel_Material/Boards/DE2-115/DE2_115_User_Manual.pdf Eduardo Augusto Bezerra, Djones Vinicius Lettnin (2014). Synthesizable VHDL Design for FPGAs. Springer International Publishing Switzerland. Brown S. y Vranesic Z. (2006). Fundamentos de Lógica Digital con Diseño VHDL. México, D. F.: The McGraw-Hill Companies, Inc.