• Compartir
  • Enviar por correo
  • Insertar
  • Me gusta
  • Guardar
  • Contenido privado
APLICACIONES DE LA TARJETA XILINX 2S200E
 

APLICACIONES DE LA TARJETA XILINX 2S200E

on

  • 1,445 reproducciones

“APLICACIONES DE LA TARJETA XILINX 2S200E EN LOS CURSOS DE ENSEÑANZA DE INGENIERÍA ELECTRÓNICA, UTILIZANDO EL LENGUAJE DE DESCRIPCIÓN DE HARDWARE” - 2009

“APLICACIONES DE LA TARJETA XILINX 2S200E EN LOS CURSOS DE ENSEÑANZA DE INGENIERÍA ELECTRÓNICA, UTILIZANDO EL LENGUAJE DE DESCRIPCIÓN DE HARDWARE” - 2009

Estadísticas

reproducciones

reproducciones totales
1,445
reproducciones en SlideShare
1,445
reproducciones incrustadas
0

Actions

Me gusta
0
Descargas
26
Comentarios
0

0 insertados 0

No embeds

Accesibilidad

Categorias

Detalles de carga

Uploaded via as Adobe PDF

Derechos de uso

© Todos los derechos reservados

Report content

Marcada como inapropiada Marcar como inapropiada
Marcar como inapropiada

Seleccione la razón para marcar esta presentación como inapropiada.

Cancelar
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Tu mensaje aparecerá aquí
    Processing...
Publicar comentario
Edite su comentario

    APLICACIONES DE LA TARJETA XILINX 2S200E APLICACIONES DE LA TARJETA XILINX 2S200E Document Transcript

    • “APLICACIONES DE LA TARJETA XILINX 2S200E EN LOSCURSOS DE ENSEÑANZA DE INGENIERIA ELECTRÓNICA, UTILIZANDO EL LENGUAJE DE DESCRIPCION DE HARDWARE” PROYECTO DE INVESTIGACION ING. MANUEL RAMIREZ CASTRO ING. RAFAEL GARCIA CHINGUEL
    • Palabras clave: xilinx PROGRAMA DE INVESTIGACION: Redacción de texto1. DATOS PRELIMINARES 1.1. TITULO “APLICACIONES DE LA TARJETA XILINX 2S200E EN LOS CURSOS DE ENSEÑANZA DE INGENIERIA ELECTRÓNICA, UTILIZANDO EL LENGUAJE DE DESCRIPCION DE HARDWARE”. 1.2. AUTORES - Ing. Manuel Javier Ramírez Castro. - Ing. Rafael García Chinguel. 1.3. TIPO DE INVESTIGACION INVESTIGACION EXPERIMIENTAL, APLICADA Y PROSPECTIVA 1.4. AREA DE INVESTIGACION ELECTRONICA APLICADA 1.5. LINEA DE INVESTIGACION: TECNOLOGICA 2
    • 2. CUERPO DEL INFORME 2.1. RESUMEN El propósito de este manual es proveer un soporte adicional a estudiantes de Ingeniería Electrónica de la UNPRG, sobre prototipos digitales de sistemas rápidos (Digital Systems Rapid Prototyping), se usara el software XILINX ISE para diseño rápido de prototipos digitales en la tarjeta Digilab 2SB. Este manual es un suplemento de la existente documentación sobre la Tarjeta Digilab 2SB [8] y el material de Xilinx ISE 7.1i [7] La computadora facilitó la herramienta de diseño introduciendo un set coordinado de ejemplos que tomara el usuario a través de los pasos más comunes necesarios para la entrada de datos, simulación funcional, síntesis lógica y la actual configuración de Xilinx Spartan-series FPGA en la tarjeta Digilab 2SB. En la escuela profesional de Ingeniería Electrónica de la Universidad Nacional Pedro Ruiz Gallo, no se desarrolla, ni se aplica la descripción del lenguaje VHDL, ni se da uso a las tarjetas del fabricante Xilinx 2s200e en los cursos de la escuela profesional en mención. Existiendo las tarjetas en el laboratorio de Ingeniería Electrónica sin darle mayor utilidad (tarjetas adquiridas mediante donación hace mas de 6 años. Por lo tanto nuestro propósito será describir el lenguaje de descripción de hardware (similar al funcionamiento circuital) y la simulación de estas tarjetas mediante ejemplos sencillos haciendo uso del software brindado por el mismo fabricante. Contando para ello con la información teórica del fabricante y trabajos realizados por otros investigadores. ABSTRACT The purpose of this manual is provide an additional support to students of Electronical Engineering of the UNPRG about digital systems rapid prototyping.It will be used XILINX ISE software for rapid design of digital prototypes in the Digilab 2SB card. This manual is a supplement of the existent documentation about Digilab 2SB (8) card and the material of Xilinx ISE 7.1i. The computer mase easy the design tool by introducing a coordinate example set that take the user trough the 3
    • common necessary steps for the data input, functional simulation, logic synthesisand the actual configuration of Xilinx Spartan series FPGA in the Digilab 2SB card.2.2. INTRODUCCION Desde hace algún tiempo ya se viene usando el lenguaje VHDL como una de las alternativas de implementación en dispositivos CPLD’s y FPGA’s. Las herramientas de síntesis han ido mejorando considerablemente. Hoy en día muchos fabricantes de circuitos integrados utilizan la tecnología de lógica programable para implementar sistemas digitales muy complejos y poder validar sus nuevos diseños sin tener que recurrir a la fabricación del circuito integrado. Gracias a las herramientas de diseño automático existentes los diseñadores pueden aumentar la productividad, reduciendo los tiempos de desarrollo y sobre todo abaratando los costos de diseño. Las FPGAS son una gran solución en la elaboración de prototipos gracias a la flexibilidad que ofrecen en el diseño. Debido a su importancia, se presenta como ejemplo de diseño, la descripción de un circuito combinacional en lenguaje VHDL programado en una FPGA Spartan XCS200E. Se realizó la simulación funcional utilizando el programa ModelSim 6.0a y para las etapas de diseño restantes se utilizó ISE Foundation 7.1i; ambos softwares de la empresa Xilinx.2.3. MATERIALES Y METODOS MATERIALES: - Adaptador de voltaje (Fuente estabilizada 6V a 9V). - Computadora con Software de Simulación de Xilinx. 7.1i y ModelSim XE III 6.0a. - Tarjeta Digilab 2SB (FPGA Xilinx 2s200e PQ208) con conector JTAG para la computadora. - Tarjeta Digilab DIO4 (Tarjeta simuladora). - Útiles de escritorio. 4
    • METODOSSe indicara el resumen del proceso que se ha seguido para la obtención de losresultados (diseño de código VHDL y la simulación respectiva).Tradicionalmente el flujo de diseño lógico consiste en:1. Obtener especificaciones.2. Definir entradas y salidas.3. Definir tabla de verdad.4. Derivar ecuaciones booleanas (simplificación).5. Especificar circuitos mediante puertas lógicas.6. Implementar (‘unir’ puertas).Con VHDL:1. Obtener especificaciones.2. Definir entradas y salidas.3. Describir el circuito (‘programa’ VHDL).4. Simulación funcional (para poder realizarla primero abra que sintetizar (generar la ‘netlist’)).5. [Si se detectan errores volver a 4].... ‘Descargar’ el diseño en un dispositivo lógico programable (PLD)Xilinx: entorno profesional para crear programas que describen diseños lógicos.Proyecto: diseño de un sistema (conjunto de módulos).Módulo = componente = entidad (‘entity’) de diseño.Al principio, proyecto = 1 módulo. Para realizar el diseño VHDL en Xilinx los pasos son: 1. Crear nuevo proyecto (PROJECT MANAGER). 5
    • 2. Crear programa VHDL (DESIGN ENTRY). 3. Sintetizar la netlist (SYNTHESIS). 4. Simulación funcional.Veamos cada uno de los pasos en detalle:(I) Crear nuevo proyecto [PROJECT MANAGER] 1.1. Ejecutar PROJECT MANAGER 1.2. Ejecutar ‘Fila / New project’: nombre proyecto Carpeta (creada previamente) Indicar flujo: VHDL (no esquemático) Descripción de la ventana del PROJECT MANAGER: 1. Ficheros fuente (.VHDL) y librerías. 2. Para activar las herramientas usadas en las distintas fases del flujo de diseño. 3. Listado de mensajes de diagnosis de los distintos procesos que se van realizando.(II) Introducir el diseño (programa VHDL) [DESIGN ENTRY] 1. Se puede usar el asistente de diseño vhdl (HDL Design Wizard) para definir las entradas y salidas del módulo, con lo que cuando pasemos al 6
    • editor de vhdl aparecerá el ‘esqueleto’ del programa con las definiciones de entidad (entity) y arquitectura (arquitecture). 2. HDL Editor: para escribir el programa, con todo tipo de facilidades: indentación, cambio color palabras clave... (III) Sintetizar (obtener la netlist) [SYNTHESIS] Habrá que indicar el proyecto, el dispositivo (PLD) al que va dirigido y en el que caso de que haya varios módulos definidos, cuál de ellos es el de nivel superior en la jerarquía de diseño. (IV)Simulación funcional del diseño [SIMULATION] Ventanas: ‘Waveform Viewer’ dentro de ‘Logic Simulator’ 1. Añadir entradas y salidas: 2. Aplicar estímulos al circuito 3. Establecer los parámetros de simulación 4. Ejecutar la simulación 5. Guardar la simulación 6. Salir : ‘File/exit’ 2.4. RESULTADOSPara la investigación se ha recopilado información de internet acerca del lenguaje dedescripción de hardware, de los dispositivos lógicos programables (PLD’s), así comolas características del Software y Hardware de las tarjetas que son el objeto de nuestrainvestigación.La forma de trabajo se basara en describir los elementos necesarios de la estructuradel lenguaje de descripción de hardware (VHDL) y de esta manera programar lastarjetas para simular cualquier diseño de un sistema digital, también describir laestructura interna de trabajo de los PLD’s, haciendo una descripción detallada de lastarjetas Digilab 2SB (Xilinx XC2S200E FPGA). 7
    • DISEÑO LÓGICO USANDO XILINXINTRODUCCIONEl propósito de este manual es proveer un soporte adicional a estudiantes deIngeniería Electrónica de la UNPRG, sobre prototipos digitales de sistemas rápidos(Digital Systems Rapid Prototyping), se usara el software XILINX ISE para diseñorápido de prototipos digitales en la tarjeta Digilab 2SB. Este manual es un suplementode la existente documentación sobre la Tarjeta Digilab 2SB [8] y el material de XilinxISE 7.1i [7] La computadora facilitó la herramienta de diseño introduciendo un setcoordinado de ejemplos que tomara el usuario a través de los pasos más comunesnecesarios para la entrada de datos, simulación funcional, síntesis lógica y la actualconfiguración de Xilinx Spartan-series FPGA en la tarjeta Digilab 2SB.Este manual está organizado en 4 capítulos los cuales cubren los siguientes capítulos:a) Capitulo 1: Lenguajes de descripción de Hardware.b) Capitulo 2: Información general es presentada acerca de la tarjeta Digilab 2E, la tarjeta Digilab DIO 4 y las herramientas de diseño ISE 7.1i.c) Capitulo 3: Un ejemplo de diseño de un simple comparador binario de 2 bits y un sumador binario (adder) son presentados y usados para observar los pasos comunes asociados con la programación en VHDL, simulación funcional, implementación del diseño y la configuración de la Spartan 2E xc2s200E FPGA y la simulación en MODELSIM XE III 6.0a.d) Capitulo 4: Un ejemplo de diseño de un comparador es presentado para ilustrar los pasos comunes asociados con la entrada de datos de la captura esquemática, síntesis, simulación funcional y la implementación en XC2S200E. 8
    • CAPITULO I LENGUAJES DE DESCRIPCIÓN DE HARDWAREINTRODUCCIONLos lenguajes de descripción de hardware (HDLs) son utilizados para describir laarquitectura y comportamiento de un sistema electrónico los cuales fuerondesarrollados para trabajar con diseños complejos.El diseño tradicional de sistemas digitales es de bajo costo y con tiempos de desarrollocortos, pero es restringido por arquitecturas inflexibles, velocidades de operación yrecursos limitados así como poco versátiles a la hora de la puesta en marcha, como loson: memorias, microcontroladores, procesadores digitales de señal (DSPs), entreotros.Una solución para estos inconvenientes es el diseño ASIC o de aplicación específica,en contraparte los tiempos de diseño y fabricación son muy extensos y por endecostosos a la hora de solucionar un problema particular. Tomando las ventajas de losdos tipos de diseño expuestos - bajo costo, tiempo de diseño reducido, flexibilidad yversatilidad- surgen los dispositivos lógicos programables, con la característicaparticular de poseer todos los recursos del primer tipo de diseño concentrados en unapequeña área. Estas ventajas no están completas sin una herramienta adecuada quenos permita organizar y aprovechar estos recursos; para lo cual surgen los lenguajesde descripción de hardware HDL. El diseño de sistemas digitales se transforma en unadescripción de alto nivel de los componentes que lo conforman, luego esta descripciónconfigura apropiadamente los recursos del dispositivo, para finalmente obtener elsistema funcional. Lenguajes de Descripción de HardwareLos lenguajes de descripción hardware –HDL: Hardware Description Languages-, seempezaron a utilizar en los años 70. Los primeros lenguajes surgidos no tuvieron granacogida y es hasta una década después que aparecen los lenguajes VHDL y Verilog,los cuales son en la actualizad los más utilizados y han desplazado a los otroslenguajes. 9
    • HISTORIA DEL VHDLLa creación de este lenguaje se inicia en el año 1981, con la creación del programa dedesarrollo de circuitos integrados de muy alta velocidad (VHSIC) del Departamento dedefensa de Estados Unidos. En el año de 1982 las compañías IBM, TexasInstruments, Intermetrics, obtuvieron la concesión para la realización del lenguaje y deun conjunto de herramientas para su aplicación. En el año de 1987 el lenguaje VHDLse convierte en la norma 1076 y en el año de 1993 se actualiza con la norma 1164. Elobjetivo principal de utilizar lenguaje VHDL para la descripción de hardware, esespecificar y documentar circuitos y sistemas digitales con un lenguaje formal que seaentendido tanto por diseñadores como por máquinas –computadoras-. Entre lasprincipales características del lenguaje se tiene que es ejecutable, lo que permite quela descripción del hardware se materialice en dispositivos programables; posibilita ladescripción del hardware con distintos niveles de abstracción y es independiente de latecnología. Las diferencias entre VHDL y Verilog son: las unidades de diseño múltiplepueden ser compiladas separadamente en VHDL, mientras que en Verilog, alproducirse un cambio sencillo en el orden de compilación la simulación puede cambiar;el usuario puede definir el tipo de datos utilizando VHDL; los conceptos de librería,- que permite compilar proyectos de diseño múltiple -, y paquetes – los cuales puedenser utilizados por cualquier unidad de diseño -, solamente existen en VHDL.VHDLVHDL es un lenguaje de descripción de hardware utilizado para describir circuitos enun alto nivel de abstracción el cual está siendo rápidamente aceptado como un medioestándar de diseño. VHDL es producto del programa Very High Speed IntegratedCircuit (VHSIC) desarrollado por el Departamento de Defensa de los Estados Unidos afinales de la década de los 70s. El propósito era hacer un estándar para diseñar,modelar, y documentar circuitos complejos de tal manera que un diseño desarrolladopor una empresa pudiera ser entendido por otra y, además, pudiera ser procesado porsoftware con propósitos de simulación.VHDL es reconocido como un estándar de los lenguajes HDL por el Instituto deIngenieros en Electricidad y Electrónica – IEEE – como su estándar 1076 el cual fue 10
    • ratificado en 1987, y por parte del Departamento de Defensa de los Estados Unidoscomo el estándar MIL-STD-454L En 1993 el estándar IEEE-1076 se actualizó y unestándar adicional, el IEEE-1164, fue adoptado. Para 1996 el estándar IEEE-1076.3 seconvirtió en un estándar de VHDL para síntesis siendo éste el que se utiliza en eldiseño de sistemas digitales. Los estándares más utilizados en síntesis de circuitos porla mayoría de las herramientas de diseño son el IEEE-1164 y el IEEE-1076.3. En laactualidad VHDL es un estándar de la industria para la descripción, modelado ysíntesis de circuitos digitales. Por esto, los ingenieros de la mayoría de las áreas deelectrónica, si no es que todas, deben aprender a programar en VHDL paraincrementar su eficiencia.VENTAJAS DE LOS VHDL’SEl VHDL ofrece las siguientes ventajas en el diseño de circuitos: - Tiene una gran capacidad descriptiva en diferentes niveles de abstracción. - Los circuitos diseñados pueden ser reutilizados. - Independencia en la metodología de diseño - Independencia del proceso de fabricación.Entre las principales características podemos decir:Está basado en sentencias que se ejecutan de manera concurrente: quiere decirque las sentencias se ejecutan cuando ocurre un evento y pueden ejecutarse una omás al mismo tiempo (aquellas sentencias que dependan de las señales que estáncambiando serán evaluadas). Aunque también permite definir dominios en los que lasacciones se suceden en orden secuencial (Process). 11
    • La concurrencia se ve claramente graficado en los circuitos electrónicos donde loscomponentes se encuentran siempre activos, existiendo una asociación intrínsecaentre todos los circuitos(ver figura anterior); ello hace posible el hecho de que si se daalgún cambio en una parte del mismo, se produce una variación (en algunos casoscasi instantánea) de otras señales. Este comportamiento de los circuitos reales obligaa que VHDL soporte estructuras específicas para el modelado y diseño de este tipo deespecificaciones de tiempos y concurrencias en el cambio de las señales.Permite simular el diseño y generar formas de onda: Una de las finalidades delVHDL es modelar un circuito para observar su comportamiento a lo largo del tiempo(simulación). Esto implica que el VHDL tenga construcciones asociadas para poderrealizar una simulación. Estas construcciones permiten generar distintos eventos quese sucederán a lo largo del tiempo, afectando a las sentencias que dependan de las 12
    • señales que vayan cambiando y obteniendo de esta manera la respuesta del circuitoevaluado.El comportamiento de los circuitos en VHDL, está basado en la respuesta a estímulos,el modelo responde cuando hay un estímulo y luego espera el siguiente estímulo.Soporta distintos niveles de descripción: El VHDL soporta tres estilos dedescripción de circuitos:Estilo Flujo de datos: donde se aborda la implementación del diseño utilizandoecuaciones lógicas que describen como es el flujo de las señales desde la entradahasta la salida. 13
    • Se recomienda utilizar este estilo en el diseño de circuitos combinacionales de simplea mediana complejidad (circuitos SSI y MSI) como son circuitos diseñados en base acompuertas básicas, multiplexores, decodificadores, comparadores, sumadores, etc.Estilo algorítmico: En donde se modela el comportamiento deseado en un alto nivelde abstracción. No hay mayor detalle del circuito a implementar, especificándose sufuncionamiento en base a un algoritmo construido con sentencias muy parecidas a loslenguajes de programación de alto nivel.Se recomienda utilizar este estilo para abordar el diseño de circuitos combinacionalesde medianos a complejos, circuitos secuenciales y máquinas de estado, en el diseñode unidades de control y ruta de datos de los sistemas digitales. Es recomendado parainiciarse en la programación VHDL por su alto nivel de abstracción, aunque la mayoríade las herramientas de síntesis actuales tienen ciertas restricciones en cuanto a suuso en su real magnitud.Estilo estructural: En donde la descripción se realiza mediante la interconexión decomponentes previamente elaborados o extraídos de algunas bibliotecas que ofrecenlos fabricantes de CPLD’s ó FPGA’s. La descripción se realiza indicando la lista deconexiones entre los diferentes componentes que conforman el circuito. 14
    • Se recomienda este estilo cuando el sistema digital complejo se ha divido endiferentes bloques funcionales y se desean unir esos bloques para la implementacióndel sistema final. También cuando estamos frente a un circuito que tienen bloquesrepetitivos y para la creación de los vectores de pruebas (testbench) en VHDL.El tipo de estilo utilizado finalmente dependerá de las habilidades del diseñador en eluso de lenguajes de programación, pero no se debe olvidar nunca que lo que se estádescribiendo finalmente se transformará a ecuaciones lógicas que podrían serimplementadas en dispositivos FPGA’s (basados en CLB’s) o CPLD’s (basados enmacroceldas).Unidades de diseño.En un programa VHDL hay dos bloques básicos: La entidad y la arquitectura.Entidad: La entidad, nos sirve para relacionar nuestro diseño con el mundo exterior,es decir, analizamos lo que tratamos de crear como una "caja negra", de la que sóloconocemos sus entradas, salidas y la disposición de las mismas.Sintaxis: Entity identificador is [genéricos] [puertos] end [identificador]; 15
    • Nota: lo que se encuentra entre corchetes [] se considera que su uso es opcional.Cada señal en una declaración de entidad está referida a un puerto (o grupo deseñales), el cual es análogo a un(os) pin(es) del símbolo esquemático. Un puerto esun objeto de información, el cual puede ser usado en expresiones y a la vez se lepueden asignar valores. A cada puerto se le debe asignar un nombre válido.La declaración de un puerto consta de: - nombre: identifica a un pin de la entidad - modo: indica el flujo de la señal. - tipo: indica el conjunto de valores que puede tomar un objeto, en este caso el puerto.El modo determina como las sentencias de la arquitectura pueden acceder al puerto.Tenemos 4 tipos de modos: - in: es de sólo lectura (no se puede escribir). - out: es de sólo escritura (no se puede leer). - buffer: se comporta como un puerto de salida (out) que se puede leer. - Inout: es de tipo bidireccional, quiere decir que se puede leer y escribir. 16
    • Sólo para fines de simulación todo puerto puede tener un valor por defecto quedetermina el valor inicial de la señal, los puertos de entrada pueden dejarsedesconectados si tienen un valor por defecto.Arquitectura: En la declaración de la arquitectura es donde reside todo elfuncionamiento de un programa, ya que es ahí donde se indica que hacer con cadaentrada para obtener la salida. La arquitectura es el conjunto de detalles interiores dela caja negra.Sintaxis: architecture nombre of entidad is - - Zona de declaración begin sentencias concurrentes; sentencias concurrentes; sentencias concurrentes; end nombre;Para describir una arquitectura podemos utilizar tres estilos, teniendo cada uno supropio nivel de abstracción: - Estilo algorítmico (behavioral) - Estilo flujo de datos (dataflow) - Estilo estructural (structure)Cada estilo está basado en sentencias concurrentes que determinan el grado deabstracción del circuito a diseñar, así tenemos que el estilo algorítmico se caracterizapor utilizar las sentencias de los lenguajes de alto nivel, el estilo flujo de datos basadoen sentencias que asignan valores a una señal y el estilo estructural que permiteinterconectar componentes ya elaborados. 17
    • La descripción de una arquitectura se compone de un conjunto de sentenciasconcurrentes que se ejecutan en forma asíncrona entre sí y se comunican medianteseñales. Estos procesos que se ejecutan concurrentemente deben poder comunicarse(sincronizarse) entre ellos. El elemento necesario para comunicar dos procesos es laseñal (signal).En cada uno de los estilos de modelado se utiliza la sentencia de asignación deseñales: <=, para esto hay que tener en cuenta que: - Las señales a ambos lados del operador de asignación (<=) deben ser del mismo tipo. - Si hay varias asignaciones a la misma señal en un mismo proceso, prevalece el valor de la última asignación. - Las asignaciones a señales pueden aparecer en sentencias concurrentes (estilo flujo de datos) o sentencias secuenciales (estilo algorítmico).En la arquitectura las sentencias concurrentes hacen referencia en todo momento aseñales, estas señales pueden ser puertos. La señal es un tipo de objeto en VHDL quepuede cambiar de valor y tiene un modelo de retardo asociado.Entre los modelos de retardo tenemos: - Retardo de tipo inercial: es el retardo asociado a las compuertas digitales. - Retardo de tipo transporte: es el retardo asociado por las interconexiones que existen entre los diferentes circuitos.Tipo: El VHDL es un lenguaje de programación donde los objetos a utilizar (señales,variables, constantes) deben tener asignado un tipo. El tipo define el conjunto devalores que pueden tomar los objetos. Así tenemos por ejemplo el tipo bit (declaradoen el paquete Standard de la biblioteca STD) como: TYPE BIT IS (0, 1) 18
    • Indica que el tipo bit sólo puede tomar los valores: 0 y 1. Este es un tipo básico y conel ya podemos crear puertos y nodos internos para interconectar los circuitos digitales.Pero hay un inconveniente: este tipo no permite implementar componentes cuya salidapueda tomar un valor de alta impedancia (Z), no se pueden realizar operacionesaritméticas (sólo lógicas) ya que no hay implementadas funciones para tal fin con estetipo y tampoco pueden unirse más de una señal sobre salidas de varios circuitosporque el tipo bit tampoco tiene asociado una función que permita resolver lasmúltiples asignaciones a un mismo objeto. Por esta razón es preferible utilizar el tipode dato std_logic que se encuentra en el paquete STD_LOGIC_1164 de la bibliotecaIEEE. El tipo std_logic es un tipo de dato multivaluado como se muestra en parte de ladescripción del paquete:El tipo de dato utilizado por lo general std_logic (que es un sub-tipo del tipo std_ulogic)por las ventajas que hemos mencionado en el párrafo anterior. Para poder utilizar estetipo de dato en el programa VHDL debemos declarar previamente en que paquete seencuentra y a que biblioteca pertenece el paquete, para esto utilizamos las siguientessentencias: 19
    • Con ello tenemos la posibilidad de utilizar todos los elementos que se encuentrandeclarados en los paquetes: STD_LOGIC_1164, STD_LOGIC_ARITH ySTD_LOGIC_UNSIGNED. En el paquete STD_LOGIC_1164 encontramos ladeclaración de tipos y subtipos de datos, funciones de conversión de un tipo a otro. Enel paquete STD_LOGIC_ARITH encontramos funciones aritméticas, lógicas y derelación que se puede utilizar entre los objetos declarados con tipos de datosSTD_LOGIC ó STD_LOGIC_VECTOR. El paquete STD_LOGIC_UNSIGNEDcomplementa al paquete STD_LOGIC_ARITH con operaciones aritméticas sin teneren cuenta los bits de signo. Mayor informarcion sobre el lenguaje de programación [1],[4], [5] y [6]. 20
    • CAPITULO IILA TARJETA DIGILAB 2SB, TARJETA DIO 4 Y LAS HERRAMIENTAS DE DISEÑO ISE 7.1I.La tarjeta Digilab 2SB tiene muchas características que facilitan la experimentacióndiseños lógicos reconfigurables así como también prototipos generales rápidos delógica digital. La tarjeta Digilab 2SB se muestra en la figura 1 y mediantes diagrama debloques en la figura 2: Figura 1: Tarjeta Digilab 2SB (FPGA XILINX XC200E) 21
    • Figura 2: Diagrama de bloques de la Tarjeta Digilab 2SB (FPGA XILINX XC200E).La tarjeta Digilab 2SB es autónoma, es una tarjeta que sirve para experimentos ydesarrollos de prototipos con FPGA’s utilizando la arquitectura Xilinx FPGA. Estatarjeta tiene un Xilinx Spartan XC2S200E FPGA.Un oscilador de 50 MHz es el motor de la FPGA. Más información acerca de estatarjeta Digilab 2SB se puede encontrar en [9].La tarjeta posee 6 bancos de entradas y salidas a los cuales se les asigna un númerode pines específicos para su implementación.La tarjeta Xilinx Spartan 2E FPGA. D2-SB incluye:  Xilinx XC2S200E-200 FPGA con 200K compuestas y 350MHz de operación; 22
    •  143 entradas y salidas en 6 rutas estándares de 40 pines cada una;  Un socket para JTAG-programmable 18V02 configuration Flash ROM;  Doble regulador de voltaje (1.8V y 3.3V)  Un oscilador SMD 50MHz y un socket para un Segundo oscilador  Un puerto programable JTAG  Un led de status y un pulsador para la expansiones I/OConector de expansión de 40 pines Figura 3: Vista del conector de expansión de la tarjeta Digilab 2SB.Tarjeta Digilab DIO4La tarjeta DIO4 puede ser conectada a un sistema de tarjetas Digilent de forma rápiday sencilla para añadir varias utilidades a los puertos I/O. La DIO4 se alimenta de latarjeta del sistema y las señales de todos los dispositivos de I/O (entrada y salida) sonruteados los pines individualmente en los conectores de la tarjeta del sistema (tarjetaDigilab 2SB).Estas características permiten a la tarjeta DIO4 ser incorporada dentro de los circuitosde la tarjeta del sistema con un mínimo esfuerzo.Todos los dispositivos de la tarjeta DIO4 usan el suministro de 3.3V de la tarjeta delsistema, a excepción del puerto PS/2 que necesita un suministro de 5VDC (La tarjetaDIO4 contiene un regulador de 5VDC), las señales provenientes del puerto PS/2 sonruteadas mediante buffer de protección (para proteger la tarjeta del sistema que notiene entradas tolerantes de 5V 23
    • Diagrama de bloques de la Tarjeta Digilab DIO4 Figura 4: Diagrama de bloques de la Tarjeta Digilab DIO4.La Tarjeta Digilab DIO4 incluye:  4 Display de 7 segmentos.  8 leds individuales.  4 pulsadores.  8 switches.  Puerto VGA de 3 bits.  Puerto PS/2 para teclado o mouse. 24
    • Visualización Grafica de las tarjetas Digilab 2SB y DIO4 Figura 5: Visualizacion grafica de las tarjetas Digilab 2SB (Izquierda) y DIO4 (Derecha).EL SOFTWARE XILINX ISE FOUNDATION SERIESLos diseños que son introducidos en la tarjeta Digilab 2SB requiere el uso del diseñoespecial asistido por computadora, CAD, el software para configurar el Xilinx Spartan –series FPGA. El software CAD es la suite de herramientas Xilinx ISE Foundation seriesEste software funciona con una PC bajo Windows/Unix y eso da soporte a la entradade diseño (captura vía esquemas, entrada de diagrama de estado y lenguaje dedescripción de hardware), síntesis, simulación lógica, análisis de tiempo yconfiguración del dispositivo.Este software permite la descripción en lenguajes VHDL, Verilog, ABEL, UCF. Lapantalla está dividida en cuatro subpantallas principales, tal y como se presenta en laFigura 6. En la parte superior izquierda se encuentra la ventana Sources in Project –fuentes en la pantalla-, la cual presenta de forma jerárquica los elementos incluidos en 25
    • el proyecto. Bajo esta subpantalla se encuentra Processes for Source el cual muestralos procesos habilitados. La tercera ventana, ubicada en la parte inferior, muestraerrores y advertencias, que se producen durante todas las etapas del proyecto. Figura 6: Interfaz general del proyecto: Interface Project Navigator.ISE se autodenomina Navegador de Proyecto (Project Navigator) y está orientado afacilitar el proceso de desarrollo.En la ventana principal se distinguen cuatro partes: - Arriba a la izquierda se encuentra la ventana de ficheros fuente del proyecto. - Debajo, a la izquierda, se encuentra la ventana de proyecto que representa el flujo de diseño adaptado al dispositivo del proyecto. - A la derecha se encuentra un espacio reservado para colocar los diferentes editores del entorno. - Abajo tenemos una ventana que muestra la salida texto generada por las diferentes utilidades que van siendo llamadas en el proceso de diseño.Cada vez que abrimos la aplicación se carga el último proyecto tratado mostrando elestado correspondiente a las actuaciones realizadas en cada una de las ventanas. 26
    • La figura siguiente muestra la ventana de proyecto en la que se aprecian las diferentesfases del flujo de diseño. Figura 7: La ventana de proyectos de ISE.Resumidamente las fases de desarrollo son: 1. Diseño. 2. Imposición de restricciones. 3. Síntesis. 4. Implementación. 5. Configuración del dispositivo o carga del programa.Cada una de estas etapas admite una variedad de formatos y herramientas tantonativas (de Xilinx) como de terceros. Los dispositivos reconfigurables pueden ser dedos arquitecturas diferentes: FPGA’s (Field Programmable Gate Array) y CPLD’s(Complex Programmable Logic Device). 27
    • FLUJO DE DISEÑOEn esta sección se presenta el flujo de diseño completo para lógica reconfigurable deXilinx. Podemos distinguir las siguientes etapas: 1. Diseño _ modelado de un circuito lógico (HDL, esquemático, EDIF, máquina de estados, etc.). 2. Imposición de restricciones _ asignación de pines, limitaciones temporales. 3. Síntesis _ traducción a puertas lógicas. 4. Implementación _ generación del programa que configura un determinado dispositivo destino (FPGA o CPLD). 5. Configuración del dispositivo _ carga del programa en el dispositivo destino.La figura siguiente ilustra lo dicho indicando las diferentes fases de desarrollo según laenumeración anterior. Dicha enumeración no significa que necesariamente haya queseguir ese orden de principio a fin, más bien es un proceso en el que se avanza yretrocede iterativamente hasta alcanzar el objetivo. Figura 8: Flujo de diseño Xilinx simplificado. 28
    • Cada una de las etapas del flujo de diseño puede realizarse dentro del entornointegrado o bien utilizar herramientas de terceros. Algunas de esas herramientastambién son integrables en ISE si están convenientemente instaladas.La lógica reconfigurable de Xilinx cuenta con dos tipos de dispositivos: FPGA’s (FieldProgrammable Gate Array) y CPLD’s (Complex Programmable Logic Device). Cadauno de ellos tiene sus fases de desarrollo específicas. Aquí nos centraremos en laconfiguración de dispositivos FPGA.Fase de diseño, restricciones y síntesisEn el diagrama de flujo de diseño figura en primer lugar la entrada del circuito lógicoque deseamos implantar. Esta entrada se puede realizar de las siguientes maneras: _HDL o lenguaje de descripción de hardware (VHDL, Verilog, ABEL).  Esquemáticos.  EDIF.  NGC/BGO.  Máquina de estados.  Núcleo IP.Para llevar a cabo esta entrada del circuito lógico el entorno ISE proporciona lassiguientes herramientas: - Editor de texto. Genera diferentes extensiones dependiendo del lenguaje utilizado. Para el caso de VHDL la extensión es *.vhd. - Editor de esquemáticos. Es la utilidad ECS (Engineering Capture System) que podemos encontrar bajo el nombre ECS.exe. Funciona tanto en el entorno integrado ISE como de forma autónoma. Genera ficheros con extensión *.sch. 29
    • - Editor de máquinas de estados. Es la utilidad StateCAD (fichero sc.exe). Permite generar diagramas de estados (ficheros *.dia) y traducirlos a algún lenguaje de descripción de hardware.Hay que tener en cuenta que el circuito ha de relacionarse con el exterior a través delos pines del encapsulado del dispositivo configurable destino (FPGA en nuestro caso).Estos pines están, a su vez, unidos a una serie de elementos de la placa de desarrollo(puertos de entrada/salida, memoria, microcontrolador, etc.). Es necesario, por tanto,establecer las asignaciones de entradas y salidas a los pines del dispositivo físicoconcreto. Esto forma parte de las restricciones de usuario que además incluyen laslimitaciones temporales.Para realizar las asignaciones de pines del encapsulado tenemos las siguientesherramientas: - Editor de texto. Generamos un fichero de extensión *.ucf. - PACE: Pinout and Area Constrints Editor. Entorno gráfico que permite realizar las asignaciones y salvarlas en un fichero de texto. Este fichero de texto tiene extensión *.ucf.Finalmente hemos de realizar la traducción del circuito a puertas lógicas. Cuando eldiseño fuente se ha realizado en esquemático o con lenguajes de descripción dehardware mediante modelados estructurales se puede disponer de la implementaciónen puertas lógicas pero en otros casos no es así. La síntesis se puede realizar con lassiguientes herramientas: - XST: Xilinx Synthesis Technology. Es el sintetizador nativo de Xilinx y se materializa en el ejecutable xst.exe. Genera (entre otros) un fichero de extensión *.ngc. - LeonardoSpectrum. Pertenece a Mentor Graphics y es integrable en ISE. - Synplify. Pertenece a Synplicity y también es integrable en ISE.Las etapas de diseño, imposición de restricciones (asignación de pines) y síntesis sepresentan con detalle en la figura siguiente. 30
    • Figura 9: Flujo de diseño Xilinx para entrada de modelos y síntesis.En la figura 9, podemos observar como partiendo de esquemáticos pasamos a unaformalización textual a través de EDIF (Electronic Design Interchange Format).EDIF es una normalización usada para intercambiar diseños entre diferentes sistemasde CAD y entre ellos y los equipos de fabricación y ensamblado de circuitos impresos.Los ficheros EDIF tienen extensión *.edf.Como hemos dicho, cuando partimos de descripciones realizadas con VHDL, Verilog oABEL es necesario intercalar una etapa de síntesis a puertas lógicas ya que estosmodelos no siempre se realizan basados en circuitos lógicos, es más, su mayorpotencia se encuentra en los modelados comportamentales, más cercanos a losprogramas de alto nivel que a los circuitos digitales. La síntesis genera ficheros NGC(*.ngc) o EDIF (*.edf).En esta fase del diseño es necesario comprobar las reglas lógicas y realizarsimulaciones que nos permitan justificar el correcto funcionamiento de nuestroscircuitos. Como herramientas de simulación integradas disponemos de: - ISE SIMULATOR: es el simulador nativo de Xilinx con salida de forma de onda que nos permite ver los cronogramas que generan nuestros diseños. - ModelSim de Model Technology integrable en ISE. 31
    • El conjunto de ficheros que describen el modelo (*.ngc y *.edf) y los que imponenrestricciones (.ucf) permiten abordar la siguiente fase, la de implementación.Carga del Programa de ConfiguraciónDisponemos de 2 opciones para cargar el programa de configuración en la pastillaFPGA: - La herramienta IMPACT de Xilinx que genera varios formatos de ficheros de programación y que puede descargar el programa a través de un cable de comunicación; y - Las utilidades de la placa de desarrollo que proporciona Digilent. En este caso necesitamos un fichero de programación de extensión *.svf. IMPACT Realiza dos funciones básicas: la configuración de un dispositivo a través de alguno de los posibles cables desarrollados al efecto y la generación de ficheros de configuración en diferentes formatos. El cable disponible en nuestro caso es JTAG. La configuración del dispositivo se puede hacer con arreglo a uno de los cuatro modos disponibles: - Boundary-scan. - SelectMAP - SlaveSerial - Desktop Configuration (únicamente cable MultiPRO). En nuestro caso usaremos Boundary-scan con el cable JTAG. 32
    • CAPITULO III COMPARADOR DE 2 BITSAPLICACIÓN ISE PROJECT NAVIGATOR Y MODELSIMLa versión ISE Project Navigator 7.1i es una edición libre, descargable de la páginaweb de Xilinx, previamente se tiene que configurar la licencia para que tipo deHardware se va a utilizar.El arranque de la aplicación se realiza a través del menú inicio: Menúinicio/Programas /Xilinx ISE 7.1I/Project Navigator. Después de la ventana debienvenida aparece la ventana principal del entorno, tal y como se muestra en la figurasiguiente si no se ha realizado ningún proyecto anteriormente. Figura 10: Aspecto inicial de ISE Project Navigator 7.1i. 33
    • Para cerrar la aplicación hay que seleccionar la opción File/Exit y confirmar en elcuadro de diálogo correspondiente.CREACION DE UN PROYECTOPara el entorno ISE un proyecto es un conjunto de unidades de diseño --modelos enlenguajes de descripción de hardware, esquemáticos, etc.--, unas restricciones deimplantación física y una arquitectura de dispositivo reconfigurable. Además de esto, elproyecto integrará en el entorno algunas herramientas de simulación y síntesis queseleccionará el usuario de entre las nativas de Xilinx y las proporcionadas por terceros.Creación de nuestro proyecto:1. Iniciar la aplicación ISE Project Navigator 7.1i2. Seleccionar la opción File/New Project…. Aparecerá la ventana de dialogo de la figura siguiente. En dicha ventana se establece el nombre del proyecto, el directorio en el que desea ubicarse y tipo de fichero fuente de entre los disponibles (lenguaje de descripción de hardware (HDL), esquemático, EDIF o NGC/NGO). Pulsar el botón ‘Siguiente’. Figura 11. Primera ventana de dialogo para la creación de un proyecto. 34
    • 3. Aparece la ventana de diálogo de la figura siguiente en la que se determina el dispositivo reconfigurable destino, su encapsulado y grado de velocidad. Las herramientas de síntesis (XST de Xilinx) y simulación (ModelSim de Model Technology) aparecen automáticamente si están instaladas en nuestro computador. También se selecciona el lenguaje HDL concreto que se va a utilizar en los ficheros fuente. En nuestro caso para el tipo de tarjeta que utilizaremos la configuración seria: Device Family: Spartan2E Device: xc2s200e Package: pq208 Pulsar el botón ‘Siguiente’ Figura 12: Ventana de nuevo proyecto.4. En las siguientes ventanas podemos determinar los ficheros fuente que vamos a utilizar o bien optar por no dar ninguna información ya que siempre podemos añadir nuevos ficheros en cualquier momento. Hacer clic en el botón ‘Finalizar’Para crear el proyecto. 35
    • La creación del proyecto tiene las siguientes consecuencias: - Se crea el fichero de extensión *.npl de configuración del proyecto en el directorio del proyecto. En nuestro caso es ejemplo1.npl. - Aparecen los ficheros fuente en la ventana de fuentes. Además de los ficheros de modelos y restricciones tenemos una entrada para el dispositivo reconfigurable. - Con el menú contextual podemos crear un nuevo fichero fuente, añadir uno existente, abrir uno presente con su editor específico, eliminar fuentes o consultar las propiedades de cada elemento. Aparece en la ventana de proyecto el flujo de diseño específico del dispositivo destino. Cada una de las entradas del mismo puede ejecutarse. Si el resultado es correcto se marcará con el símbolo  mientras que si genera errores se indicará con el símbolo X. 36
    • Figura 13: Ventana de procesos y proyectos de ISE 7.1i5. Creamos una nueva fuente: menú Project/new source, colocamos un nombre de archivo, luego declaramos las entradas y salidas Figura 14: ventana para definir entradas y salidas al crear un nuevo diseño. 37
    • Click en “siguiente”, “siguiente” y “finalizar”; Una vez definimos los puertos de entradas y salidas, pasaremos a ingresar el código VHDL tal como muestra la figura siguiente: Figura 15: Ventana de trabajo donde ingresamos el código VHDL.Esto es una forma de lenguaje de describir el hardware, puede haber muchasvariantes para describir el mismo ejemplo.6. verificamos que nuestro programa no tenga ningún error, esto se logra haciendo RUN en el sintetizador XST de la ventana de procesos. 38
    • Figura 16: Ventana general del proyecto ingresado con el código VHDL.7. Como podemos observar en la figura anterior, en la lengüeta de errores no se detecto ninguno, luego se pasa a grabar en el chip de la tarjeta Spartan 2SB X2S200E; Esto se hace en el programa iMPACT Figura 17: Ventana de proceso “configure device (Impact)” 39
    • Tenemos que editar los pines y el clock del dispositivo a usar:La figura 18, ilustra el editor PACE (Pinout and Area Constraints Editor) que seutiliza para realizar las asignaciones de entradas/salidas a pines del encapsulado.Este editor gráfico genera automáticamente un fichero de asignación de pines enmodo texto de extensión .ucf, en nuestro caso se denomina ejemplo1.ucf. Eldiagrama del flujo de diseño permite hacer la asignación de pines tanto en elentorno gráfico (Assign Package Pins) como generando el fichero de texto (EditConstraints (Text)) bajo la entrada User Constraints del árbol de la ventana deproyecto.Figura 18. Editor PACE de asignación de pines con el encapsulado PQ208 del dispositivo XILINX 2S200E.En nuestro ejemplo asignaremos los pines de las tarjetas mediante EditConstraints (text), que es una forma manual de ingresar la asignación de pines delas tarjetas 2SB y DIO4 40
    • Figura 19. Editor de texto con el fichero de asignación de pines.El dispositivo a usar tiene puerto JTAG, por ende lo configuraremos, haciendo clickderecho sobre Generate Programming File de la ventana Proccess, la figuramuestra la elección JTAG Clock, luego click en Aceptar Figura 20: Ventana de propiedades para editar el clock JTAG. 41
    • 8. Seleccionamos "boundary scan" y luego siguiente. Figura 21: programación en curso.9. Luego seleccione "Automatically Connect to cable and select boundary scan chain" y click en “finalizar”.10. Aparecerá un mensaje al cual le colocaremos OK Figura 22: Proceso de verificación BOUNDARY11. Luego abriremos el archivo .BIT, en nuestro caso ejemplo1.bit, el mensaje que aparecerá se le coloca aceptar 42
    • Figura 23. Tareas disponibles para realizar sobre el dispositivo en modo configuración.Al final colocamos OK 43
    • Figura 24: Verificación y activación de borrar programación anterior.Con esto hemos logrado grabar el código VHDL en la tarjeta y no resta más quecomprobar su funcionamientoNOTA: Es muy importante seleccionar Erase Before Programming para no dañar elchip.Luego se crea un fichero de programación *.svf si ha salido todo con éxito.RTL SCHEMATIC DE LA VENTANA PROCESSAquí se puede observar después de la compilación el diseño esquemático que es unobjeto que se puede usar cuando se desea programar mediante diagramaesquemático. 44
    • Figura 25: Bloque esquemático del comparadorTambién podemos simular cualquier proceso usando la herramienta ModelSim,una vez creado el programa en project navigator, doble click en Launch ModelsimSimulator, para que aparezca antes deberiamos haber configurado que la simulacionse haria con Modelsim, porque tambien se puede haber elegido ISE Simulator. Figura 26: Abrir el Simulador ModelSim.Por lo tanto tenemos la siguiente ventana en que se podra simular sin necesidad detener las tarjetas Digilab 2SB y DIO4 45
    • Figura 27: Ventana de trabajo del simulador ModelSim XE III 6.0a. 46
    • SUMADOR BINARIOCreamos un nuevo proyecto: Figura 28: creación de un nuevo proyecto para un sumador.Click en siguienteDebemos asegurarnos de haber ingresado las propiedades correctas del dispositivo,tal como se observa en la figura 29: 47
    • Figura 29: Configurar según la tarjeta Digilab 2SBClick en “siguiente”En el New Project Wizard, click en New Source. En New Source Wizard, seleccionarVHDL module y escribir el nombre del archivo. 48
    • Figura 30: Creación de un nuevo archivo para el sumadorClick “siguiente”. En este ejercicio, se diseñara un sumador (adder) con X, Y y Zentradas y S y C salidas. Por lo tanto, colocar adecuadamente los puestos y luegoclick en siguiente 49
    • Figura 31: Ingreso de las entradas y salidas.Click en “siguiente”, “siguiente” y “finalizar”. Esto abrirá un editor donde se podráingresar el código VHDL Figura 32: Ventana del proyecto una vez ingresado las entradas y salidas.Recordamos que:S  X Y  ZC  XY  YZ  XZPor lo tanto, 50
    • Figura 33: Ventana de trabajo con el programa del sumador.Guardar el archivoEl proyecto puede ser simulado usado ModelSim o ISE Simulator. Para detalles de ISESimulator diríjase al tutorial de ISE Simulator. ModelSim lleva un similar proceso comobosquejo general esto se puede ver en el tutorial de ModelSim. Esto se puede realizarsimilar al ejemplo presentado en el capitulo anterior. 51
    • Figura 34: Ventana ModelSim XE III 6.0a del sumadorCuando el diseño es verificado, abrir el editor User Constraints Editor y asignar lospines correctos a las entradas y salidas. 52
    • Figura 35: Ingreso manual de la asignación de pines (edit constrainst (Text)).Seguir los pasos para la implementación en las tarjetas mencionado en el capituloanterior. 53
    • CAPITULO IV COMPARADOR BINARIOCreación de código VHDL mediante captura esquemática (*.sch)Para ellos crearemos un nuevo proyecto: eligiendo Schematic Figura 36: Nuevo proyecto para diseño esquemático.Click en Siguiente. Elegimos según las características de las tarjetas, de la mismamanera de los proyectos anteriores 54
    • Figura 37: Configuración del hardware a usar.Click en “siguiente”, click en “New source”, debemos elegir Schematic, colocar nombrea nuestro archivo y dar la ubicación donde se guardara. Figura 38: creación de nuevo archivo de captura esquemática.Click en “siguiente”, “finalizar”, luego click en “siguiente”, “siguiente” y “finalizar”,tendremos la siguiente ventana, donde tenemos las ventanas “desing sum” (figura 39)y “proyecto3.sch” (figura 40) donde haremos el esquema: 55
    • Figura 39: ventana resultante al ingresar la configuración del nuevo proyecto esquemático (Desing Sum). Figura 40: ventana resultante al ingresar la configuración del nuevo proyecto esquemático (proyecto3.sch).En esta ventana se podrá diseñar cualquier circuito, y luego también se puede generarsu código VHDL, el proceso de simulación es similar a procesos anterioresmencionados.En este caso tenemos un multiplexor 2 a 1: se podrá cambiar los nombres de lospuertos mediante sus propiedades tal como se muestra en la figura 41: 56
    • Figura 41: Visualizacion del multiplexor 2 a 1.Luego para verificar que nuestro esquema esta correcto hacemos un click en el checo (menú tolos/check schematic), debe mostrarse similar a la figura mostrada, sinerrores. Figura 42: Verificación de errores del diseño esquemático.Simulamos haciendo dobre click en synthesize -XST, y nos muestra la consola librede errores, aquí también notar que se genera un archivo.vhd 57
    • Figura 43: Código VHDL generado del multiplexor 2 a 1:Que también se puede simular en ModelSim o con ISE Simulator. 58
    • Figura 44: Simulación del multiplexor en ModelSim XE III 6.0a.2.5. DISCUSION El trabajo de investigación que hemos desarrollado ha tenido en cuenta el avance tecnológico y el uso apropiado de las tarjetas Digilab con la que cuenta el laboratorio de Ingeniera Electrónica para resolver problemas de diseños y simular ejemplos de circuitos digitales en general.2.6. CONCLUSIONES- Es posible verificar el funcionamiento del sistema dentro del proceso de Diseño sin necesidad de implementar el circuito.- • Las simulaciones del diseño, antes de que éste sea implementado mediante compuertas, permiten probar la arquitectura del sistema para tomar decisiones en cuanto a cambios en el diseño.- • Las herramientas de síntesis tienen la capacidad de convertir una descripción hecha VHDL a compuertas lógicas y, además, optimizar dicha descripción de acuerdo a la tecnología utilizada.- • Esta metodología elimina el antiguo método tedioso de diseño mediante compuertas, reduce el tiempo de diseño y la cantidad de errores producidos por el armado del circuito.- Las herramientas de síntesis pueden transformar automáticamente un circuito obtenido mediante la síntesis de un código en VHDL, a un circuito pequeño y rápido. Además, es posible aplicar ciertas características al circuito dentro de la descripción para afinar detalles (retardos, simplificación de compuertas, etc.) en la arquitectura del circuito y que estas características se obtengan en la síntesis de la descripción. 59
    • - Las descripciones en VHDL proporcionan documentación de la funcionalidad de un diseño independientemente de la tecnología utilizada.- Un circuito hecho mediante una descripción en VHDL puede ser utilizado en cualquier tipo de dispositivo programable capaz de soportar la densidad del diseño. Es decir, no es necesario adecuar el circuito a cada dispositivo porque las herramientas de síntesis se encargan de ello.- Una descripción realizada en VHDL es más fácil de leer y comprender que los netlist o circuitos esquemáticos.2.7. RECOMENDACIONES- Se recomienda la utilización de las tarjetas Digilab 2SB que tiene el FPGA XILINX 2S200E y la tarjeta DIO4 en los cursos de Ingeniería Electrónica tales como Circuitos Digitales, Sistemas Digitales, Procesamiento Digital de Señales y Control automático debido a la utilidad de describir los diseños en VHDL (Lenguaje de descripción de Hardware).- Se recomienda leer la bibliografía referente a lenguaje de descripción de Hardware (VHDL) debido a que no ha sido propósito específico de nuestra investigación.- Se motiva a los estudiantes y en general a los investigadores desarrollar algoritmos para hacer uso de los puertos VGA y PS/2 que tiene la tarjeta Digilab DIO4.2.8. REFERENCIAS BIBLIOGRAFICAS 1. Fernando Nuño Garcia, Very High Speed Integrated Circuit Hardware Description Language (VHSIC HDL). 60
    • 2. Sin Ming Loo, Getting Started with Xilinx Design Tools and the Digilab 2E Prototyping Board – a User’s Guide.3. Dpto. Electrónica – Universidad de Alcalá, tutorial de diseño en VHDL para FPGAS.4. Douglas L. Perry, VHDL Programming by Example, Fourth Edition.5. IEEE Standard VHDL Language Reference Manual, IEEE Standard 1076. 20006. M A Freira. Introducción al lenguaje VHDL, Universidad Politécnica de Madrid.7. Xilinx Inc. [http://www.xilinx.com]8. Digilent D2-SB. System Board. Reference Manual. Sep, 2003. Disponible en: http://www.digilentinc.com/Data/Products/D2SB/D2SBrm.pdf9. ModelSim manual Xilinx 6.0a, publicado sep2004 Disponible en: www.model.com/downloads/default.asp10. Digilent DI04 Peripheral Board. Reference Manual. Agosto, 2004. Disponible en: http://www.digilentinc.com/Data/Products/DIO4/DIO4 -rm.pdf http://www.digilentinc.com/Data/Products/DIO4/DIO4 -rm.pdf 61
    • 2.9. ANEXOS Tabla 1: Configuración de los puertos de la tarjeta 2SB y DIO4. 62
    • Tabla 2: Configuración de los puertos de la tarjeta 2SB y DIO4. 63
    • 64