Está en la página 1de 32

INSTITUTO DE ELECTRNICA Y

COMPUTACIN
SISTEMAS DIGITALES
Tutorial para el diseo y simulacin de un circuito digital con VHDL ,
sntesis e implementacin en un FPGA

Alumno : ___________________________________________
Grupo : _________________

Prof. M. C. Felipe Santiago Espinosa

Octubre de 2004

Sistemas Digitales

UTM/2005-1

Tutorial para el diseo y simulacin de un circuito digital con VHDL ,


sntesis e implementacin en un FPGA
1. Introduccin
En este documento se presentan de manera detallada los pasos a seguir desde el
planteamiento de un circuito digital hasta su puesta en marcha y verificacin en una
tarjeta de desarrollo Digilab 2SB-IO4, el ejemplo que se desarrolla es bastante simple
por que el objetivo del tutorial es ilustrar el proceso y no resolver un problema
complejo.
2. Planteamiento del problema
Se desea disear e implementar un comparador de 4 bits: Un circuito que como entradas
reciba dos nmeros A y B de 4 bits y como salidas indique si A > B, A < B o A = B,
esto se muestra en la figura siguiente:

4 Bits

4 Bits

A
B

A>B
A=B
A<B

3. Diseo con VHDL


Para el diseo y simulacin se utilizar la herramienta Active-HDL versin 6.2,
desarrollada por Aldec, cuyo Icono de acceso directo se muestra a continuacin:

Este programa organiza los diseos en espacios de trabajo (workspace) si es la primera


vez que se ejecuta, deber crearse un nuevo espacio de trabajo, en caso contrario puede
usarse un espacio de trabajo existente.
En la figura siguiente se observa como aunque existan algunos espacios de trabajo,
siempre es posible iniciar con uno nuevo.

Sistemas Digitales

UTM/2005-1

Un espacio de trabajo puede contener diversos diseos independientes. Si es la primera


vez que trabaja con esta herramienta, es conveniente iniciar con un nuevo espacio de
trabajo propio. Al cual deber asignrsele un nombre, en este caso se le puso tutorial:

Si se abre un espacio de trabajo existente, automticamente ser abierto el ltimo diseo


elaborado. Para los espacios de trabajo nuevos, se presentar el asistente para iniciar con
nuevos diseos, el cual inicia con la figura siguiente:

Sistemas Digitales

UTM/2005-1

La primera opcin se usa cuando ya se cuenta con mdulos que se agregarn al diseo.
La segunda es para importar un diseo completo.
La ltima opcin es necesaria para nuevos diseos, para este caso es la opcin que debe
seleccionarse y despus pasar al paso siguiente.
Posteriormente se deben definir algunas caractersticas del diseo de acuerdo con las
herramientas que se cuenten para sntesis y al tipo de FPGA sobre el cual se realizar la
descarga, de acuerdo con las herramientas con las que se cuenta en la UTM, las
opciones a elegir se muestran en la figura siguiente:

Finalmente deber escribirse el nombre del diseo, para este caso fue comparador:

A continuacin se puede disponer del ambiente de trabajo completo de la herramienta


que tiene un aspecto como el que se muestra en la figura siguiente:

Sistemas Digitales

UTM/2005-1

A la izquierda se observa un navegador en el que se puede seleccionar una de las 3


opciones siguientes (con sus cejas inferiores):
Archivos (File) Se muestra una estructura jerrquica, un espacio de trabajo puede
contener varios diseos y un diseo a la vez puede contener varios mdulos
(Archivos con cdigo VHDL).
Estructura (Structure) Tiene sentido una vez que los mdulos han sido
compilados, muestra la organizacin del diseo, as como las seales internas,
externas y variables de cada uno de sus mdulos, esta opcin es til para
simulacin.
Recursos (Recursos) Muestra la organizacin en directorios de todos los
elementos que se agreguen al diseo activo.
En la parte inferior se tiene una consola en la que aparecern mensajes de acuerdo a las
actividades realizadas por el usuario. Es solo con carcter informativo, no es posible
introducir informacin a travs de esta consola.
A la derecha est el rea de trabajo, aqu se pueden mostrar los elementos que integren
al diseo. Archivos con cdigo VHDL, ventanas de simulacin, diagramas de bloques,
etc. Basta dar un doble click dentro del navegador para observar el contenido de un
archivo y poder modificarlo.
Tambin se muestra al flujo de diseo (design flow) con el que es posible insertar
mdulos al diseo, preparar su simulacin, realizar su sntesis, etc.
En la figura siguiente se observa el flujo de diseo, en la parte superior se tienen tres
botones para agregar nuevos mdulos al diseo, stos pueden ser: Mdulos con cdigo
HDL, diagramas a Bloques (para mdulos con mayor jerarqua) y diagramas de estado.

Sistemas Digitales

UTM/2005-1

El comparador ser descrito con cdigo VHDL, de manera que se procede con un
click en el botn HDE. La herramienta permite seleccionar entre dos tipos diferentes
de HDLs:

Se selecciona VHDL y se avanza con un click en OK.


Nuevamente un asistente permite iniciar con el nuevo mdulo, se deja activa la opcin
de que el cdigo generado se integre al proyecto y se avanza.

Sistemas Digitales

UTM/2005-1

A continuacin se debe escribir el nombre del archivo a crear y de manera opcional el


nombre de la entidad y de la arquitectura, si estos se omiten, todos los campos tomarn
el mismo nombre, que se decidi fuera comp4b.

Luego deben insertarse una a una las seales que formarn parte de la entidad (interfaz),
la insercin de una seal comienza con un click en el botn new, luego se le pone
un nombre, si es un vector su tamao se determina con los ndices y debe definirse su
modo (entrada o salida).

El proceso debe repetirse con cada una de las seales, de acuerdo a las especificaciones
del diseo.

Sistemas Digitales

UTM/2005-1

Al concluir con la insercin de seales se presiona el botn finalizar, con lo que se


crear una plantilla del mdulo en un archivo que es agregado al diseo (se observa en
el navegador) y ste es automticamente abierto en el rea de trabajo.

Los comentarios de la plantilla pueden completarse para una adecuada documentacin.


En este momento ya se tiene descrita la entidad (la interfaz del mdulo) y falta por
describir su arquitectura para determinar su comportamiento.
Nota: Si se quiere modificar la entidad, para agregar una nueva seal, eliminar una
existente o modificar algn parmetro, debe hacerse manualmente, respetando la
sintaxis de VHDL, no es posible regresar al asistente anterior.
El mdulo a desarrollar es un comparador de 4 bits, de manera que su comportamiento
puede determinarse por el proceso siguiente:
process( A, B )
begin
mayor <= 0;
menor <= 0;
igual <= 0;
if A > B then
mayor <= 1;
elsif A < B then
menor <= 1;
else
igual <= 1;
end if;
end process;
Existen otras alternativas, sin embargo la descripcin funcional es mas entendible por
que refleja directamente la solucin del problema.
Nota: Despus de la palabra process se coloca la lista de sensitividad, son seales que
activarn la ejecucin del proceso, cuando ocurra un cambio en cualquiera de ellas.

Sistemas Digitales

UTM/2005-1

Este cdigo debe insertarse en la arquitectura, sustituyendo al comentario:


-- enter your statements here --

Una vez insertado el cdigo, se verifica su sintaxis realizando su compilacin. Para ello
se selecciona al archivo
y se presiona al botn compilar
.
Otra alternativa consiste en obtener un men contextual dando un click derecho en el
archivo y seleccionar la opcin de compilacin (compile).
Si no hay errores de sintaxis, el archivo tendr otro marcador indicando su estado
y la consola reflejar el xito de la compilacin.
En caso de que hubiera errores, el archivo en el navegador quedar marcado de manera
diferente
y los errores se mostrarn en la consola.

Los errores deben resolverse considerando la sintaxis del lenguaje.


4. Simulacin
Una vez realizada la compilacin de un mdulo es posible simularlo. La simulacin se
inicializa seleccionando la opcin Initialize Simulation en el men Simulation

En este caso se trata de un solo mdulo y no existen jerarquas, cuando se trata de un


diseo con mas mdulos, a travs de un cuadro de dilogo debe determinarse cual es el
de mayor jerarqua.

Sistemas Digitales

UTM/2005-1

Al iniciar la simulacin, el navegador indica cual es el mdulo de mayor jerarqua y


conmuta automticamente las cejas inferiores para mostrar la estructura de los mdulos.
Si se expande alguno de los mdulos, podrn verse las seales que contiene:

Para simular se requiere agregar una nueva forma de onda (new Waveform) dando un
click al botn

, aparecer una ventana de seales vaca, similar a la siguiente:

Las seales se agregan activando el men Waveform y seleccionando la opcin Add


Signals, con lo que se obtiene el cuadro de dialogo:

Sistemas Digitales

UTM/2005-1

Una alternativa ms simple consiste en seleccionar las seales del navegador y


arrastrarlas a la ventana de seales, en ambos casos el resultado ser el siguiente:

Adems del nombre de las seales, se tienen una columna con su valor y otra indicando
el tipo de estmulo. A la derecha hay una zona donde se mostrar el comportamiento
temporal de cada seal.
No hay que olvidar que se est simulando hardware y para probar un elemento de
hardware es necesario ingresar algunas seales a las entradas y observar las salidas, con
ello se evala si la funcionalidad del mdulo es o no correcta.
Las seales de entrada son proporcionadas a travs de estmulos, existen estmulos de
diferentes tipos, adecuados para diferentes tipos de seales. Los estmulos se obtienen al
dar un click derecho a una seal de entrada, con ello aparece un men contextual en el
cual debe seleccionarse la opcin estmulos ( Stimulators ).

Con esto se obtiene un cuadro de dialogo en el cual de izquierda a derecha muestra: La


seal bajo consideracin, la lista de estmulos y las caractersticas propias de cada tipo
de estmulos (ests se obtienen al seleccionar un estmulo particular y en algunos casos
es necesario introducir algunos parmetros).
Para el comparador de 4 bits, puesto que A y B son vectores, para ambas seales se
elegirn estmulos tipo contador, slo que para observar la activacin de las diferentes
salidas A ser ascendente y B descendente.

10

Sistemas Digitales

UTM/2005-1

Una vez que se selecciona el tipo de estmulo y se determinan sus parmetros, debe
presionarse el botn Aplicar (Apply) de lo contrario los estmulos no sern
considerados.
No es necesario cerrar la ventana de estmulos y abrirla para una nueva seal, es
suficiente dar un click a la seal y sta se incorporar a la ventana de estmulos.

Una vez definidos todos los estmulos debe cerrarse la ventana de estmulos (Close).
Con esto se han establecido todas las condiciones de simulacin, la cual se realiza con
los botones
, el primero de ellos (Run until) permite simular hasta
que se alcance un tiempo dado, ste se introduce en un cuadro de dilogo que aparece
despus de que el botn se presiona.

El segundo botn (Run for) realiza la simulacin por el tiempo indicado en el cuadro de
edicin contiguo, este tiempo puede modificarse para proporcionar diferentes intervalos
de simulacin.

11

Sistemas Digitales

UTM/2005-1

El ltimo botn (Restart) ignora los eventos transcurridos para iniciar nuevamente con
la simulacin.
Las seales se generan conforme se avanza en la simulacin, las entradas estn dadas
por los estimuladores y las salidas son una funcin de las entradas.

Para una mejor visualizacin de las seales, pueden usarse los botones:
cuya respectiva funcin es: Zoom In, Zoom Out, Zoom to Fit y Zoom Range.

Para propsitos de documentacin, es posible agregar comentarios con explicaciones,


esto se consigue al dar un click derecho y elegir la opcin Insertar Comentario (Insert
Comment) del men contextual.

Una vez realizada la simulacin, puede garantizarse que el mdulo funciona y se


procede a la Sntesis e Implementacin. Pero antes, habr que detener la simulacin
seleccionando la opcin End Simulation en el men Simulation

12

Sistemas Digitales

UTM/2005-1

5. Sntesis
La versin 6.2 de Active-HDL proporciona un ambiente desde el cual es posible realizar
la sntesis e implementacin de un diseo (esto se observa en el flujo de diseo), para
ello invoca a las herramientas de Xilinx.
Sin embargo, lo mas adecuado es manipular directamente las herramientas de Xilinx
desde un Ambiente Integrado de Software ( Integrated Software Environment ISE )
el cual es una suite de herramientas manipuladas desde el Navegador de Proyectos
(Project Navigator).
Por tanto, en este momento es posible cerrar al Active-HDL respaldando la ventana de
seales solo para documentacin y abrir el Project Navigator, cuyo icono de acceso
directo es:

Al ejecutar este programa se mostrar el Tip del Da y luego se abrir el ltimo proyecto
en el que se haya trabajado. Es necesario iniciar con un nuevo proyecto seleccionando la
opcin New Project en el men File, con esto se obtendr el cuadro de dilogo similar
al siguiente:

Primero debe seleccionarse la ubicacin del proyecto en disco y luego asignrsele un


nombre. Esto para que el proyecto quede ubicado en una carpeta con el mismo nombre.
Para el tipo de mdulo superior se mantiene HDL por que se trabajar con el archivo
previamente desarrollado para el comparador.
Nota: El nombre del proyecto debe ser diferente al de los mdulos HDL para evitar
conflictos de nombres al momento de hacer la sntesis e implementacin.

13

Sistemas Digitales

UTM/2005-1

Una vez que se introduzcan estos datos se procede con el paso siguiente. En el cual se
determinarn algunas propiedades de acuerdo al FPGA en el que se vaya a realizar la
descarga.

Los valores seleccionados corresponden al FPGA que est integrado en las tarjetas de
desarrollo existentes en la UTM. El paso siguiente es para empezar con nuevos archivos
con cdigo fuente.

14

Sistemas Digitales

UTM/2005-1

Se avanza al paso siguiente por que se trabajar con un archivo previamente elaborado.

Presionando el botn Add Source se explora para encontrar el archivo que contiene al
cdigo VHDL con la descripcin del Comparador (Comp4b.vhd), el cual debe estar en
la ruta C:\My_Designs\tutorial\comparados\src, se selecciona y se indica que es un
mdulo VHDL.

Si el proyecto tuviera mas mdulos, todos se insertaran de manera similar. Antes de


avanzar al paso siguiente es necesario asegurarse que la opcin Copy to Project est
seleccionada.

15

Sistemas Digitales

UTM/2005-1

El paso siguiente muestra un resumen con la informacin del proyecto, si todo est bien
se finaliza con la creacin del proyecto (Botn Finalizar).

En el ambiente del Project Navigator se distinguen cuatro reas, en la parte superior


izquierda se muestran los diferentes archivos fuente que integran al proyecto, a manera
de un rbol. Si el proyecto estuviera formado por varios mdulos, en este rbol se
ubicaran de acuerdo a sus niveles jerrquicos.

Por debajo de esta zona est una lista de procesos aplicable al archivo seleccionado, de
acuerdo con su tipo, a los archivos se les pueden aplicar diferentes procesos.

16

Sistemas Digitales

UTM/2005-1

A la derecha est un rea en donde sern abiertos los diferentes archivos fuente o
reportes que se generen. Por ejemplo, para abrir el archivo Comp4b.vhd basta con darle
un doble click.
En la parte inferior se encuentra la consola de mensajes indicando las diferentes
actividades que se estn realizando.
Para la Sntesis del proyecto basta con seleccionar el archivo Comp4b.vhd y en la
ventana de procesos buscar el proceso Synthesize XST y darle un doble click para
ejecutarlo.

Una vez finalizado el proceso, es posible observar los componentes a los cuales es
sintetizado el mdulo en una lgica de transferencia de registro (RTL), para ello se da
un doble click al proceso View RTL Shematic. Con esto se ejecuta una aplicacin
denominada Xilinx ECS ( Engineering Capture System ), en la cual se puede navegar
con los botones
para observar el circuito sintetizado a
diferentes niveles de detalle. Al nivel mas alto:

Observando internamente (un nivel mas bajo) :

17

Sistemas Digitales

UTM/2005-1

Estos diagramas permiten evaluar la funcionalidad del circuito y son tiles para
documentacin. En este momento el programa Xilinx ECF puede cerrarse, su uso
permiti garantizar que la sntesis se hizo de manera satisfactoria.
6. Acondicionamiento para la implementacin.
Como pudo observarse en los diagramas anteriores, el cdigo VHDL ha sido sintetizado
satisfactoriamente en hardware, ahora habr que tomar algunas consideraciones para
poder llevar a cabo su implementacin.
El circuito ser descargado en un FPGA XC2S200 de Xilinx, el cual est en una tarjeta
Digilab 2SB & I/O 4 que se muestra a continuacin:

Digilent es la empresa que manufactura estas tarjetas de desarrollo y a todos sus tarjetas
las denomina como Digilab (www.digilentinc.com), 2SB es la serie de la tarjeta con un
FPGA Spartan II e I/O 4 es la serie de la tarjeta con elementos de entrada/salida
necesarios para evaluar al FPGA.
La tarjeta 2SB tiene conectores cuyas terminales estn conectadas al FPGA y en
algunos de esos conectores se ha conectado a la tarjeta I/O 4, la cual cuenta con
interruptores y botones para entrada de datos y LEDs y desplegadores de 7 segmentos
para salidas.
Para la implementacin del comparador, es de esperarse que las entradas A y B se
obtengan de los interruptores y las salidas (Mayor, Menor e Igual) se muestren en los
LEDs.
Se requiere conocer el nmero de terminal del FPGA a la cual se conecta cada
elemento de la tarjeta. En la tabla siguiente se muestra a que terminal se conecta cada
uno de los elementos de la tarjeta I/O 4 en uno de los puertos, el puerto correspondiente
en la tarjeta D2SB, el nmero de terminal en esa tarjeta y la correspondiente terminal en
el FPGA. Est informacin fue obtenida de los manuales de ambas tarjetas
(http://www.digilentinc.com/Materials/BoardProducts.html).

18

Sistemas Digitales

UTM/2005-1

DIO4 CONECTOR
CONECTOR
2SB
FPGA
SALIDAS EN INDICADORES TIPO LED
35
P1
A1
5
111
LED 1
33
P1
A1
7
109
LED 2
31
P1
A1
9
102
LED 3
29
P1
A1
11
100
LED 4
27
P1
A1
13
98
LED 5
25
P1
A1
15
96
LED 6
23
P1
A1
17
94
LED 7
21
P1
A1
19
89
LED 8
22
P1
A1
20
181
HAB GLOBAL
HABILITADORES DE LOS DESPLEGADORES DE 7 SEGMENTOS
15
P1
A1
25
176
AN1
16
P1
A1
26
175
AN2
13
P1
A1
27
174
AN3
14
P1
A1
28
173
AN4
SEGMENTOS COMUNES A TODOS LOS DESPLEGADORES DE 7 SEGMENTOS
35
P2
A2
5
161
CA
33
P2
A2
7
152
CB
31
P2
A2
9
150
CC
29
P2
A2
11
148
CD
27
P2
A2
13
146
CE
25
P2
A2
15
141
CF
23
P2
A2
17
139
CG
21
P2
A2
19
136
DP
BOTONES
22
P2
A2
20
135
BOTON 1
19
P2
A2
21
134
BOTON 2
20
P1
A1
22
180
BOTON 3
17
P1
A1
23
179
BOTON 4
18
P1
A1
24
178
BOTON 5
INTERRUPTORES
38
P2
A2
4
162
SWITCH 1
36
P2
A2
6
160
SWITCH 2
34
P2
A2
8
151
SWITCH 3
32
P2
A2
10
149
SWITCH 4
30
P2
A2
12
147
SWITCH 5
28
P2
A2
14
145
SWITCH 6
26
P2
A2
16
140
SWITCH 7
24
P2
A2
18
138
SWITCH 8
PUERTO PS2
17
P2
A2
23
132
PS2D
20
P2
A2
22
133
PS2C
PUERTO VGA
16
P2
A2
26
126
RED
15
P2
A2
25
127
GREEN
18
P2
A2
24
129
BLUE
14
P2
A2
28
123
HOR SYNC
13
P2
A2
27
125
VER SYNC
EN LA TARJETA (2SB)
187
154
182
PUSH BUTTON
LED
OSC. 50 MHZ

19

Sistemas Digitales

UTM/2005-1

En la tabla anterior se observa que los LEDs tienen un habilitador global, en este
momento en el diseo no hay alguna salida para esta habilitacin, se agregar
modificando directamente el cdigo VHDL en el Project Navigator (al darle un doble
click al archivo com4b.vhd en la seccin Sources in Project, el archivo es abierto para
su modificacin).
En la entidad se agregar un nuevo puerto, con la siguiente declaracin:
HabGlob : out STD_LOGIC;
Y en la arquitectura se asignar un nivel alto a esta seal para una habilitacin
permanente:
HabGlob <= 1;
Esto se hace fuera del proceso. El cdigo completo quedar como:

Con estos cambios el estado de la sntesis es desconocido:


y es
necesario ejecutar nuevamente este proceso (aplicndole un doble click) para actualizar
al hardware. Cuando el proceso finaliza su estado se actualiza:
y es
posible ver los cambios del hardware ejecutando el proceso View RTL Shematic.

20

Sistemas Digitales

UTM/2005-1

En la figura anterior se muestra que se ha agregado la nueva seal y en la figura


siguiente, al explorar en un nivel mas bajo, se observa que siempre tendr un valor
constante.

Puede cerrarse el programa Xilinx ECF.


Para la asignacin de terminales es necesario agregar un archivo de restricciones
(archivo con extensin UCF), para ello, en cualquier parte del rea de Sources in
Project dar un click derecho y en el men contextual seleccionar la opcin New Source

Dentro de los diferentes tipos de archivo que pueden insertarse seleccionar


Implementation Constraints File y asignarle un nombre.

21

Sistemas Digitales

UTM/2005-1

Al avanzar se debe seleccionar el mdulo con el cual se asignarn las restricciones, en


este caso slo se tiene un mdulo en el diseo, si hubiera mas habra que seleccionar al
de mayor jerarqua.

Luego solo se muestra informacin sobre este nuevo archivo y se finaliza.

Con esto aparece un nuevo archivo en el rea Sources in Project.

22

Sistemas Digitales

UTM/2005-1

Para modificarlo habr que seleccionarlo dentro del rea Sources in Project, con ello en
el rea Processes for Source se mostrarn los procesos aplicables al archivo.

Al dar un doble click al proceso Edit Constraints (Text) el archivo es abierto en el rea
de trabajo y es posible escribir la asignacin de terminales.
La asignacin de terminales obedece la sintaxis siguiente:
NET nombre de la seal LOC = PXXX;
donde NET y LOC son palabras reservadas. XXX es el nmero de terminal en el FPGA.
Cuando se trata de un vector cada elemento se indica entre los smbolo < >. As, el
archivo terminales.ucf debe modificarse para quedar como:

El smbolo # permite insertar comentarios en los archivos de restricciones. Al salvar el


archivo se tiene al diseo acondicionado para la tarjeta de desarrollo a usar, por lo que
debe procederse con la implementacin.
Nota: El archivo con restricciones (UCF) puede realizarse con cualquier editor de
textos y de esta forma, despus del click derecho habra que seleccionar la opcin Add
Source, en lugar de New Source, buscar al archivo y asociarlo con el que le
corresponda del cdigo VHDL.

23

Sistemas Digitales

UTM/2005-1

7. Implementacin.
La implementacin es un proceso que involucra varios pasos: Trasladar (Traslate),
mapeo (Map) y colocacin y ruteo (Place & Route). Sin embargo esto lo realiza la
herramienta de manera automtica. Para ello es necesario seleccionar el archivo comp4b
en el rea Sources in Project, con ello se abrirn los procesos aplicables al archivo en el
rea Processes for Source, buscar al proceso Implement Design y darle un doble click
para ejecutarlo.

En la figura anterior se observa que la implementacin fue realizada con Warnings,


esto normalmente ocurrir en diseos combinacionales por que no se est utilizando una
seal de reloj explcita.
En el reporte del Mapeo (Report Map) es posible conocer los recursos que est usando
el diseo dentro del FPGA, entre los cuales destacan:
Number of 4 input LUTs:
Number of occupied Slices:
Number of bonded IOBs:

9 out of 4,704 1%
5 out of 2,352 1%
12 out of 142 8%

Y con el reporte Text-Based Post-Place & Route Static Timing Report el cual se puede
ver al expadir al proceso Generate Post-Place & Route Static Timing, es posible saber
cual es el retardo mas grande que existe para las salidas, a partir de las entradas.
En este caso el retardo mayor se da de la entrada A<0> a la salida menor y es de
13.651 ns.

24

Sistemas Digitales

UTM/2005-1

Es posible explorar el interior del FPGA para observar los recursos que est ocupando
un diseo, esto se consigue al dar un doble click al proceso View/Edit Routed Design
(FPGA Editor), con esto se ejecutar al programa Xilinx FPGA Editor, el cual mostrar
un aspecto como el de la figura siguiente:

La parte en Azul es la que esta ocupando el diseo dentro del dispositivo. Se pueden
hacer acercamientos o bien dar un click a los diferentes bloques para observar su
contenido.
Una vez que se ha observado que la implementacin se realiz satisfactoriamente, es
posible cerrar este programa (Xilinx FPGA Editor) para continuar.
8. Generacin del archivo de configuracin y prueba del diseo en el FPGA
Dentro de los procesos asociados al diseo (los cuales se obtienen al seleccionarlo), se
encuentra el proceso Generate Programming File ubicado despus del proceso de
implementacin.

25

Sistemas Digitales

UTM/2005-1

Antes de ejecutar este proceso es necesario definir uno de sus parmetros, para ello
habr que darle un click derecho y seleccionar la opcin propiedades en el men
contextual,

Con ello se abrir una ventana similar a:

En las opciones que se presentan con las cejas superiores seleccionar Startup Options y
cambiar el valor de la propiedad FPGA Start-Up Clock para que tenga: JTAG Clock.

Despus del cambio debe presionarse el botn Aceptar. Este cambio es necesario para la
programacin del FPGA, la cual se har mediante un puerto conocido como JTAG y por
lo tanto se requiere que de ah llegue la seal de reloj.
Una vez hecho esto es posible ejecutar el proceso Generate Programming File
aplicndole un doble click.

26

Sistemas Digitales

UTM/2005-1

Si el proceso se realiza con xito, esto se indicar en el estado del mismo:

Para poder programar al FPGA es necesario :


a) Alimentar la tarjeta de desarrollo Para ello debe conectarse la fuente de
alimentacin de 6 V que es proporcionada con la misma tarjeta.
b) Conectar el cable JTAG El cual es similar al de la figura siguiente:

Un extremo se conecta en el puerto paralelo de la PC y el otro en el puerto JTAG de


la tarjeta, tanto en el cable como en la tarjeta estn indicados los nombres de las
seales, cualquier conexin errnea daar la tarjeta.
La programacin se realizar con el programa iMPACT el cual se ejecuta con un doble
click en el proceso Configure Device (iMPACT):

El programa inicia solicitando algunos parmetros, en el primer paso se deja la opcin


predefinida, por que es el mecanismo por medio del cual se programar al dispositivo.

27

Sistemas Digitales

UTM/2005-1

En el paso siguiente se selecciona la opcin Enter a Boundary-Scan Chain, por que es


mas rpido indicar cual es la cadena de configuracin, en relacin a que se identifique
automticamente.

En el cuadro de dilogo que aparece despus de finalizar, se selecciona al archivo de


configuracin comp4b.bit y se procede presionando el botn Abrir.

Hecho esto el programa iMPACT ser abierto mostrando un aspecto como el siguiente:

28

Sistemas Digitales

UTM/2005-1

Debe darse un click derecho al dispositivo para obtener el men contextual en el que se
seleccionar la opcin Programar (Program...).

Con esto aparecer un cuadro de dilogo con las opciones de programacin similar al de
la figura siguiente, en ste se dejarn las opciones predeterminadas y se presionar OK.

Con ello se iniciar la descarga en el FPGA apareciendo una barra indicando el avance
en la ejecucin de la misma, con este proceso, cualquier posible configuracin previa
del FPGA ser remplazada por la nueva configuracin.

29

Sistemas Digitales

UTM/2005-1

Una vez concluida la descarga, el programa iMPACT indicar que la programacin se


realiz con xito, a travs de un mensaje como el de la figura siguiente:

Si el mensaje Programming Succeeded no aparece las causas pueden ser diversas:


La tarjeta puede estar desconectada
Se seleccion un FPGA que no corresponde con el de la tarjeta
El empaque seleccionado no es el empaque del FPGA
El puerto paralelo de la PC no funciona correctamente
El FPGA no funciona correctamente
Despus de la programacin, el programa iMPACT puede cerrarse as como tambin el
Project Navegator. El cable JTAG puede retirarse.
El diseo puede evaluarse modificando las entradas desde los interruptores para
observar las salidas en los LEDs. Cabe aclarar que los recursos programables en el
FPGA estn basados en tecnologa RAM, por lo que si se retira la alimentacin, el
programa se perder. La tarjeta cuenta con una base para una memoria tipo FLASH,
desde la cual es posible que el FPGA obtenga su programacin en el momento en que es
suministrada la energa, desafortunadamente en este momento se carece de dichas
memorias.
9. Conclusin
Se ha revisado de manera detallada el proceso a seguir para implementar sistemas
digitales en FPGAs con ayuda de VHDL, para otro tipo de tarjetas u otro tipo de FPGAs
solo debe hacerse la seleccin adecuada.
Para otros fabricantes, ajenos a Xilinx, debern usarse las herramientas adecuadas para
sntesis, implementacin y descarga. El diseo y simulacin en VHDL son
independientes del dispositivo a usar para la implementacin.

30

Sistemas Digitales

UTM/2005-1

10. Ejercicio de repaso


Para repasar el tutorial, disear e implementar un circuito convertidor de binario a BCD,
como se muestra en la figura siguiente:

Salida en
BCD
Decenas
6 Bits

4 Bits

Entrada
Binaria
Unidades

4 Bits

Con 6 bits se alcanzan hasta 64 combinaciones, stas deben separarse en unidades y


decenas. Por simplicidad usar solo comparaciones y operaciones bsicas como sumas y
restas. Para ello ser necesario incluir la biblioteca unsigned, de la siguiente manera:
use IEEE.std_logic_unsigned.all;
Las entradas debern tomarse de los interruptores y las salidas enviarse a los LEDs.
Es necesario comenzar con un nuevo diseo, aunque puede manejarse dentro del mismo
espacio de trabajo.
Relizar un reporte con los siguientes puntos:
a)
b)
c)
d)
e)
f)

Objetivo del diseo.


Cdigo VHDL.
Diagramas con simulaciones (agregando comentarios descriptivos).
Esquemticos generados con el programa Xilinx ECF (nivel superior y siguiente).
Contenido del archivo de restricciones (UCF).
Reporte de recursos usados, as como frecuencia mxima de operacin del
dispositivo.
g) Diagrama mostrando los recursos usados en el FPGA.
h) Descripcin de la pruebas en la tarjeta.
i) Conclusiones.
Nota: Puede considerarse la salida de habilitacin de los LEDs desde el momento en
que se realice el cdigo VHDL, con ello se evitarn modificaciones futuras.

31

También podría gustarte