You are on page 1of 21

1

Tutorial de Xilinx ISE


Texto original de Eduardo Magdaleno Castell y Manuel Rodrguez Valido Universidad de La Laguna Adaptaciones por Jhon Esteban Valencia y Mnica Vallejo para el curso de Electrnica Digital Universidad Nacional de Colombia Sede Medelln

1. Objetivos de este Tutorial


El objetivo de esta prctica guiada es presentar a grandes rasgos el entorno de diseo que ofrece el paquete informtico ISE de XILINX Inc. para la captura de esquemticos. En esta prctica se plantear el diseo de un bloque combinacional. La herramienta Xilinx-ISE (Integrated Software Environment) es una herramienta de diseo de circuitos profesional que nos va a permitir, entre otras funciones, la realizacin de esquemticos y su posterior simulacin y sntesis. El desarrollo de las prcticas se realizar siguiendo los siguientes puntos: En primer lugar, se estudiar la especificacin propuesta para determinar una posible solucin. Este estudio se debe realizar antes de utilizar la herramienta informtica, cuya introduccin se describe en este texto, ya que es la parte fundamental para asimilar los conocimientos sobre diseo lgico. A continuacin se har un estudio asistido por ordenador utilizando el paquete informtico ISE de XILINX Inc. Este paquete informtico est formado por un conjunto de herramientas que permiten disear circuitos digitales mediante esquemas lgicos o utilizando lenguajes de descripcin de hardware como VHDL o Verilog. Tambin permite simular el comportamiento de los circuitos diseados, y sintetizarlos sobre dispositivos lgicos programables de XILINX. La secuencia habitual de pasos se lleva a cabo del siguiente modo: Se introduce el diseo que se quiere simular en el entorno de captura de esquemas de la herramienta, llamado Xilinx ECS. La captura del diseo puede realizarse mediante esquemticos o utilizando lenguajes de descripcin de hardware. Se crea un testbench para comprobar el funcionamiento del circuito, mediante la herramienta HDL Bencher. Se simula el funcionamiento del circuito llamando a la herramienta de simulacin ISE Simulator. Se comprueba que el funcionamiento del circuito es el deseado, analizando las formas de onda de las seales pertinentes. En caso de que los resultados no sean los esperados, se debe revisar el diseo empezando por la especificacin de partida para localizar donde est el fallo, retocando entonces el esquema y repitiendo el ciclo de diseo.

2. Descarga e instalacin
El software ISE WebPack 10.1 puede ser descargado gratuitamente del enlace: http://www.xilinx.com/ise/logic_design_prod/webpack.htm. Para descargarlo usted debe

2 inscribirse (Create Account), una vez inscrito autorizan la descarga del paquete y le envan a su correo la licencia del software. Los requerimientos bsicos para la instalacin son: Microsoft Windows XP (slo 32 bit) Microsoft Windows Vista (slo 32 bit). Para la instlacin se recomienda estar conectado a la red. Para obtener una informacin ms detallada consulte el manual del enlace: http://www.xilinx.com/itp/xilinx10/books/docs/irn/irn.pdf

3. Diseo a implementar
La prctica consiste en el diseo mediante captura de esquemas de un multiplexor 2 a 1 con seal de habilitacin. Un multiplexor 2 a 1 tiene dos entradas de datos (D0, D1), una entrada de control (S), una seal de habilitacin E y una salida (O). La funcin de conmutacin del multiplexor 2 a 1 es la siguiente: Para implementar este circuito se necesitan una serie de puertas lgicas, como son: 2 puertas AND de 3 entradas, 1 puerta OR de 2 entradas y 1 inversor. La idea de las herramientas de captura de esquemas consiste en que se pueda reproducir de forma grfica aquello que haramos sobre el papel, dibujando dichas puertas y conectando todos los componentes entre s

4. Iniciando ISE
Para usuarios Windows, se arranca el programa desde el men Inicio seleccionando: Inicio > Programas > Xilinx ISE 10.1 > Project Navigator El ISE Project Navigator arranca. Aviso : Dependiendo del proceso de instalacin, el path del programa podra ser otro.

5. Creando un Nuevo Proyecto en ISE


En esta seccin, crears un proyecto en ISE. Un proyecto es una coleccin con todos los archivos necesarios para crear y descargar un diseo a cualquier dispositivo FPGA o CPLD de Xilinx Para crear un nuevo proyecto debes seguir los siguientes pasos: 1. Selecciona File > New Project. Aparecer el asistente de nuevos proyectos 2. Primero, selecciona la localizacin (o path) del directorio en el que ubicars el proyecto 3. Teclea mux2a1 en el campo Project Name. Cuando teclees mux2a1 en este campo, un subdirectorio del mismo nombre se crear automticamente en la direccin que seleccionaste anteriormente. 4. Selecciona schematic en el campo Top-Level Module Type, indicando que el archivo jerrquicamente superior y que engloba los dems ser un esquemtico, en vez de HDL o EDIF.

5. Pincha Siguiente para avanzar al siguiente paso 6. Rellena las propiedades del dispositivo en que se va a realizar el diseo y que aparecen a continuacin

7. Pincha Siguiente para obviar los pasos de aadir archivos nuevos o ya creados al proyecto. Esto lo haremos posteriormente. 8. Finalmente, las propiedades de tu proyecto aparecern resumidas de la siguiente manera

9. Pinchar en Finalizar.

6. Captura de esquemas
Una vez creado el proyecto, hay que crear un nuevo diseo de esquemtico. Para ello hacer doble clic en Create New Source

Aparecer un cuadro de dilogo en donde debemos seleccionar el nombre del archivo (mux2a1) y el tipo de archivo (Schematic).

Una vez seleccionado el tipo de archivo y el nombre, pulsar en Siguiente y en el siguiente cuadro de dilogo, en que figura el archivo que se generar, pulsar en Finalizar. Una vez hecho esto se abrir el editor de esquemticos.

En la parte izquierda dar click en la etiqueta Symbols, para seleccionar los componentes que queremos aadir al diseo. Al pinchar en ella presenta el siguiente aspecto, y desde ella se pueden seleccionar los componentes.

El cuadro superior de Symbols est dividido en varios mens. Desde el primero de ellos, etiquetado como Categories, se puede escoger el tipo de elementos que se quiere usar, como puertas lgicas, comparadores, multiplexores, memorias, etc. Tambin aparece en la parte inferior una pestaa que nos proporciona Informacin sobre cada uno de los smbolos. Para nuestra prctica usaremos como elementos puertas lgicas AND y OR que estn en la categora Logic.

7 Para empezar con el diseo aadiremos las dos puertas AND de tres entradas (and3) y la puerta OR de dos entradas (or2). Para ello seleccionaremos la opcin Logic en Categories, y en Symbols buscaremos el componente and3. Una vez seleccionado pincharemos en el rea de diseo 2 veces para insertar 2 puertas. Una vez colocados los 2 componentes, se pulsa la tecla ESC para dejar de insertar componentes. Es conveniente hacer un zoom sobre la zona en la que vamos a trabajar para poder colocar mejor los componentes. Para hacer zoom sobre una zona hay que pinchar en el icono de la barra de herramientas y luego pinchar y dibujar un cuadrado sobre la zona donde queremos hacer el zoom. Una vez colocados las dos puertas AND buscamos el componente or2, el cual seleccionamos e insertamos en el esquemtico. Una vez colocado, se pulsa la tecla ESC. El aspecto del esquemtico debera ser el siguiente:

A continuacin completar el diseo para que quede como la figura de abajo. Para ello tendremos que colocar el componente inv, realizar el cableado de conexin entre los componentes y colocar los puertos de entrada y salida. Estos ltimos comandos se encuentran en la barra de herramientas.

El nombre de los puertos puede modificarse haciendo doble -click en los mismos. Modificar el nombre de los puertos para tener D0, D1, E, S como puertos de entrada y O como puerto de salida.

7. Comprobacin del circuito


Una vez terminado el diseo del circuito puede hacerse una simple comprobacin sobre el mismo para asegurarnos de que todas las conexiones estn bien hechas y que no hay cables sueltos o puertas sin conectar. Para ello desde el men principal se pincha en Tools y dentro de este men desplegable en Check Schematics. Aparecer una ventana que nos informar si hay algn Error o Warning. En nuestro caso no habr ningn tipo de problema:

8. Simulacin del Diseo


Creacin de un banco de pruebas para simular Una vez que se ha revisado el circuito y est libre de errores habr que comprobar su correcto funcionamiento. Para ello habr que realizar una simulacin del circuito diseado. La etapa de verificacin funcional se va a realizar con la herramienta de simulacin ISE Simulator. Para poder simular el circuito primero debemos crear un banco de pruebas (testbench waveform) donde se introducen los valores que se asignan a las entradas y en funcin de los cuales se obtendr una salida que deber coincidir con el valor esperado de acuerdo a la funcionalidad de nuestro circuito. 1. Selecciona el archivo mux2a1 en la ventana Sources in Project. 2. Crea un nuevo archivo seleccionando Project > New Source . 3. En la ventana emergente New Source, selecciona Test Bench Waveform como tipo de archivo y escribe mux2a1_tbw en el campo File Name.

10 4. Pulsa Siguiente. 5. Un cuadro de dilogo te muestra que asocias el tech bench o banco de pruebas con un fichero fuente: mux2a1. Pulsa Siguiente 2 veces. 6. Pulsa Finalizar Necesitars un conjunto de valores iniciales para tu banco de pruebas, por lo que se abrir el cuadro de dilogo Initialize Timing antes de que puedas editar las entradas en el banco de pruebas.

7. En Clock Information, seleccionamos la opcin Combinatorial cuando el sistema implementado es combinacional. En ese caso, se recomienda dejar los demas campos con los valores por defecto: Check Outputs: 50 ns, Assign Inputs: 50 ns, Global Sig nals: GSR (FPGA), Inicial Length of Test Bench: 2000 ns. Cuando el sistema implementado es secuencial seleccionamos la opcin Single Clock y con la pestaa se selecciona la seal que se usar como reloj. Para este caso puede trabajar con la configuracin por defecto en Clock Timing Information o el estudiante puede entrar a cambiar losvalores de los parmetros. Finalmente pulsa Finish para abrir el editor de formas de onda. 8. En este diseo, debemos simular teniendo todas las combinaciones posibles de estmulos en los puertos de entrada. Pulsa en las zonas sombreadas de azul para modificar los valores y obtener la combinacin de estmulos de la figura. 9. Selecciona File > Save para guardar las formas de onda. En la ventana Sources in Project, se aade automticamente el archivo TBW. 10. Cierra la ventana del editor de estmulos.

11

Aadiendo la estimacin de los resultados esperados al Banco de Pruebas En este apartado crears automticamente un banco de pruebas con las salidas esperadas que corresponden a las entradas que pusiste anteriormente con el editor de estmulos. Los retrasos en las entradas y las salidas que introdujiste cuando comenzaste a usar el editor de estmulos son evaluados cuando el diseo est siendo simulado. Para realizar esta prueba, debes ejecutar el comando Generar Resultados Esperados: 1. Selecciona el archivo mux2a1_tbw.tbw en la ventana Sources y seleccionar Behavioral Simulation en Sources. stas pestaas se encuentran en la parte superior izquierda de la pantalla.

2. En la pestaa que se encuentra en la parte inferior izquierda de la pantalla, pincha en Process, despliega el men Xilinx ISE Simulator y doble click en Behavioral Mode

12

3. Se abrir la ventana contextual Simulation.

Podemos observar que el comportamiento de nuestro diseo es el deseado. Es de esperar que hayamos diseado correctamente el sistema.

9. Conectado Buses
En el editor esquemtico un bus es simplemente una lnea a la cual ha sido asignada un nombre multi-bit. Para adicionar un bus a un diseo siga los siguientes pasos:

1. Adicione una lnea y coloque la etiqueta de entrada salida.

13 2. Luego adicione un nombre multi-bit. De doble click sobre la etiqueta de entrada y de un nombre de vector, asi: a(3:0). Inmediatamente la lnea se pone grusa para indicar que ya es un vector. 3. Una vez el bus ha sido creado, usted puede adicionar tapping al bus para usar cada seal individualmente. Use la opcin de la ventana de procesos de direccin (right,left,etc) para ubicar el tap de tal forma que la figura triangular sea la que se conecte al bus, y la lnea al pin que usted quiere conectar al bus.

4. Una vez haya conectado el tap al bus y al pin, de doble click en cada una de las lneas y de acuerdo al orden, de el nombre respectivo, as: a(0),a(1), a(2) a(3). Tal como se muestra en la siguiente figura.

5. Para conectar por ejemplo este bus a(3:0) a la entrada de bloque decodificador BCD a 7 segmentos, realizamos lo siguientes pasos: a) Conectamos un pedazo de lnea al bloque decodificador y Damos click en Add Net Name, cuyo cono se muestra en la figura

b) En la venta de procesos, colocamos el nombre del vector que ser la entrada del decodificador, para nuestro caso, escribimos a(3:0), sealamos la opcin Display de Name . y finalmente damos click sobre la lnea de entrada del decodificador.

14

10. Creando y Editando Restricciones al Diseo


En todos los diseos, suelen especificarse una serie de restricciones fsicas y temporales para poder sintetizar el diseo de manera satisfactoria. En un proyecto con ISE existe una gran variedad de mtodos para aadir restricciones, aunque slo veremos las bsicas en este tutorial. Por ejemplo, una de las placas de desarrollo que usaremos para sintetizar el diseo contiene la FPGA Spartan-3E que seleccionamos como dispositivo de sntesis al principio de diseo. Para informacin ms detallada a cerca de la placa de desarrollo por favor consultar el documento Nexys2_rm.pdf publicado en la pgina Web del curso. La FPGA est conectada fsicamente a una serie de perifricos a travs de unos pines especficos. Estos perifricos son los siguientes:

15 Nuestro diseo consta de 4 entradas y 1 salida, luego sera muy interesante poder modificar los valores de entrada por medio de 4 de los 8 interruptores de los que disponemos y visualizar la salida por medio de uno de los 8 LEDs que trae la placa de desarrollo, con el fin de verificar visualmente que el diseo sintetizado funciona de manera correcta.

Asignacin de Pines en la FPGA


Para asociar pines de la FPGA con entradas y salidas especficas debes: 1. En la ventana Sources seleccionar Implementation. sta pestaas se encuentran en la parte superior izquierda de la pantalla. Hacer doble-click en User Constraints de la ventana de procesos y luego doble-click en Foorplan Area. Pulsar S en la ventana emergente que aparece. Inmediatamente, el subprograma Xilinx Pinout and Area Constraints Editor (PACE) se abrir y podremos especificar los pines que usaremos para nuestro proyecto. 2. Puedes apreciar la lista de Pines de Entrada/Salida que tiene tu diseo en la ventana Design Object List. Introduce asignacin de pin por cada puerto de E/S que tienes en la columna Loc. (G18,H18,H13,J14,L14). En el anexo 1, se encuentra la lista especfica de todos los pines para la FPGA en uso. 3. Pulsa en la pestaa Package View en la parte inferior de la ventana para ver los pines que acabas de aadir (de color azul). Si pasas con el ratn por encima de los pines de color azul, puedes verificar las asignaciones que acabas de realizar.

4. Selecciona File > Save. Selecciona XST Default <> y pulsa OK. 5. Cierra PACE.

16

11. Sntesis del Diseo e Implementacin


Ahora que has creado los esquemticos, verificado el diseo mediante una simulacin funcional y aadido las restricciones pertinentes, ests listo para sintetizar e implementar tu diseo. Implementando el Diseo 1. Selecciona el archivo mux2a1en la ventana de Proyecto. 2. En la ventana Processes, pulsa en el signo + junto a Implement Design. Estos procesos sern ejecutados durante la implementacin de tu diseo. 3. Haz doble-click en el proceso que engloba todo, es decir, en Implement Design. ISE determina el estado actual de tu diseo y ejecuta los procesos necesarios para poder implementar tu diseo teniendo en cuenta las restricciones, la FPGA a usar y otros muchos parmetros. Una vez que todos los procesos han finalizado, puedes comprobar que han aparecido marcas de verificacin en los procesos que aparecen en la ventana Processes.

Verificacin de la Sntesis
Tu diseo se puede observar como un esquemtico en el denominado Visor de Nivel de Transferencia de Registros, o Register Transfer Level (RTL) Viewer, en que se muestra las puertas y elementos a implementar independientemente del dispositivo de Xilinx seleccionado para realizar el diseo. 1. En la ventana Processes, haz doble-click en View RTL Schematic situado en el grupo Synthesize - XST process. Aparecer el esquemtico de jerarqua superior de tu diseo, que engloba todo. 2. Haz doble-click en el esquema para observar niveles jerrquicos inferiores y ver el esquemtico en detalle. Aviso: No puedes editar este archivo. 3. Cierra la ventana.

12. Verificacin del Diseo Implementado


Una vez que la implementacin se ha completado, puedes verificar tu diseo antes de bajarlo al dispositivo FPGA. Ver el Informe de Recursos Empleados Muchos de los procesos que hemos ejecutado para realizar la sntesis generan informacin acerca de tu diseo. As, estn disponibles informes detallados a travs de Design Summary. Pulsa en la pestaa Design Summary en la parte inferior de la ventana.

17

13. Crear los Datos de Configuracin


La ltima fase en el flujo de diseo consiste en generar un archivo de bits (biststream) y configurar nuestro dispositivo. Generar el Bitstream El bistream es un archivo binario que es el equivalente a nuestro diseo en un formato que puede bajarse a nuestra FPGA. 1. Selecciona mux2a1 en la ventana Sources in Project. 2. Ejecuta el proceso Generate Programming File localizado al final de la ventana Processes. El programa Bitgen crea el bistream que es un archivo llamado mux2a1.bit, que es el archivo de configuracin. 3. Selecciona la pestaa Design Summary. 4. Ahora, en la parte final, puedes seleccionar Bitgen Report para ver el informe correspondiente. Ahora ests preparado para configurar tu dispositivo.

18

14. Configurar el Dispositivo


Para configurar nuestra FPGA (una Spartan-3E en este caso) usaremos la aplicacin ExPort del software de aplicacin ADEPT. El cual nos permite programar la FPGA por USB. Esta aplicacin puede ser descargada gratuitamente de la pagina Web (http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&NavSub=69&Prod=ADEPT)y solo puede ser usada para placas de desarrollo de la empresa Digilent. Este es el ltimo paso en el proceso de diseo. En esta seccin se explica de manera simple las instrucciones para configurar una Spartan-3e xc3s500 conectada al PC mediante el puerto USB. Aviso : La placa debe conectarse al PC antes de proceder. Si el dispositivo de tu placa de desarrollo no coincide con el asignado al proyecto, se producirn errores. 1. Para usuarios Windows, se arranca el programa desde el men Inicio seleccionando: Inicio > Programas > Digilent > Adept>ExPort 2. Click en AddFile y buscas en el path donde esta el proyecto el archivo mux2a1.bit

3. Una vez conectada la tarjeta y encendida, click en Initialize Chain

19

Como se puede ver en la figura, la placa de desarrollo de la FPGA nos permite almacenar el archivo de implementacin tanto en la memoria RAM de la FPGA como en una memoria tipo ROM (Flash) que contiene la placa. Para el caso, solo almacenaremos el archivo en la FPGA. 4. Para la FPGA seleccionamos la ruta del archivo mux2a1.bit, decimos si al aviso que sale y damos click en Program Chain. Sin tocar, ni mover la placa de desarrollo, esperamos hasta que la programacin se a completada y obtengamos un aviso de programacin exitosa.

20

ANEXO 1: RECOMENDACIONES GENERALES PARA EL DISEO CON EL SOFTWARE ISE-XILINX


1. Una vez instalado el software en su equipo, y que usted crea un proyecto por primera vez, es necesario dar las configuraciones de la FPGA que ser usada (para el caso, la configuracin dada en el numeral 5 de este tutorial). Para creaciones de proyectos posteriores, esta configuracin aparecer por defecto. 2. Para la creacin del proyecto y de los diferentes archivos, tales como esquemticos, de simulacin vhdl, NO USE nombres que empiecen por nmero o caracteres extraos. Adicionalmente trate de no usar nombres con espacios. 3. Asegrese que la ruta donde esta guardando el proyecto no contiene espacios ni caracteres extraos. 4. Asegrese que la ruta donde esta guardando el proyecto, no sta dentro de otro proyecto creando anteriormente. 5. Tenga en cuenta que las versin 11 del Xilinx no permite realizar simulacin grfica. 6. Tenga en cuenta que un diseo realizado en Xilinx versin 11 no permite ser abierto en en la versin 10.1 7. Si una vez creado el proyecto, en algn momento al crear un archivo esquemtico o VHDL, en la ventana Sources, ste queda ubicado antes de la referencia de la tarjeta xc3s500e-4fg320, se recomienda crear un nuevo proyecto, copiar los archivos .*.sch *.vhd al nuevo proyecto y adicionarlos dando doble-click en Add Existing Sources de la ventana Process 8. En algunas ocasiones, la ventana de diseo grfico no logra actualizar los cambios. Para ver los nuevo cambios, basta con dar F5. 9. El software tiene configurado por defecto 2000ns como tiempo de simulacin. Si desea cambiar ste tiempo, realice el siguiente procedimiento: a) Estando en el ambiente de simulacin, click en Xilinx ISE Simulator y click derecho en Simulate Behavioral para abrir una nueva ventana. b) Click en la properties, y se abre otra ventana c) En la nueva ventana buscar el parmetro Simulator Run Time y cambiar el tiempo de simulacin y OK. d) Luego en la ventana donde aparecen las formas de onda, dar doble-click en End Time y se abre una ventana en la cual puede modificar el tiempo que desee que se realice la simulacin.

21

ANEXO 2: CONFIGURACION GENERAL DE PINES PARA LA FPGA SPARTAN 3E-500 FG320

Elemento Cristal oscilador de 50Mhz Oscilador externo (Socket) Buttons: BTN0, BTN1, BTN2, BTN3 Slide Switches: SW0, SW1, SW2, SW3 Slide Switches:, SW4, SW5, SW6, SW7 LEDs: LD0, LD1, LD2, LD3 LEDs: LD4 LEDs: LD5 LEDs: LD6 LEDs: LD7 Anodos: AN0, AN1, AN2, AN3 Display seg: a, b, c, d, Display seg: e, f, g Display seg: punto

Tipo entrada entrada entrada entrada entrada salida salida salida salida salida salida

Pin B8 U9 B18 D18 E18 - H13 G18 H18 K18 - K17 L14 L13 N17 - R17 J14 J15 K15, K14 E17 (E16*) P15 (P16*) F4 (E4*) R4 (P4*) F17 H17 C18 - F15 L18 - F18 - D17 - D16

salida salida

G14 J17 - H14 C17