Está en la página 1de 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

Tipo

Pin

Cristal oscilador de 50Mhz

entrada

B8

Oscilador externo (Socket)

entrada

U9

Buttons: BTN0, BTN1, BTN2, BTN3

entrada

B18 D18 E18 - H13

Slide Switches: SW0, SW1, SW2, SW3

entrada

G18 H18 K18 - K17

Slide Switches:, SW4, SW5, SW6, SW7

entrada

L14 L13 N17 - R17

LEDs: LD0, LD1, LD2, LD3

salida

J14 J15 K15, K14

LEDs: LD4

salida

E17 (E16*)

LEDs: LD5

salida

P15 (P16*)

LEDs: LD6

salida

F4 (E4*)

LEDs: LD7

salida

R4 (P4*)

Anodos: AN0, AN1, AN2, AN3

salida

F17 H17 C18 - F15

Display seg: a, b, c, d,

L18 - F18 - D17 - D16

Display seg: e, f, g

salida

G14 J17 - H14

Display seg: punto

salida

C17

También podría gustarte