LABORATORIO DE ELECTRÓNICA DIGITAL PRÁCTICA 3: IMPLEMENTACION CIRCUITO COMBINATORIO CON XILINX 1. Introducción El desarrollo de dispositivos programables de alta capacidad de ocupación junto con las herramientas de diseño y programación asociados a estos dispositivos ha dado lugar a que, hoy en día, sea relativamente fácil implementar sistemas digitales incluso de alta complejidad sobre ellos. En concreto, los dispositivos programables conocidos como FPGA (Field Programmable Gate Array) alcanzan capacidades equivalentes a varios millones de puertas lógicas por chip y pueden incluir cores de alta complejidad como, por ejemplo, de microprocesadores, memorias tipo RAM o ROM, etc. Estos dispositivos han contribuido a cambiar el proceso de diseño de sistemas digitales. Partiendo de la descripción verbal del problema y del diseño de la solución, el siguiente paso consiste en realizar la descripción en un lenguaje de hardware (o por medio de esquemáticos) de la solución planteada y realizar una simulación para comprobar la funcionalidad y las especificaciones del sistema. Para realizar estos pasos es necesario conocer y manejar las herramientas de diseño disponibles, como Altera y Xilinx, los cuales siendo entornos gratuitos, incluye todas las etapas de un proceso de diseño digital complejo, y adicionalmente también incluyen las herramientas de traslación del diseño a una FPGA (Field Programmable Gate Array). El proceso de diseño finaliza con la síntesis y programación del dispositivo seleccionado para la verificación funcional de la aplicación. De acuerdo con esto, esta práctica consiste en introducir al estudiante al diseño y simulación de circuitos digitales básicos en el entorno integrado de descripción y simulación de Xilinx, así como al sistema de desarrollo Nexys 2 que usaremos durante el curso. 2. Objetivos Conocer el entorno de diseño a nivel de captura de esquemáticos del entorno de diseño de Xilinx. Conocer las herramientas de verificación del diseño desarrollado. Conocer las características principales del sistema de desarrollo Nexys 2. Desarrollar el proceso completo de diseño, verificación, implementación y testado de un ejemplo de circuito digital sobre una FPGA 3. Componentes y equipos - Computador ISE WebPack 10.1 versión libre de Xilinx ModelSim Xilinx Edition Adept Suite Software, versión libre Sistema de Desarrollo Nexys 2 de Digilent 1 4. Procedimiento Se proponen el diseño de dos sistemas diferentes. La asignación del sistema específico se realizará de la siguiente forma: sume el último número de los documentos de identidad de los integrantes del grupo de trabajo, divida por el número de integrantes y tome el entero del resultado. Si el número resultante es par, entonces al grupo le será asignado el Sistema 1. Si el resultado es impar entonces al grupo le será asignado el Sistema 2. Sistema 1: Diseñar un circuito digital que implemente la siguiente descripción algorítmica descrita en palabras. If (A > B) y ( A ≤ 10) then Resultado = A – B; elsif (A <9) then Resultado = A + 1 ; end; Sistema 2: Diseñar un circuito digital que implemente la siguiente descripción algorítmica descrita en palabras. If ( B <= 4) y (A<=5) then Resultado= B + A; elsif ( B > 5 ) Resultado = B - 1; end; Figura 1. Diagrama de bloques del sistema completo Condiciones: Las entradas A y B son dos números binarios de 4 bits. La resta debe realizarse en complemento C2. El resultado debe ser mostrado en un display de 7 segmentos. El circuito completo debe ser implementado en esquemático y debe ser un diagrama de bloques parecido al de la figura 1. Los bloques que el sistema completo debe contener son: a) Bloque 1: sistema a diseñar (sistema 1 ó sistema 2) b) Bloque 2: circuito encargado de dividir el número binario de 4 bits en dos números cada uno de 4 bits, uno que represente las unidades y otro que represente las decenas. c) Bloque 3: circuito encargado de multiplexar los diplay para mostrar el resultado de las operaciones. Detalles de este bloque se muestran en la figura 2. 2 d) Bloque 4: circuito divisor de frecuencia, encargado de tomar la frecuencia del reloj de la tarjeta de desarrollo de 50MHz y entregar a la salida una frecuencia de 1KHz. Figura 2. Múltiplexación de un display 7 segmentos SE PIDE: 4.1 Implementar usando la interfaz gráfica de Xilinx el diagrama esquemático mostrado en la figura 1. Se exige que el Bloque 1 sea implementado totalmente en forma de esquemático. Al igual que el diagrama completo como se muestra en la figura 1. Los otros bloques (bloque 2, 3 y 4) pueden ser implementados usando código VHDL y luego empaquetados en símbolos esquemáticos. 4.2 Verificar por medio de simulación el correcto funcionamiento del Bloque 1 y Bloque 2. 4.3 Sintetizar el diseño completo como se muestra en la figura 1 y corregir los errores reportados. 4.4 Una vez se haya garantizado la correcta funcionalidad del sistema y sintetizado satisfactoriamente el diseño, puede proceder a configurar los pines del sistema de desarrollo para la programación de ésta. (Para este punto, por favor lea los archivos Nexys2_rm.pdf y Basys2_rm.pdf publicados en la pagina Web del curso). 4.5 Programar el sistema de desarrollo en compañía del profesor o el monitor del laboratorio y verificar físicamente el funcionamiento del sistema. 4.5 Consultar: ¿Cuáles son los 5 elementos funcionales programables de la familia de FPGAs Spartan 3E y en que consiste cada uno de ellos? Explique el significado de la siguiente referencia de FPGA: XC3S500E-4FGG320C. Adicionalmente especifique los siguientes parámetros: a) cantidad de compuertas lógicas; b) cantidad de celdas lógicas; c) cantidad de multiplicadores; d) tamaño bloque de RAM ¿Qué tecnología de fabricación es usada en la Spartan 3E?, ¿Qué significa esto y cuál es la predicción en cuanto a la tecnología a usar después del 2010 según el “FPGA Roadmap”? 5. Informe Presente un informe del desarrollo de la práctica, procedimiento empleado, programas, figuras, consultas, respuestas a las preguntas y justificación de los resultados obtenidos. Adicionalmente, incluir conclusiones. 3