Sei sulla pagina 1di 24

Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

28/04/2013 Notas de clase Profesora Lucelly Reyes


1

Introduccin al software ISE de Xilinx



Introduccin
Actualmente cualquier proceso de investigacin dispone de un soporte software
que asiste al cientfico en el desarrollo de sistemas complejos. Los sistemas
electrnicos reconfigurables del tipo FPGA son un buen ejemplo de la complejidad
que se puede alcanzar, esta complejidad no sera abarcable sin la ayuda de un
entorno con herramientas que asistan en el proceso de diseo, simulacin,
sntesis del resultado y configuracin del hardware. Un ejemplo de un entorno de
este tipo es el software de la empresa Xilinx denominado ISE (Integrated Software
Environment).

En esta prctica veremos el proceso de instalacin, se muestra en detalle un
ejemplo sencillo de diseo de un circuito combinacional para entregar las bases de
funcionamiento del programa, se recomienda realizar ejemplos adicionales para
familiarizarse con las herramientas de diseo y anlisis.

Este software constituye un verdadero entorno EDA (Electronic Desing
Automation). La Figura 1 representa el esquema de los componentes ms
importantes del ISE y la secuencia en que se utilizan.
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
2


Figura 1

La interfaz grfica de usuario (GUI: Graphic User Interface) se denomina Proyect
Navigator y facilita el acceso a todos los componentes del proyecto. Los diseos
de usuario se pueden introducir mediante diferentes formatos. Los ms utilizados
son: los esquemticos, los grafos de estados y las descripciones hardware en
VHDL. Una vez compilados los diseos se puede simular su comportamiento a
nivel funcional o a nivel temporal. A nivel funcional no tiene en cuenta los retardos
provocados por el hardware y a nivel temporal simula el diseo teniendo en cuenta
cmo se va a configurar el hardware.

En este curso se utilizara ISE Design Suite 13 software que permitir un mejor
aprovechamiento y optimizacin de costos con una mayor productividad del
diseo. Por primera vez, las herramientas de diseo de ISE entregan "la
tecnologa de sincronizacin de reloj inteligente "que reduce el consumo de
potencia dinmica en hasta un 30 %. Adems, incorporado una serie de mejoras
de infraestructura de software y metodologa que mejora el tiempo de ejecucin,
agilizando la integracin de sistemas, y ampliar la interoperabilidad IP a travs de
su ms reciente generacin de familias de dispositivos y plataformas de diseo
dirigido.





Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
3

Inicio del software ISE (Integrated Software Environment) de Xilinx.

En esta primera prctica se realizar un circuito muy simple, se detallar el
proceso de diseo con la herramienta ISE de Xilinx, usando la versin 13.1 del
ISE.

Veremos adems la diferencia entre los dos tipos de descripcin que se pueden
utilizar en VHDL: el diseo estructural y el diseo por comportamiento.
Iniciemos, para abrir ISE Project Navigator vamos al men Inicio -> Todos los
programas -> Xilinx ISE Design Suite 13.1 -> ISE Design Tools y ejecutamos la
aplicacin Project Navigator.
Al iniciar el programa, carga automticamente el ltimo proyecto con el cual se
trabaj.


Nos puede aparecer una ventana con el Tip of the day que son indicaciones que
hace la herramientas cada vez que la arrancamos. Hundimos en OK, con lo que
se cierra dicha ventana.

Para crear el nuevo proyecto, entramos a File y se crea New Project como la
mostrada en la figura.


En ella pondremos el nombre del proyecto, que lo llamaremos FuncionAND,
indicamos la ruta donde guardaremos el proyecto (Project location), que ser C:/...

Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
4



Para el ltimo recuadro de la ventana, donde pone TopLevel Source Type
seleccionaremos HDL, ya que nuestro diseo lo haremos mediante lenguajes de
descripcin de hardware.

A continuacin aparecer otro cuadro de dilogo en el que se pregunta por el tipo
de dispositivo que se va a usar y por las herramientas que se van a utilizar a lo
largo del flujo de diseo.

En esta curso se implementaran todos los desarrollos en la FPGA Spartan 3E de
Xilinx


A partir de la informacin de los encapsulados de las FPGA tendremos que
rellenar la ventana de la figura.
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
5



Para la seleccin de la herramienta de sntesis no tenemos alternativa, y para el
simulador en esta prctica no es importante y lo dejamos en ISE Simulator
(VHDL/Verilog), aunque si lo tienes instalado, podras poner el Modelsim. En el
lenguaje de descripcin de hardware preferido (Preferred Language) se deja el
VHDL, que es el que usaremos. Al terminar haga click en Next.



Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
6

Ya tenemos el proyecto creado y ahora nos disponemos a crear nuestro diseo.
Para ello creamos una nueva fuente (fichero) para el proyecto hacemos click en
ProjectNew Source o haciendo doble clic en Create New Source, que se
encuentra en la subventana Processes.



Con esta aparecer una nueva ventana que nos pedir el tipo de fuente que
queremos crear. Como estamos trabajando en VHDL, seleccionamos VHDL
Module, y nombramos al fichero compuerta_and. Este paso se muestra en la
figura, a continuacin hacemos click en Next.



Digite en el campo file name el nombre iniciando por una letra (A-Z, a-z) y debe
contener solamente carcteres alfanumericos (A-Z, a-z, 0-9) y underscores (_).
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
7

Para este caso digite compuerta_and..el campo Location contiene la ruta del
proyecto actual por defecto. Verifique que la casilla Add to project este
seleccionada, para adicionar el archivo fuente al proyecto como muestra la figura,
para informacin y ayuda detallada dar click en botn More Info.

Despus hacemos clic en el botn Next y pasaremos a la ventana Define Module,
aqu indicamos las caractersticas de nuestro mdulo, como el nombre de entidad
y de arquitectura (ms adelante veremos qu es esto), y las entradas y salidas con
que contar, hagamos la edicin necesaria para que tengamos algo como esto:



Ahora hacemos clic en el botn Next, se mostrar un resumen del nuevo archivo
fuente que estamos agregando al proyecto:


En la figura se observa el cuadro resumen del nuevo archivo fuente del proyecto
que se est realizando. Ahora damos click en Finish.

Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
8

El archivo fuente contiene el par entidad / arquitectura visualizados en el espacio
de trabajo, y el display de compuerta_and. es como se muestra en la figura.




Vamos a analizar el cdigo que tenemos desde el inicio, la primera seccin que se
aprecia con texto de color verde, es cdigo predefinido que ISE Project Navigator
inserta al inicio de cada mdulo que se agrega a un proyecto, si notamos, todas
las lneas en esta primera seccin inician con un par de guiones : al igual que
en los lenguajes de programacin de software, VHDL permite insertar comentarios
en el cdigo, los cuales se indican mediante esos dos guiones, todo el texto que
siga a estos guiones se toma como un comentario. Es buena idea proporcionar de
esta forma informacin sobre el mdulo que estamos creando, aunque nosotros
vamos a borrar la mayor parte de esa primera seccin de comentarios para dejar
solamente:
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
9


A continuacin en el cdigo, tenemos:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
La instruccin library nos permite indicar una biblioteca externa (o librera, como
se ha hecho comn llamarles), de la que deseamos utilizar sus tipos de datos,
operadores y algunas otras declaraciones, sera equiparable a la instruccin
#include de los lenguajes C y C++. Y tambin, de manera similar a estos
lenguajes, VHDL termina cada instruccin con punto y coma: ;.
Despus tenemos una instruccin use, que nos permite indicar qu paquete
vamos a utilizar de la biblioteca que antes habamos declarado con library. En
este caso, se indica que vamos a hacer uso de la biblioteca IEEE, que es una
biblioteca estndar definida por IEEE, que de esa biblioteca utilizaremos el
paquete STD_LOGIC_1164, y que de dicho paquete utilizaremos todas sus
declaraciones (instruccin ALL).

Podemos encontrar un poco ms de informacin sobre este paquete en el
siguiente enlace: VHDL Online Help Std_Logic_1164 Package.

Aprovecharemos ahora para mencionar que VHDL es un lenguaje que no
distingue minsculas de maysculas, por lo que la declaracin de la biblioteca
IEEE podra hacerse tambin de esta forma:
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
10

LIBRARY ieee
USE ieee.std_logic_1164.all;
A continuacin en el cdigo de nuestro mdulo, tenemos otra seccin de
comentarios que tambin agrega ISE Project Navigator por defecto en nuevos
mdulos:
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
Se trata de paquetes adicionales que podramos utilizar en nuestro mdulo VHDL,
el primer paquete, IEEE.NUMERIC_STD.ALL cuenta con funciones aritmticas
para valores con y sin signo, el otro paquete pertenece a la biblioteca UNISIM de
Xilinx, por ahora no necesitamos ninguno de estos paquetes y, de hecho, no los
usaremos durante este tutorial, as que podemos eliminar toda esa seccin.
Entidad y arquitectura
En VHDL, cada mdulo est compuesto por dos partes: la entidad y la
arquitectura. La entidad es la seccin donde se indican las conexiones (seales)
del mdulo con el resto de componentes, indicamos el nmero de entradas y
salidas, adems del tipo de cada una de ellas. La sintaxis de declaracin de
entidad y de sus conexiones es la siguiente:
entity NOMBRE_ENTIDAD is

port (

NOMBRE_SEAL1 : MODO TIPO;
NOMBRE_SEAL2 : MODO TIPO
);
end NOMBRE_ENTIDAD;
En primer lugar se indica el nombre de la entidad, utilizando la palabra reservada
entity, y despus de la instruccin is se inicia la descripcin de la entidad, en este
caso de las seales (o puertos) mediante las que se comunicar con el exterior;
para cada seal se indica su nombre, el modo que puede ser de entrada, salida o
ambos y el tipo. Notemos que las declaraciones de puertos finalizan con punto y
coma, excepto la ltima antes del parntesis que culmina la instruccin port.
As, continuando con nuestro mdulo, donde ISE Project Navigator ha insertado
este cdigo:
entity compuerta_and is

Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
11

Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
Z : out STD_LOGIC);

end compuerta_and;
Se declara una entidad cuyo nombre es compuerta_and, tiene tres puertos, todos
de tipo std_logic, los dos primeros denominados A y B, son entradas (in),
mientras que el tercero, denominado Z, es una salida, se puede representar en la
siguiente figura:


De cierta forma, se considera la declaracin de entidad como una caja negra,
para la cual se conocen sus entradas y salidas, pero no su funcionamiento interno,
que es lo que se describe en la arquitectura.

La arquitectura es la seccin de un mdulo VHDL en la que se describe el
funcionamiento de la entidad, y puede hacerse de dos maneras diferentes:
describiendo su estructura interna mediante interconexiones entre compuertas y
componentes que constituyen al mdulo, lo que se denomina una descripcin
estructural, o con una descripcin de lo que hace el mdulo, ya sea mediante
funciones booleanas o mediante una descripcin algortmica, lo que se conoce
como una descripcin de comportamiento. La sintaxis para declarar una
arquitectura es:
architecture NOMBRE_ARQUITECTURA of NOMBRE_ENTIDAD is

-- Aqu se declaran elementos auxiliares para usar en la descripcin

begin

-- Aqu se realiza la descripcin de la arquitectura,
-- mediante la utilizacin de sentencias secuenciales,
-- combinacionales o subprogramas.

end NOMBRE_ARQUITECTURA;
Utilizamos la instruccin architecture para iniciar la declaracin de la arquitectura,
despus indicamos su nombre y el nombre de la entidad a la cual corresponde la
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
12

descripcin que se realizar, continuamos con la instruccin begin para indicar el
inicio del cdigo que describe el funcionamiento de la arquitectura, y finalizamos
con la instruccin end y el nombre de la arquitectura. Entre las instrucciones is y
begin, es posible declarar seales, componentes o elementos auxiliares para la
descripcin de la arquitectura, algunos de estos elementos los veremos ms
adelante en este curso.

Por el momento, regresemos al mdulo que hemos creado en ISE Project
Navigator, donde tenemos la declaracin de la arquitectura comportamiento
asociada a la entidad compuerta_and:
architecture comportamiento of compuerta_and is
begin

end comportamiento;
Vamos a agregar una lnea de cdigo despus de la instruccin begin, as:
architecture comportamiento of compuerta_and is

begin

Z <= A and B;

end comportamiento;
Con esto, estamos asignando el resultado de la operacin and entre las seales
de entrada a y b a la seal de salida s. Como vemos, la pareja de caracteres <="
son el operador de asignacin de seales en VHDL, tambin, estamos haciendo
uso del operador and, que realiza la operacin lgica AND entre sus dos
operandos. Adems del operador and, en VHDL se tienen definidos los siguientes
operadores lgicos: or, nand, nor, xor y xnor. Finalmente, culminamos la
instruccin con un punto y coma.

Una vez que hemos adicionado este cdigo a nuestro mdulo, procedemos a
guardar los cambios realizados usando el comando Save dentro del men File o
pulsando en el botn con icono de un disco flexible en la barra de herramientas.
Podemos hacer lo anterior usando las plantillas de lenguaje VHDL del programa.

Usando plantillas de lenguaje (VHDL)

Ubique el cursor justo debajo donde comienza la declaracin dentro de la
arquitectura de la compuertand4. en el espacio de trabajo como indica la figura.
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
13




Abra las plantillas de lenguaje seleccionando Edit Language Templates como
muestra la Figura.



Usando el smbolo +, busque el siguiente cdigo de ejemplo :

VHDLSynthesis ConstructsCoding Examples Basic Gates AND2-
Input AND Gate como indica la Figura.

Ubique el
cursor aqu
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
14



Con 2-Input AND Gate, seleccione Edit Use in File para copiar plantilla como
muestra la Figura.



La plantilla copiada dentro del archivo fuente de compuerta_and. se indica en la
figura

Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
15



Cierre las plantillas de lenguaje seleccionando la pestana Languaje Templates y
dar click en icono de cierre arriba a la derecha, ver Figura .



Edicin final del archivo fuente VHDL

Edite el archivo fuente para la compuerta AND diseada reemplazando el nombre
del puerto entre corchetes con uno real como sigue


reemplace <output> con Z

<input1> con A
<input2> con B

Salve el archivo seleccionando File Save.
Sintaxis de
compuerta and
entradas copiada
desde la plantilla
de VHDL
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
16


Usted tiene creado ahora el archivo fuente VHDL luego procedemos a verificar la
sintaxis del nuevo modulo.

Chequeando la sintaxis del modulo de la compuertand4

Verifique que Synthesis/Implementation es seleccionado en la lista de la ventana
PROCESS como se indica en la figura


Espere hasta que termine la implementacin. Haga doble cilik en xc3s500e-4fg320

Click en + cerca al proceso Synthesize-XST para expandir el grupo de procesos.



Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
17

Ya hemos revisado el cdigo de nuestro mdulo, nos resta comprobar que
funcione correctamente, para ello podemos realizar una simulacin antes de
proceder a implementarlo en un dispositivo reconfigurable.
Simulacin
Creamos nuestro primer mdulo VHDL, una compuerta AND de dos entradas. Es
un mdulo muy simple y sencillo, pero crearlo nos permite familiarizarnos de
manera ms fcil con el entorno de trabajo.
Una vez que hemos verificado la sintaxis del cdigo de nuestro mdulo, una forma
de verificar que funcione y se comporte como deseamos es realizar una
simulacin. Dependiendo del entorno de trabajo sern las herramientas de
simulacin que tendremos a nuestra disposicin, nosotros usaremos ISim, un
simulador que viene integrado en ISE Design Suite y que sirve perfectamente
para nuestros propsitos.
Veamos cmo realizar una simulacin de nuestro componente compuerta_and.
Primero, en Project Navigator, en la seccin Design, en la opcin View,
debemos seleccionar Simulation:



A continuacin, dentro de la ventana Hierarchy, seleccionamos el componente
que deseamos simular, al hacerlo cambiarn las opciones disponibles en la
ventana Processes, en este caso se muestra ISim Simulator, hacemos clic en el
signo + a la izquierda de ISim Simulator y nos mostrar dos procesos:
Behavioral Check Syntax y Simulate Behavioral Model
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
18



Este ltimo proceso es el que nos permitir realizar la simulacin, hacemos doble
clic y esperamos a que se abra ISim:



ISim muestra por defecto cuatro ventanas o secciones, una en la parte inferior y
tres en el medio: Instances and Processes, que nos muestra las entidades,
bibliotecas y procesos existentes en nuestro mdulo; Objects, que despliega una
lista de los puertos que forman parte de nuestro mdulo, indicando con pequeo
icono con la letra I aquellos que son entradas y con la letra O los que son salidas;
y la ventana de simulacin, donde tenemos desplegados nuevamente los puertos
del mdulo con lneas de tiempo que nos permitirn visualizar el comportamiento
de cada uno de dichos puertos para cada instante de la simulacin.
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
19

Vamos a recordar ahora la tabla de verdad de una compuerta AND de dos
entradas:
A 0 0 1 1
B 0 1 0 1
Z 0 0 0 1


Tenemos cuatro combinaciones posibles de valores para las entradas A y B, para
comprobar el funcionamiento de nuestro mdulo es conveniente simular estos
cuatro casos, para ello, asignaremos valores a las entradas de manera que
tengamos las cuatro combinaciones posibles y podamos evaluar el valor que toma
la salida para cada una de ellas.

Empezaremos por la primera combinacin, cuando ambas entradas valen 0, para
indicar que una entrada tendr el valor 0 en el simulador, hacemos clic con el
botn derecho del ratn sobre dicha entrada en la ventana de simulacin, del
men que se despliega seleccionamos la opcin Force Constant


Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
20

Aparecer la ventana Force Selected Signal, en la opcin Force to Value:
escribiremos un 0:



Hacemos clic en el botn OK. Repetiremos estos pasos para la seal de entrada
b: hacemos clic con el botn derecho sobre el nombre de la entrada en la ventana
de simulacin, seleccionamos la opcin Force Constant, y establecemos a 0 la
opcin Force to Value:, hacemos clic en el botn OK.

No se nota ningn cambio en la ventana de simulacin una vez que hemos
indicado los valores de 0 para las dos seales, estos se notarn hasta que
ejecutemos la simulacin. Para ello use la barra de herramientas ISim. Haga clic
en el botn que tiene como icono una punta de flecha y un reloj de arena, se
ejecuta la simulacin por un tiempo determinado, el que se indica a la derecha del
botn, en este caso, 1 us, la ventana de simulacin ahora mostrar:


Observemos que en los valores en la columna Value han cambiado de U a 0, la U
indica valor desconocido, que era el caso antes de iniciar la simulacin, ahora que
hemos simulado por un tiempo de 1us, las entradas se encuentran en valores 0,
que fue como nosotros lo forzamos, adems la seal de salida z tambin tiene el
valor 0, esta no la hemos forzado, sino que toma el valor de acuerdo a lo que
hemos especifidado en nuestro mdulo: la operacin AND entre las entradas a y
b, que en este caso es 0.
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
21


Ahora, vamos a cambiar el valor de la entrada a a 1, para evaluar el segundo caso
de la tabla de verdad de la operacin AND de dos entradas, hacemos clic con el
botn derecho sobre el nombre de la seal y seleccionamos el comando Force
Constant, y ahora pondremos un 1 en la opcin Force to value:



Haga clic en el botn para ejecutar la simulacin por cierto tiempo y ahora tendra
en la ventana de simulacin:



La columna Value ha cambiado a 1 para el caso de la seal a, adems, en la
ventana de tiempo la lnea verde a la derecha de la misma seal se encuentra
ms arriba y ahora con una zona sombreada debajo, esto indica que durante ese
tiempo la seal se encuentra en un estado alto (1). La seal de salida z se
mantiene en 0, que es correcto pues solamente cambiar de estado cuando
ambas entradas sean 1.

Finalmente simulemos el caso cuando ambas entradas valen 1:
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
22




Finalmente, la salida z ha cambiado a 1, lo cual corresponde con la tabla de
verdad de la operacin AND, as hemos comprobado que nuestro componente
funciona correctamente.

Si lo han notado, en cada paso, en la ventana de simulacin apareci a la derecha
un valor con letras amarillas que cambi de 1,000,000 ps a 2,000,000 ps en el
primer tiempo de simulacin, y as hasta llegar a 5,000,000 ps. Esto nos indica que
entre cada paso avanzamos 1 us, que es el tiempo que configuramos en la barra
de herramientas, podemos visualizar la simulacin completa si hacemos clic en el
botn Zoom to Full View:





Podemos ver los cuatro pasos de simulacin que ejecutamos, y apreciamos por
completo que corresponden con la tabla de verdad de nuestro componente.

Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
23

Guarde el archivo y regrese a ISE project Navigator y --> Implementation en la
ventana Design.



Haga doble clic en el elemento de sintetizar-XST en los procesos de caja de
herramientas.


Esto es equivalente a la compilacin de un programa. Sintetizador genera un
circuito de nuestras construcciones HDL. Si usted ve un error en la etapa de
sntesis puede corregir el proyecto.

Haga doble clic en el elemento View RTL Schematic y consulte el diagrama de
bloques del circuito
Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia
28/04/2013 Notas de clase Profesora Lucelly Reyes
24





Haga doble clic en el bloque (caja negra) para ampliar y ver que tenemos un
circuito como se esperaba.

Potrebbero piacerti anche