Sistemas Digitales

También podría gustarte

Está en la página 1de 20

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

Profesor:
M. C. Felipe Santiago Espinosa MC Jacob J. Vsquez Sanjuan
Septiembre de 2009

Sistemas Digitales

UTM/2010-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 Nexys 2 de Digilent, la cual contiene un FPGA
Spartan 3E XC3S500E de Xilinx. El ejemplo que se desarrolla es bastante
simple porque el objetivo del tutorial es ilustrar el proceso y no resolver un
problema complejo.
Las herramientas de Software que se utilizan durante el tutorial son:
ISE 8.2i de Xilinx: En realidad es un ambiente integrado de desarrollo desde
el que se invocan diferentes herramientas, conforme se van requiriendo. Se
utilizar para la sntesis, implementacin y creacin del archivo de descarga.
Tambin puede utilizarse para programar al FPGA si se emplea una interfaz
conocida como JTAG.
Adept de Digilent: Es una utilera que permite programar a los FPGAs en
algunas tarjetas desarrolladas por Digilent, a travs del puerto USB.
1. Planteamiento del problema
Se desea disear e implementar un comparador de 4 bits. Se tienen las
entradas A y B, y tres salidas: mayor, igual y menor. Ejercicio: Disee
empleando VHDL, el circuito indicado.

4 bits

A> B

A= B
4 bits

Despus de
implementacin.

realizar

el

A< B
cdigo

simularlo,

se

procede

la

2. Sntesis
La sntesis se va a realizar con las herramientas de Xilinx desde un Ambiente
Integrado de Software (Integrated Software Environment ISE) el cual se
inicia con un doble click en el cono siguiente:

Sistemas Digitales

UTM/2010-1

Al iniciar este programa se mostrar el Tip del Da y luego se abrir el ltimo


proyecto en el que se haya trabajado (excepto cuando es la primera vez que se
ejecuta al software). Para este tutorial se 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.
En este caso, el proyecto se ubicar en la carpeta D:\Practicas y llevar por
nombre comparador. Para el tipo de mdulo superior (Top-Level Source) se
mantiene HDL por que se desarrollar un archivo en VHDL para el comparador.

Una vez que se introduzcan estos datos se procede con el paso siguiente. En el
cual se definen las propiedades del proyecto relacionadas con el FPGA en el

Sistemas Digitales

UTM/2010-1

que se va a realizar la descarga, por lo que es necesario seleccionar los valores


correctos.

Los valores seleccionados corresponden al FPGA que est integrado en las


tarjetas de desarrollo Nexys 2. En el paso siguiente es posible iniciar con
nuevos archivos.

En este caso se avanza al siguiente paso, dado que el archivo a sintetizar ya


fue creado con el Active-HDL. Precisamente el siguiente paso es para agregar
archivos existentes:

Sistemas Digitales

UTM/2010-1

Presionando el botn Add_Source se abrir una ventana de navegacin en la


que deber buscarse al archivo comp4b.vhd, el cual se encuentra en la ruta:
my_designs -> tutorial -> comparador -> src, esto porque el Active-HDL trabaja
en la carpeta denominada my_designs, el espacio de trabajo se denomin
tutorial, en el cual se inici con un diseo denominado comparador, y todos los
diseos dejan los archivos del cdigo fuente en una carpeta denominada src.

Dado que solo se agregar un mdulo al proyecto, se contina con el paso


siguiente. Es conveniente dejar marcada la casilla que crea una copia del
archivo en el proyecto, para conservar el archivo original sin modificaciones.
En el paso siguiente se muestra un resumen con la informacin del proyecto: el
nombre, el dispositivo y los archivos incluidos. Si todo est bien se finaliza con
la creacin del proyecto (Botn Finalizar).

Sistemas Digitales

UTM/2010-1

Aparecer un cuadro de dilogo en el que se define el uso que se le dar al


archivo agregado, en este caso se conservan los parmetros de default que
indican que el archivo puede ser usado para sntesis, implementacin y
simulacin.

Al presionar OK se presenta el entorno de desarrollo de Xilinx, en el que se


distinguen cuatro reas, el rea 1 es el rea de archivos, 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 los mdulos se
ubicaran de acuerdo a sus niveles jerrquicos.

Sistemas Digitales

UTM/2010-1

El rea 2 es el espacio de trabajo, ac sern abiertos los diferentes archivos


fuente o reportes que se generen. Inicialmente se muestra un resumen del
diseo. Para abrir un archivo basta con darle un doble click a su nombre en el
rea 1, al hacerlo sobre Comp4b.vhd se obtiene:

Sistemas Digitales

UTM/2010-1

El rea 3 es el rea de procesos, ac aparecer una lista de los procesos


aplicables al archivo seleccionado, esta lista puede cambiar, de acuerdo con el
tipo de archivo.
El rea 4 muestra una consola con mensajes indicando las diferentes
actividades que se estn realizando. Adems, existen otras cejas para mostrar
errores o precauciones.
Con el archivo comp4b.vhd seleccionado se realiza su sntesis. Para ello, en el
rea de procesos se da un doble click al proceso de sntesis, si no hay errores
de sintaxis, en el proceso de sntesis aparecer la indicacin de que se realiz
con xito y la consola reflejar el mismo hecho.

En caso de que hubiera errores, el proceso de sntesis no ser superado:

Y el posible error se mostrar en el espacio de la consola, especficamente en


la ceja de errores, tambin se observa la posicin del error.

Sistemas Digitales

UTM/2010-1

Se esperara que no ocurrieran errores, dado que el mdulo fue evaluado con
el Active-HDL, sin embargo, si se realiz algn ajuste en el cdigo VHDL que
gener errores, stos deben resolverse considerando la sintaxis del lenguaje.
3. 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 XC3S500 de Xilinx, el cual est en una
tarjeta Nexys 2 de Digilent, que se muestra a continuacin:

Digilent es la empresa que manufactura estas tarjetas de desarrollo y su


manual de referencia puede obtenerse de su sitio web: www.digilentinc.com.
Se observa que la tarjeta tiene diferentes elementos para entrada/salida o
almacenamiento de datos.
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. Por lo tanto, se requiere conocer a que terminales del
FPGA estn conectados estos elementos.
En la figura siguiente se muestra la organizacin de las terminales en el FPGA,
se observa una disposicin matricial organizada en 4 bancos. Para referirse a
una terminal, debe indicarse el rengln (A-V) y la columna (1-18).

Sistemas Digitales

UTM/2010-1

En la figura siguiente se muestra a que terminales del FPGA estn conectados


los dispositivos bsicos de entrada/salida.

Para la asignacin de terminales, es necesario agregar un archivo de


restricciones (archivo con extensin UCF), para ello, en cualquier parte del rea
de archivos se debe dar un click derecho y en el men contextual seleccionar
la opcin New Source.

10

Sistemas Digitales

UTM/2010-1

Dentro de los diferentes tipos de archivo que pueden insertarse seleccionar


Implementation Constraints File y asignarle un nombre.

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 ms
mdulos habra que seleccionar al de mayor jerarqua.

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

11

Sistemas Digitales

UTM/2010-1

Con esto aparece el archivo de restricciones, en el rea de archivos.

Para modificarlo, habr que seleccionarlo en el rea de archivos y con ello, en


el rea de procesos se mostrarn aquellos que sean aplicables al archivo.

Se debe dar un doble click al proceso Assing Pakage Pins, con lo cual se abre
una ventana con la aplicacin Xilinx PACE en la cual se desarrollar la
asignacin de terminales.

12

Sistemas Digitales

UTM/2010-1

En esta aplicacin, en su navegador se debe seleccionar la opcin I/O Pins, con


esto en la lista de objetos del diseo se mostrar la lista de las terminales de
entrada/salida, en la columna Loc se escriben las terminales correspondientes
al FPGA, buscando relacionar las entradas A y B con los interruptores y las
salidas con 3 de los 8 LEDs disponibles.
Se salva el archivo con los parmetros propuestos y se cierra la aplicacin.
Regresando al entorno del ISE, si en los procesos aplicables al archivo de
restricciones se da un doble click a Edit Constrains (text), en el rea de trabajo
se mostrar el contenido del archivo en simple texto, en donde se notar que
para cada terminal se tiene el siguiente enunciado:
NET nombre de la seal LOC = terminal ;
donde NET y LOC son palabras reservadas. El contenido del archivo es:

13

Sistemas Digitales

UTM/2010-1

Se observa que el smbolo # es para insertar comentarios en los archivos de


restricciones.
Notas:
1. El archivo con restricciones (UCF) puede realizarse editando la versin
de texto en la herramienta de Xilinx o con cualquier otro editor de textos. Si
se opta por la ltima alternativa, 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 de los mdulos VHDL.
2. Existen otros tipos de restricciones, de rea o temporizacin, pero stas
requieren definiciones que son mucho ms complejas.
4. Implementacin.
La implementacin es un proceso que involucra varios pasos: Trasladar el
diseo (Traslate), mapearlo (Map) y su 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 de archivos,
con ello se abrirn los procesos aplicables al archivo, en ellos se debe buscar la
lista de procesos Implement Design y darle un doble click para ejecutarlos.

En la figura anterior se observa que todos los procesos de implementacin se


han realizado con xito. En el resumen del proyecto (que se muestra en el rea
de trabajo) se pueden ver los recursos que est usando el diseo dentro del
FPGA:
5. Generacin del archivo de configuracin
Dentro de los procesos asociados al diseo (los cuales se obtienen al
seleccionarlo), se encuentra el grupo de procesos Generate Programming File
ubicado despus de los procesos de implementacin.

14

Sistemas Digitales

UTM/2010-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 en la columna de categoras seleccionar


Startup Options y cambiar el valor de la propiedad FPGA Start-Up Clock para
que tenga: JTAG Clock.

15

Sistemas Digitales

UTM/2010-1

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. Se abrir un cuadro de dilogo en el que se puede
habilitar el envo de informacin a Xilinx, para sus estadsticas, se sugiere
declinar para evitar el flujo de informacin.
Si el proceso se realiza con xito, esto se indicar en el estado del mismo:

6. Programacin del dispositivo


La tarjeta puede programarse desde dos diferentes puertos, el puerto JTAG o
un puerto mini-USB, el programa puede enviarse directamente al FPGA o a una
FLAH, para que el FPGA cargue el programa automticamente, despus de que
es alimentada la tarjeta.
En la figura siguiente se observa como en realidad es slo por el puerto JTAG
por el que se tiene acceso al FPGA y a la Flash. La salida del manejador USB va
dirigida hacia el puerto JTAG.

16

Sistemas Digitales

UTM/2010-1

El cable JTAG es similar al de la figura siguiente, si se utiliza este medio, debe


ejecutarse el proceso Configure Device (iMPACT).

En este caso se utilizar un cable USB, para ello se utilizar una suite de
descarga denominada Adept, proporcionada por Digilent.

De los diferentes programas incluidos en la suite se selecciona el programa


ExPort, al ejecutarlo se muestra la ventana:

En este momento ya se puede energizar la tarjeta y conectar el cable USB.

17

Sistemas Digitales

UTM/2010-1

En la tarjeta hay que verificar que el conector de Modo est en JTAG, en lugar
de ROM, si el conector de Modo estuviera en ROM, cargara al FPGA desde la
memoria Flash y no permitira su programacin desde el puerto JTAG.
La ROM contiene un programa de demostracin que se utilizar para verificar
la funcionalidad de la tarjeta, por lo que no debe ser modificado.

En el programa ExPort se agrega al archivo del comparador (con Add File),


navegando hasta encontrar al archivo con extensin .bit.

Con la tarjeta alimentada, conectada a la PC y encendida, se debe presionar el


botn initialize Chain, con el cual se inicializa la comunicacin entre la PC y la
tarjeta mostrando los dispositivos programables detectados.

18

Sistemas Digitales

UTM/2010-1

Para el FPGA se agrega al archivo .bit y la ROM se marca para que se ignorada
en la descarga.

La programacin se realiza presionando el botn Program Chain, mientras se


ejecuta se muestra una barra con el avance:

Al finalizar se muestra una ventana indicando el xito en la programacin.

Despus de la programacin, el programa Digilent Export puede cerrarse as


como tambin el ISE. El cable USB puede retirarse.

19

Sistemas Digitales

UTM/2010-1

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. Para evitar esto, el programa
podra almacenarse en la memoria FLASH, pero es preferible que el programa
de demostracin se conserve, para garantizar que la tarjeta funciona en el
momento en que se solicita en el laboratorio.

7. 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.
Se utilizaron 2 herramientas principales durante el proceso, y pudo observarse
que la simulacin de un diseo con el Active-HDL es mucho ms didctica que
la simulacin en el mismo entorno de Xilinx.
Si no se tiene xito en la programacin, 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 o el cable USB no funcionan correctamente
El FPGA no funciona correctamente

20

También podría gustarte