CINVESTAV-Tamaulipas Arquitectura de Computadoras Agosto - Diciembre 2013 Instructor: Dr. César Torres Huitzil Laboratorio I Este laboratorio proporciona una introducción al uso de las herramientas asistidas por computadora (CAD) para la programación de dispositivos lógicos programables (FPGA - Field Programmable Gate Array), útiles en la implementación de sistemas digitales y particularmente de utilidad en el curso de Arquitectura de Computadoras para el diseño del procesador MIPS simple. Especı́ficamente, se introduce el uso de la herramienta Xilinx ISE Design Suite para la programación de dispositivos FPGA a partir de la sı́ntesis de un diseño especificado en un lenguaje de descripción de hardware (VHDL). El desarrollo de este laboratorio consiste esencialmente en seguir un conjunto de pasos del flujo de diseño a manera de tutorial en el entorno de desarrollo de Xilinx ISE. Sin embargo es importante poner atención y analizar cada uno de estos pasos y comprender el proceso de diseo basado en FPGA. Se asume que ha realizado la instalación exitosa de las herramietas Xilinx ISE y se cuenta con la tarjeta de prototipado Spartan3E starter kit. Se implementarán tres circuitos digitales simples a partir de códigos fuente con la descripción VHDL de cada uno de ellos, asi como el archivo de restricciones de usuario (UCF): a) una compuerta and de dos entradas, b) un multiplexor de 4-1, de un bit y c) un contador ascendente de 4 bits, Creación de un proyecto en Xilinx ISE 1. Ejecute Xilinx ISE y cree un nuevo proyecto para cada uno de los circuitos digitales a implementar. Asigne un nombre al proyecto. Asegurese de seleccionar los siguientes parámetros: Device options: Family −→ Spartan3E, Device −→ XC3S500E, Package −→ FG320, Speed −→ -5, Top-level source type −→ HDL, Syntheis tool −→ XST. 2. Agregue los códigos fuente (.vhd y .ucf) de uno de los circuitos digitales sugeridos. Dentro de ISE vaya a Project −→ Add source. Para implementar y verificar al resto de los circuitos se repite el procedimiento. 3. Seleccione el archivo gate.vhd en la ventana Hierarchy dentro de ISE. Haga click con botón derecho y seleccione Set as Top Module en las opciones presentadas. El contenido de gate.vhd se muestra como ejemplo en el listado de código de la página 2. 1 2 Laboratorio Arquitectura de Computadoras 4. En la ventana de Processes, ejecute la siguiente secuencia de pasos al dar doble click en cada etapa: 1) Synthesize - XST, 2) Implement Design, Generate Programming File. library IEEE; use IEEE.STD LOGIC 1164.ALL; use IEEE.STD LOGIC ARITH.ALL; use IEEE.STD LOGIC UNSIGNED.ALL; entity gate is Port ( a : in STD LOGIC; b : in STD LOGIC; c : out STD LOGIC); end gate; architecture Behavioral of gate is begin process(a,b) begin c <= a and b; end process; end Behavioral; 5. Asegurese que la fase anterior este libre de errores. Dentro de la carpeta del proyecto, se habrá creado el archivo con extensión (.bit), el cual se usará con la herramienta IMPACT para la programación fı́sica del dispositivo FPGA. Trabajo requerido • Realice una validación funcional de cada uno de los circuitos utilizando el simulador iSim: Design −→ View −→ Simulation −→ Simulate Behavioral Model • Escriba un reporte breve del trabajo realizado. El reporte debe ser enviado electrónicamente (PDF) en formato libre. En el reporte debe incluir al menos lo siguiente. 1. Una descripción breve de la funcionalidad de cada una de las etapas fundamentales en el flujo de diseño FPGA. 2. Transfiera y valide los circuitos en la tarjeta de desarrollo Spartan3E500 starter kit. Comente sus experiencias.