Tutorial para el diseño y simulación de un circuito digital con VHDL ,

Anuncio
INSTITUTO DE ELECTRÓNICA Y
COMPUTACIÓN
“SISTEMAS DIGITALES”
Tutorial para el diseño y simulación de un circuito digital con VHDL ,
síntesis e implementación en un FPGA
Alumno : ___________________________________________
Grupo : _________________
Prof. M. C. Felipe Santiago Espinosa
Octubre de 2004
Sistemas Digitales
UTM/2005-1
Tutorial para el diseño y simulación de un circuito digital con VHDL ,
síntesis e implementación en un FPGA
1. Introducción
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 verificación 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 diseñar e implementar un comparador de 4 bits: Un circuito que como entradas
reciba dos números 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. Diseño con VHDL
Para el diseño y simulación se utilizará la herramienta Active-HDL versión 6.2,
desarrollada por Aldec, cuyo Icono de acceso directo se muestra a continuación:
Este programa organiza los diseños 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.
1
Sistemas Digitales
UTM/2005-1
Un espacio de trabajo puede contener diversos diseños independientes. Si es la primera
vez que trabaja con esta herramienta, es conveniente iniciar con un nuevo espacio de
trabajo propio. Al cual deberá asignársele un nombre, en este caso se le puso “tutorial”:
Si se abre un espacio de trabajo existente, automáticamente será abierto el último diseño
elaborado. Para los espacios de trabajo nuevos, se presentará el asistente para iniciar con
nuevos diseños, el cual inicia con la figura siguiente:
2
Sistemas Digitales
UTM/2005-1
La primera opción se usa cuando ya se cuenta con módulos que se agregarán al diseño.
La segunda es para importar un diseño completo.
La última opción es necesaria para nuevos diseños, para este caso es la opción que debe
seleccionarse y después pasar al paso siguiente.
Posteriormente se deben definir algunas características del diseño de acuerdo con las
herramientas que se cuenten para síntesis 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 diseño, para este caso fue “comparador”:
A continuación se puede disponer del ambiente de trabajo completo de la herramienta
que tiene un aspecto como el que se muestra en la figura siguiente:
3
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 jerárquica, un espacio de trabajo puede
contener varios diseños y un diseño a la vez puede contener varios módulos
(Archivos con código VHDL).
Estructura (Structure) – Tiene sentido una vez que los módulos han sido
compilados, muestra la organización del diseño, así como las señales internas,
externas y variables de cada uno de sus módulos, esta opción es útil para
simulación.
Recursos (Recursos) – Muestra la organización en directorios de todos los
elementos que se agreguen al diseño activo.
En la parte inferior se tiene una consola en la que aparecerán mensajes de acuerdo a las
actividades realizadas por el usuario. Es solo con carácter informativo, no es posible
introducir información a través de esta consola.
A la derecha está el área de trabajo, aquí se pueden mostrar los elementos que integren
al diseño. Archivos con código VHDL, ventanas de simulación, diagramas de bloques,
etc. Basta dar un doble click dentro del navegador para observar el contenido de un
archivo y poder modificarlo.
También se muestra al flujo de diseño (design flow) con el que es posible insertar
módulos al diseño, preparar su simulación, realizar su síntesis, etc.
En la figura siguiente se observa el flujo de diseño, en la parte superior se tienen tres
botones para agregar nuevos módulos al diseño, éstos pueden ser: Módulos con código
HDL, diagramas a Bloques (para módulos con mayor jerarquía) y diagramas de estado.
4
Sistemas Digitales
UTM/2005-1
El comparador será descrito con código VHDL, de manera que se procede con un
“click” en el botón 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 módulo, se deja activa la opción
de que el código generado se integre al proyecto y se avanza.
5
Sistemas Digitales
UTM/2005-1
A continuación 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 tomarán
el mismo nombre, que se decidió fuera “comp4b”.
Luego deben insertarse una a una las señales que formarán parte de la entidad (interfaz),
la inserción de una señal comienza con un “click” en el botón “new”, luego se le pone
un nombre, si es un vector su tamaño se determina con los índices y debe definirse su
modo (entrada o salida).
El proceso debe repetirse con cada una de las señales, de acuerdo a las especificaciones
del diseño.
6
Sistemas Digitales
UTM/2005-1
Al concluir con la inserción de señales se presiona el botón finalizar, con lo que se
creará una plantilla del módulo en un archivo que es agregado al diseño (se observa en
el navegador) y éste es automáticamente abierto en el área de trabajo.
Los comentarios de la plantilla pueden completarse para una adecuada documentación.
En este momento ya se tiene descrita la entidad (la interfaz del módulo) y falta por
describir su arquitectura para determinar su comportamiento.
Nota: Si se quiere modificar la entidad, para agregar una nueva señal, eliminar una
existente o modificar algún parámetro, debe hacerse manualmente, respetando la
sintaxis de VHDL, no es posible regresar al asistente anterior.
El módulo 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 descripción funcional es mas entendible por
que refleja directamente la solución del problema.
Nota: Después de la palabra process se coloca la lista de sensitividad, son señales que
activarán la ejecución del proceso, cuando ocurra un cambio en cualquiera de ellas.
7
Sistemas Digitales
UTM/2005-1
Este código debe insertarse en la arquitectura, sustituyendo al comentario:
-- enter your statements here --
Una vez insertado el código, se verifica su sintaxis realizando su compilación. Para ello
se selecciona al archivo
y se presiona al botón compilar
.
Otra alternativa consiste en obtener un menú contextual dando un click derecho en el
archivo y seleccionar la opción de compilación (compile).
Si no hay errores de sintaxis, el archivo tendrá otro marcador indicando su estado
y la consola reflejará el éxito de la compilación.
En caso de que hubiera errores, el archivo en el navegador quedará marcado de manera
diferente
y los errores se mostrarán en la consola.
Los errores deben resolverse considerando la sintaxis del lenguaje.
4. Simulación
Una vez realizada la compilación de un módulo es posible simularlo. La simulación se
inicializa seleccionando la opción Initialize Simulation en el menú Simulation
En este caso se trata de un solo módulo y no existen jerarquías, cuando se trata de un
diseño con mas módulos, a través de un cuadro de diálogo debe determinarse cual es el
de mayor jerarquía.
8
Sistemas Digitales
UTM/2005-1
Al iniciar la simulación, el navegador indica cual es el módulo de mayor jerarquía y
conmuta automáticamente las cejas inferiores para mostrar la estructura de los módulos.
Si se expande alguno de los módulos, podrán verse las señales que contiene:
Para simular se requiere agregar una nueva forma de onda (new Waveform) dando un
click al botón
, aparecerá una ventana de señales vacía, similar a la siguiente:
Las señales se agregan activando el menú Waveform y seleccionando la opción Add
Signals, con lo que se obtiene el cuadro de dialogo:
9
Sistemas Digitales
UTM/2005-1
Una alternativa más simple consiste en seleccionar las señales del navegador y
arrastrarlas a la ventana de señales, en ambos casos el resultado será el siguiente:
Además del nombre de las señales, se tienen una columna con su valor y otra indicando
el tipo de estímulo. A la derecha hay una zona donde se mostrará el comportamiento
temporal de cada señal.
No hay que olvidar que se está simulando hardware y para probar un elemento de
hardware es necesario ingresar algunas señales a las entradas y observar las salidas, con
ello se evalúa si la funcionalidad del módulo es o no correcta.
Las señales de entrada son proporcionadas a través de estímulos, existen estímulos de
diferentes tipos, adecuados para diferentes tipos de señales. Los estímulos se obtienen al
dar un “click” derecho a una señal de entrada, con ello aparece un menú contextual en el
cual debe seleccionarse la opción estímulos ( Stimulators ).
Con esto se obtiene un cuadro de dialogo en el cual de izquierda a derecha muestra: La
señal bajo consideración, la lista de estímulos y las características propias de cada tipo
de estímulos (estás se obtienen al seleccionar un estímulo particular y en algunos casos
es necesario introducir algunos parámetros).
Para el comparador de 4 bits, puesto que A y B son vectores, para ambas señales se
elegirán estímulos tipo contador, sólo que para observar la activación de las diferentes
salidas A será ascendente y B descendente.
10
Sistemas Digitales
UTM/2005-1
Una vez que se selecciona el tipo de estímulo y se determinan sus parámetros, debe
presionarse el botón Aplicar (Apply) de lo contrario los estímulos no serán
considerados.
No es necesario cerrar la ventana de estímulos y abrirla para una nueva señal, es
suficiente dar un “click” a la señal y ésta se incorporará a la ventana de estímulos.
Una vez definidos todos los estímulos debe cerrarse la ventana de estímulos (Close).
Con esto se han establecido todas las condiciones de simulación, 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 diálogo que aparece
después de que el botón se presiona.
El segundo botón (Run for) realiza la simulación por el tiempo indicado en el cuadro de
edición contiguo, este tiempo puede modificarse para proporcionar diferentes intervalos
de simulación.
11
Sistemas Digitales
UTM/2005-1
El último botón (Restart) ignora los eventos transcurridos para iniciar nuevamente con
la simulación.
Las señales se generan conforme se avanza en la simulación, las entradas están dadas
por los estimuladores y las salidas son una función de las entradas.
Para una mejor visualización de las señales, pueden usarse los botones:
cuya respectiva función es: Zoom In, Zoom Out, Zoom to Fit y Zoom Range.
Para propósitos de documentación, es posible agregar comentarios con explicaciones,
esto se consigue al dar un “click” derecho y elegir la opción Insertar Comentario (Insert
Comment) del menú contextual.
Una vez realizada la simulación, puede garantizarse que el módulo funciona y se
procede a la Síntesis e Implementación. Pero antes, habrá que detener la simulación
seleccionando la opción End Simulation en el menú Simulation
12
Sistemas Digitales
UTM/2005-1
5. Síntesis
La versión 6.2 de Active-HDL proporciona un ambiente desde el cual es posible realizar
la síntesis e implementación de un diseño (esto se observa en el flujo de diseño), 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
señales solo para documentación y abrir el Project Navigator, cuyo icono de acceso
directo es:
Al ejecutar este programa se mostrará el Tip del Día y luego se abrirá el último proyecto
en el que se haya trabajado. Es necesario iniciar con un nuevo proyecto seleccionando la
opción New Project en el menú File, con esto se obtendrá el cuadro de diálogo similar
al siguiente:
Primero debe seleccionarse la ubicación del proyecto en disco y luego asignársele un
nombre. Esto para que el proyecto quede ubicado en una carpeta con el mismo nombre.
Para el tipo de módulo 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 módulos HDL para evitar
conflictos de nombres al momento de hacer la síntesis e implementación.
13
Sistemas Digitales
UTM/2005-1
Una vez que se introduzcan estos datos se procede con el paso siguiente. En el cual se
determinarán 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 código fuente.
14
Sistemas Digitales
UTM/2005-1
Se avanza al paso siguiente por que se trabajará con un archivo previamente elaborado.
Presionando el botón Add Source se explora para encontrar el archivo que contiene al
código VHDL con la descripción 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
módulo VHDL.
Si el proyecto tuviera mas módulos, todos se insertarían de manera similar. Antes de
avanzar al paso siguiente es necesario asegurarse que la opción Copy to Project está
seleccionada.
15
Sistemas Digitales
UTM/2005-1
El paso siguiente muestra un resumen con la información del proyecto, si todo está bien
se finaliza con la creación del proyecto (Botón 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 módulos, en este árbol se
ubicarían de acuerdo a sus niveles jerárquicos.
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 serán 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 están realizando.
Para la Síntesis 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 módulo en una lógica de transferencia de registro (RTL), para ello se da
un doble click al proceso View RTL Shematic. Con esto se ejecuta una aplicación
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
documentación. En este momento el programa Xilinx ECF puede cerrarse, su uso
permitió garantizar que la síntesis se hizo de manera satisfactoria.
6. Acondicionamiento para la implementación.
Como pudo observarse en los diagramas anteriores, el código VHDL ha sido sintetizado
satisfactoriamente en hardware, ahora habrá que tomar algunas consideraciones para
poder llevar a cabo su implementación.
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 continuación:
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 están 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 implementación 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 número 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 número de terminal en esa tarjeta y la correspondiente terminal en
el FPGA. Está información 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 diseño no hay alguna salida para esta habilitación, se agregará
modificando directamente el código VHDL en el Project Navigator (al darle un doble
click al archivo com4b.vhd en la sección Sources in Project, el archivo es abierto para
su modificación).
En la entidad se agregará un nuevo puerto, con la siguiente declaración:
HabGlob : out STD_LOGIC;
Y en la arquitectura se asignará un nivel alto a esta señal para una habilitación
permanente:
HabGlob <= ‘1’;
Esto se hace fuera del proceso. El código completo quedará como:
Con estos cambios el estado de la síntesis es desconocido:
y es
necesario ejecutar nuevamente este proceso (aplicándole 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 señal 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 asignación de terminales es necesario agregar un archivo de restricciones
(archivo con extensión UCF), para ello, en cualquier parte del área de Sources in
Project dar un click derecho y en el menú contextual seleccionar la opción 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 módulo con el cual se asignarán las restricciones, en
este caso sólo se tiene un módulo en el diseño, si hubiera mas habría que seleccionar al
de mayor jerarquía.
Luego solo se muestra información 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 mostrarán 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 asignación de terminales.
La asignación de terminales obedece la sintaxis siguiente:
NET nombre de la señal LOC = PXXX;
donde NET y LOC son palabras reservadas. XXX es el número de terminal en el FPGA.
Cuando se trata de un vector cada elemento se indica entre los símbolo < >. Así, el
archivo terminales.ucf debe modificarse para quedar como:
El símbolo # permite insertar comentarios en los archivos de restricciones. Al salvar el
archivo se tiene al diseño acondicionado para la tarjeta de desarrollo a usar, por lo que
debe procederse con la implementación.
Nota: El archivo con restricciones (UCF) puede realizarse con cualquier editor de
textos y de esta forma, después del click derecho habría que seleccionar la opción “Add
Source”, en lugar de “New Source”, buscar al archivo y asociarlo con el que le
corresponda del código VHDL.
23
Sistemas Digitales
UTM/2005-1
7. Implementación.
La implementación es un proceso que involucra varios pasos: Trasladar (Traslate),
mapeo (Map) y colocación y ruteo (Place & Route). Sin embargo esto lo realiza la
herramienta de manera automática. Para ello es necesario seleccionar el archivo comp4b
en el área Sources in Project, con ello se abrirán 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 implementación fue realizada con “Warnings”,
esto normalmente ocurrirá en diseños combinacionales por que no se está utilizando una
señal de reloj explícita.
En el reporte del Mapeo (Report Map) es posible conocer los recursos que está usando
el diseño 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 diseño, 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 diseño 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 implementación se realizó satisfactoriamente, es
posible cerrar este programa (Xilinx FPGA Editor) para continuar.
8. Generación del archivo de configuración y prueba del diseño en el FPGA
Dentro de los procesos asociados al diseño (los cuales se obtienen al seleccionarlo), se
encuentra el proceso Generate Programming File ubicado después del proceso de
implementación.
25
Sistemas Digitales
UTM/2005-1
Antes de ejecutar este proceso es necesario definir uno de sus parámetros, para ello
habrá que darle un click derecho y seleccionar la opción 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.
Después del cambio debe presionarse el botón Aceptar. Este cambio es necesario para la
programación del FPGA, la cual se hará mediante un puerto conocido como JTAG y por
lo tanto se requiere que de ahí llegue la señal de reloj.
Una vez hecho esto es posible ejecutar el proceso Generate Programming File
aplicándole 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
alimentación 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 están indicados los nombres de las
señales, cualquier conexión errónea dañará la tarjeta.
La programación 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 parámetros, en el primer paso se deja la opción
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 opción Enter a Boundary-Scan Chain, por que es
mas rápido indicar cual es la cadena de configuración, en relación a que se identifique
automáticamente.
En el cuadro de diálogo que aparece después de finalizar, se selecciona al archivo de
configuración comp4b.bit y se procede presionando el botón 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 opción Programar (Program...).
Con esto aparecerá un cuadro de diálogo con las opciones de programación similar al de
la figura siguiente, en éste se dejarán las opciones predeterminadas y se presionará OK.
Con ello se iniciará la descarga en el FPGA apareciendo una barra indicando el avance
en la ejecución de la misma, con este proceso, cualquier posible configuración previa
del FPGA será remplazada por la nueva configuración.
29
Sistemas Digitales
UTM/2005-1
Una vez concluida la descarga, el programa iMPACT indicará que la programación se
realizó con éxito, a través 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
Después de la programación, el programa iMPACT puede cerrarse así como también el
Project Navegator. El cable JTAG puede retirarse.
El diseño puede evaluarse modificando las entradas desde los interruptores para
observar las salidas en los LEDs. Cabe aclarar que los recursos programables en el
FPGA están basados en tecnología RAM, por lo que si se retira la alimentación, 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 programación en el momento en que es
suministrada la energía, desafortunadamente en este momento se carece de dichas
memorias.
9. Conclusión
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 selección adecuada.
Para otros fabricantes, ajenos a Xilinx, deberán usarse las herramientas adecuadas para
síntesis, implementación y descarga. El diseño y simulación en VHDL son
independientes del dispositivo a usar para la implementación.
30
Sistemas Digitales
UTM/2005-1
10. Ejercicio de repaso
Para repasar el tutorial, diseñar 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 básicas como sumas y
restas. Para ello será necesario incluir la biblioteca unsigned, de la siguiente manera:
use IEEE.std_logic_unsigned.all;
Las entradas deberán tomarse de los interruptores y las salidas enviarse a los LEDs.
Es necesario comenzar con un nuevo diseño, aunque puede manejarse dentro del mismo
espacio de trabajo.
Relizar un reporte con los siguientes puntos:
a)
b)
c)
d)
e)
f)
Objetivo del diseño.
Código VHDL.
Diagramas con simulaciones (agregando comentarios descriptivos).
Esquemáticos generados con el programa Xilinx ECF (nivel superior y siguiente).
Contenido del archivo de restricciones (UCF).
Reporte de recursos usados, así como frecuencia máxima de operación del
dispositivo.
g) Diagrama mostrando los recursos usados en el FPGA.
h) Descripción de la pruebas en la tarjeta.
i) Conclusiones.
Nota: Puede considerarse la salida de habilitación de los LEDs desde el momento en
que se realice el código VHDL, con ello se evitarán modificaciones futuras.
31
Descargar