Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COMPUTACIN
SISTEMAS DIGITALES
Tutorial para el diseo y simulacin de un circuito digital con VHDL ,
sntesis e implementacin en un FPGA
Alumno : ___________________________________________
Grupo : _________________
Octubre de 2004
Sistemas Digitales
UTM/2005-1
4 Bits
4 Bits
A
B
A>B
A=B
A<B
Sistemas Digitales
UTM/2005-1
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:
Sistemas Digitales
UTM/2005-1
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:
Sistemas Digitales
UTM/2005-1
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
Sistemas Digitales
UTM/2005-1
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.
Sistemas Digitales
UTM/2005-1
Para simular se requiere agregar una nueva forma de onda (new Waveform) dando un
click al botn
Sistemas Digitales
UTM/2005-1
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 ).
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.
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:
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.
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).
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:
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:
20
Sistemas Digitales
UTM/2005-1
21
Sistemas Digitales
UTM/2005-1
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:
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.
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,
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
27
Sistemas Digitales
UTM/2005-1
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
30
Sistemas Digitales
UTM/2005-1
Salida en
BCD
Decenas
6 Bits
4 Bits
Entrada
Binaria
Unidades
4 Bits
31