Manual Xilinx
Manual Xilinx
Facultad de Ingeniera
Laboratorio de diseo digital I
PRACTICA # 0
El objetivo de la prctica es conocer el software Xilinx ISE 9.1 mediante la captura de
esquemticos.
El problema a resolver:
X(2) X(1) X(0) Z(2) Z(1) Z(0)
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
Las ecuaciones para las tres variables de salida son:
Z2 = !X0X2 + X0X1
Z1 = !X2X1 + !X0X1 + X0!X1X2
Z0 = !X2X1 + X0X1 + !X0!X1X2
Ahora comencemos con el Xilinx ISE.
Ejecutar el programa
INICIO > PROGRAMAS > XILINX ISE 9.1I > PROJECT NAVIGATOR
El prximo paso es crear un proyecto: FILE > NEW PROYECT
En este cuadro se selecciona el nombre del proyecto (PROJECT NAME), use nombres sin
espacios ni caracteres; para la prctica utilicemos tut1. Tambin se puede seleccionar la
ubicacin del proyecto y el tipo del mdulo de ms alto nivel (TOP-LEVEL MODULE
TYPE), en nuestro caso, esquemticos (SCHEMATIC). Presione siguiente.
El siguiente paso es seleccionar el dispositivo:
Una vez creado el proyecto, hay que crear un nuevo diseo de esquemtico. Para ello hacer
clic derecho sobre el rea SOURCES y clic en NEW SOURCE
Una vez seleccionado el tipo de archivo y el nombre, pulsar NEXT. En el siguiente cuadro de
dilogo, simplemente resume las propiedades del esquemtico que acabamos de crear.
Una vez hecho esto se abrir el editor de esquemticos. Si no aparece esta pantalla, de clic
en SOURCES en la parte derecha de la pantalla y luego doble clic en el nombre del
esquematico
En la parte izquierda superior hay una ventana con cuatro pestaas, en la primera podemos
ver la jerarqua de los mdulos (SOURCES) que en un proyecto simple, aparecen los
archivos de trabajo) y en la cuarta se encuentran los smbolos (SYMBOLS) donde se
encuentran los componentes que se pueden aadir a un esquemtico.
Recordemos que la ecuacin para Z2 es !X0X2 + X0X1, por lo tanto para comenzar aadimos
una AND de dos entradas (and2), una AND de dos entradas con una entrada negada
(and2b1) y una OR de dos entradas (or2); estas se encuentran bajo la categora LOGIC. Si se
desea cambiar la rotacin puede usar el cuadro ORIENTATION.
Despus de agregar todos los componentes el editor se debe ver como la siguiente figura:
Luego conectemos los componentes con la herramienta agregar conexin (ADD WIRE)
,
ubicada en la parte superior izquierda de la pantalla. Al terminar el circuito debe quedar
como en la figura:
Ahora es necesario definir las entradas y salidas del circuito; por lo tanto es necesario
agregar marcadores de Entrada/Salida (ADD I/O MARKER)
. Seleccione la herramienta
y de clic sobre los puntos que son entradas o salidas.
Cuando se selecciona una herramienta, en la parte inferior izquierda, aparecen las opciones
para esta, para este caso aparecen opciones sobre la direccin del marcador (Entrada,
salida, Entrada/Salida, etc.). Antes de dar clic sobre cada punto de Entrada/Salida seleccione
la direccin correcta. Al finalizar el circuito se debe ver como la figura:
Ahora editemos cada nodo para que corresponda con el nombre de cada entrada o salida.
Para esto doble clic sobre el marcador
En NAME escribimos el nombre correspondiente a cada marcador (X0, X1, X2, o Z2), Al
finalizar el circuito se debe ver como en la figura:
Una vez terminado el diseo del circuito puede hacerse una comprobacin simple 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 clic en Tools y dentro de
este men en Check Schematics. Aparecer una ventana que nos informar si hay algn
Error o Warning.
Creacin de un smbolo
Con el diseo realizado se podr hacer un nuevo componente, consistente en un caja
negra, un bloque con el mismo nmero de entradas y salidas del circuito original diseado
y con su funcionalidad. Este nuevo smbolo creado pasa a formar parte de la librera de
Esquemtico para Z1
Esquemtico para Z0
Creemos un nuevo esquemtico para conectar los tres bloques diseados, recuerden clic
derecho sobre SOURCES y luego NEW SOURCE.
Los simbolos para las tres salidas aparecen en CATEGORIES con la ruta del proyecto
Antes de continuar, vamos a crear un bus para la entrada y otro bus para la salida. Un bus
no es ms que una agrupacin lgica de lneas que cumplen una misma funcin. En este
caso podemos decir que existe un bus de entrada que llamaremos X y un bus de salida que
llamaremos Z. Para esto, nombramos las lneas (dando doble clic sobre ellas) ya no como X2,
X1 o X0, sino X(2), X(1) y X(0). Hacemos lo mismo con las salidas: Z(2), Z(1) y Z(0).
Luego, en cualquier parte del esquemtico agregamos dos lneas y las llamamos X(2:0) y
Z(2:0) respectivamente. Finalmente le ponemos el marcador correspondiente (entrada para
X y salida para Z). El esquemtico final debe verse como en la figura
Simulacin
Para simular el circuito diseado, damos clic en SOURCES, y cambiamos la barra SOURCES
FOR de SYNTHESIS/IMPMENTATION a BEHAVIORAL SIMULATION
Luego clic derecho sobre el rea de SOURCES, Seleccionamos NEW SOURCE, pero en este
caso al crear la nueva fuente seleccionamos TEST BENCH WAVEFORM y le damos un
nombre al archivo de simulacin, por ejemplo tb_tut1Fin:
Luego clic en NEXT, nos pregunta cual modulo dentro del proyecto deseamos simular,
seleccionamos tut1Fin que contiene los tres bloques ensamblados presionamos NEXT
siguiente dos veces y luego finalizar.
Al hacer esto aparece una ventana para iniciar los parmetros de simulacin. Nuestro
circuito es combinacional (la diferencia entre combinacional y secuencial se ve dentro de los
temas del curso). Por lo tanto seleccionamos COMBINATORIAL (OR INTERNAL
CLOCK), el resto de opciones pueden dejarse por defecto.
Damos clic en PATTERN WIZARD. Para generar todas las posibles combinaciones de las
entradas podemos realizar un conteo hacia arriba de 1 en 1 de 0 a 7. Las opciones para que
el PATTERN WIZARD cree esto, son las que se ven en la figura.
Para la implementacin necesitamos que las entradas X2, X1 y X0 sean suiches, mientras
que las salidas Z2, Z1 y Z0 sean leds. Por lo tanto cada pin de la FPGA debe ser asignado a un
siguiendo las instrucciones entregadas por el fabricante de la tarjeta de desarrollo (Digilent
inc)
Para asignar los pines debemos cambiar la barra SOURCES FOR nuevamente a
SYNTHESIS IMPLEMENTATION seleccionamos el esquemtico en SOURCES y. En la
parte inferior en PROCESS aparece la opcin USER CONSTRAINTS y dentro de esta
ASSIGN PACKAGE PINES.
Al dar doble clic el ISE pregunta si desea crear un nuevo archivo de restricciones (UCF) a lo
que respondemos si. Al hacer esto se abre el PACE. Este es un programa que permite crear
restricciones de rea, tiempo, etc para la FPGA. En nuestro caso solo nos interesa la
asignacin de pines. Llenamos la tabla con los valores que seleccionamos anteriormente
pero antecediendo la letra p. Al terminar el PACE se debe ver como en la figura siguiente:
Guardamos (si aparece el cuadro de dialogo Bus Delimeter seleccionamos XST OPTIONAL
{}) y cerramos el PACE.
El ltimo paso es programar la FPGA, para esto conecte el cable JTAG al puerto USB y
finalmente el adaptador.
Seleccione el esquemtico en SOURCES y de doble clic en GENERATE PROGRAMMING
FILE. Xilinx ISE comienza todo el proceso de Sntesis del circuito e Implementacin. Deben
aparecer marcas verdes sobre los tres procesos (SYNTHESIZE, IMPLEMENT DESIGN
y GENERATE PROGRAM FILE), en caso de error observe la consola (parte inferior) e
intente corregir el error.
Al hacer esto se nos advierte sobre un problema de configuracin del reloj. Podemos
ignorarlo. Luego presionamos clic derecho sobre el grfico de la FPGA y clic en PROGRAM.
Finalmente OK para programar la FPGA
Verifique el funcionamiento del circuito con los suiches y los leds asignados.