Professional Documents
Culture Documents
PROYECTO DE INVESTIGACION
ING. MANUEL RAMIREZ CASTRO
ING. RAFAEL GARCIA CHINGUEL
TITULO
APLICACIONES DE LA TARJETA XILINX 2S200E EN LOS CURSOS DE
ENSEANZA
DE
INGENIERIA
ELECTRNICA,
UTILIZANDO
1.3.
AUTORES
-
TIPO DE INVESTIGACION
INVESTIGACION EXPERIMIENTAL, APLICADA Y PROSPECTIVA
1.4.
AREA DE INVESTIGACION
ELECTRONICA APLICADA
1.5.
EL
common necessary steps for the data input, functional simulation, logic synthesis
and the actual configuration of Xilinx Spartan series FPGA in the Digilab 2SB card.
2.2. INTRODUCCION
Desde hace algn tiempo ya se viene usando el lenguaje VHDL como una de
las alternativas de implementacin en dispositivos CPLDs y FPGAs. Las
herramientas de sntesis han ido mejorando considerablemente. Hoy en da
muchos fabricantes de circuitos integrados utilizan la tecnologa de lgica
programable para implementar sistemas digitales muy complejos y poder
validar sus nuevos diseos sin tener que recurrir a la fabricacin del circuito
integrado. Gracias a las herramientas de diseo automtico existentes los
diseadores pueden aumentar la productividad, reduciendo los tiempos de
desarrollo y sobre todo abaratando los costos de diseo.
Las FPGAS son una gran solucin en la elaboracin de prototipos gracias a la
flexibilidad que ofrecen en el diseo. Debido a su importancia, se presenta
como ejemplo de diseo, la descripcin de un circuito combinacional en
lenguaje VHDL programado en una FPGA Spartan XCS200E. Se realiz la
simulacin funcional utilizando el programa ModelSim 6.0a y para las etapas
de diseo restantes se utiliz ISE Foundation 7.1i; ambos softwares de la
empresa Xilinx.
2.3. MATERIALES Y METODOS
MATERIALES:
-
Tarjeta Digilab 2SB (FPGA Xilinx 2s200e PQ208) con conector JTAG para
la computadora.
tiles de escritorio.
4
METODOS
Se indicara el resumen del proceso que se ha seguido para la obtencin de los
resultados (diseo de cdigo VHDL y la simulacin respectiva).
Tradicionalmente el flujo de diseo lgico consiste en:
1. Obtener especificaciones.
2. Definir entradas y salidas.
3. Definir tabla de verdad.
4. Derivar ecuaciones booleanas (simplificacin).
5. Especificar circuitos mediante puertas lgicas.
6. Implementar (unir puertas).
Con VHDL:
1. Obtener especificaciones.
2. Definir entradas y salidas.
3. Describir el circuito (programa VHDL).
4. Simulacin funcional (para poder realizarla primero abra que sintetizar
(generar la netlist)).
5. [Si se detectan errores volver a 4].
... Descargar el diseo en un dispositivo lgico programable (PLD)
Xilinx: entorno profesional para crear programas que describen diseos
lgicos.
Proyecto: diseo de un sistema (conjunto de mdulos).
Mdulo = componente = entidad (entity) de diseo.
Al principio, proyecto = 1 mdulo.
CAPITULO I
LENGUAJES DE DESCRIPCIN DE HARDWARE
INTRODUCCION
Los lenguajes de descripcin de hardware (HDL's) son utilizados para describir la
arquitectura y comportamiento de un sistema electrnico los cuales fueron
desarrollados para trabajar con diseos complejos.
El diseo tradicional de sistemas digitales es de bajo costo y con tiempos de desarrollo
cortos, pero es restringido por arquitecturas inflexibles, velocidades de operacin y
recursos limitados as como poco verstiles a la hora de la puesta en marcha, como lo
son: memorias, microcontroladores, procesadores digitales de seal (DSP's), entre
otros.
Una solucin para estos inconvenientes es el diseo ASIC o de aplicacin especfica,
en contraparte los tiempos de diseo y fabricacin son muy extensos y por ende
costosos a la hora de solucionar un problema particular. Tomando las ventajas de los
dos tipos de diseo expuestos - bajo costo, tiempo de diseo reducido, flexibilidad y
versatilidad- surgen los dispositivos lgicos programables, con la caracterstica
particular de poseer todos los recursos del primer tipo de diseo concentrados en una
pequea rea. Estas ventajas no estn completas sin una herramienta adecuada que
nos permita organizar y aprovechar estos recursos; para lo cual surgen los lenguajes
de descripcin de hardware HDL. El diseo de sistemas digitales se transforma en una
descripcin de alto nivel de los componentes que lo conforman, luego esta descripcin
configura apropiadamente los recursos del dispositivo, para finalmente obtener el
sistema funcional. Lenguajes de Descripcin de Hardware
Los lenguajes de descripcin hardware HDL: Hardware Description Languages-, se
empezaron a utilizar en los aos 70. Los primeros lenguajes surgidos no tuvieron gran
acogida y es hasta una dcada despus que aparecen los lenguajes VHDL y Verilog,
los cuales son en la actualizad los ms utilizados y han desplazado a los otros
lenguajes.
ratificado en 1987, y por parte del Departamento de Defensa de los Estados Unidos
como el estndar MIL-STD-454L En 1993 el estndar IEEE-1076 se actualiz y un
estndar adicional, el IEEE-1164, fue adoptado. Para 1996 el estndar IEEE-1076.3 se
convirti en un estndar de VHDL para sntesis siendo ste el que se utiliza en el
diseo de sistemas digitales. Los estndares ms utilizados en sntesis de circuitos por
la mayora de las herramientas de diseo son el IEEE-1164 y el IEEE-1076.3. En la
actualidad VHDL es un estndar de la industria para la descripcin, modelado y
sntesis de circuitos digitales. Por esto, los ingenieros de la mayora de las reas de
electrnica, si no es que todas, deben aprender a programar en VHDL para
incrementar su eficiencia.
VENTAJAS DE LOS VHDLS
El VHDL ofrece las siguientes ventajas en el diseo de circuitos:
-
11
Permite simular el diseo y generar formas de onda: Una de las finalidades del
VHDL es modelar un circuito para observar su comportamiento a lo largo del tiempo
(simulacin). Esto implica que el VHDL tenga construcciones asociadas para poder
realizar una simulacin. Estas construcciones permiten generar distintos eventos que
se sucedern a lo largo del tiempo, afectando a las sentencias que dependan de las
12
seales que vayan cambiando y obteniendo de esta manera la respuesta del circuito
evaluado.
13
16
Slo para fines de simulacin todo puerto puede tener un valor por defecto que
determina el valor inicial de la seal, los puertos de entrada pueden dejarse
desconectados si tienen un valor por defecto.
Arquitectura: En la declaracin de la arquitectura es donde reside todo el
funcionamiento de un programa, ya que es ah donde se indica que hacer con cada
entrada para obtener la salida. La arquitectura es el conjunto de detalles interiores de
la caja negra.
Sintaxis:
architecture nombre of entidad is
- - Zona de declaracin
begin
sentencias concurrentes;
sentencias concurrentes;
sentencias concurrentes;
end nombre;
Para describir una arquitectura podemos utilizar tres estilos, teniendo cada uno su
propio nivel de abstraccin:
-
17
Las seales a ambos lados del operador de asignacin (<=) deben ser
del mismo tipo.
Las
asignaciones
seales
pueden
aparecer
en
sentencias
Retardo
de
tipo
transporte:
es
el
retardo
asociado
por
las
18
Indica que el tipo bit slo puede tomar los valores: '0' y '1'. Este es un tipo bsico y con
el ya podemos crear puertos y nodos internos para interconectar los circuitos digitales.
Pero hay un inconveniente: este tipo no permite implementar componentes cuya salida
pueda tomar un valor de alta impedancia (Z), no se pueden realizar operaciones
aritmticas (slo lgicas) ya que no hay implementadas funciones para tal fin con este
tipo y tampoco pueden unirse ms de una seal sobre salidas de varios circuitos
porque el tipo bit tampoco tiene asociado una funcin que permita resolver las
mltiples asignaciones a un mismo objeto. Por esta razn es preferible utilizar el tipo
de dato std_logic que se encuentra en el paquete STD_LOGIC_1164 de la biblioteca
IEEE. El tipo std_logic es un tipo de dato multivaluado como se muestra en parte de la
descripcin del paquete:
El tipo de dato utilizado por lo general std_logic (que es un sub-tipo del tipo std_ulogic)
por las ventajas que hemos mencionado en el prrafo anterior. Para poder utilizar este
tipo de dato en el programa VHDL debemos declarar previamente en que paquete se
encuentra y a que biblioteca pertenece el paquete, para esto utilizamos las siguientes
sentencias:
19
Con ello tenemos la posibilidad de utilizar todos los elementos que se encuentran
declarados
en
los
paquetes:
STD_LOGIC_UNSIGNED.
En
el
STD_LOGIC_1164,
paquete
STD_LOGIC_ARITH
STD_LOGIC_1164
encontramos
y
la
STD_LOGIC_VECTOR.
El
paquete
STD_LOGIC_UNSIGNED
20
CAPITULO II
LA TARJETA DIGILAB 2SB, TARJETA DIO 4 Y LAS HERRAMIENTAS DE DISEO
ISE 7.1I.
La tarjeta Digilab 2SB tiene muchas caractersticas que facilitan la experimentacin
diseos lgicos reconfigurables as como tambin prototipos generales rpidos de
lgica digital. La tarjeta Digilab 2SB se muestra en la figura 1 y mediantes diagrama de
bloques en la figura 2:
21
23
24
el proyecto. Bajo esta subpantalla se encuentra Processes for Source el cual muestra
los procesos habilitados. La tercera ventana, ubicada en la parte inferior, muestra
errores y advertencias, que se producen durante todas las etapas del proyecto.
Abajo tenemos una ventana que muestra la salida texto generada por las
diferentes utilidades que van siendo llamadas en el proceso de diseo.
Cada vez que abrimos la aplicacin se carga el ltimo proyecto tratado mostrando el
estado correspondiente a las actuaciones realizadas en cada una de las ventanas.
26
27
FLUJO DE DISEO
En esta seccin se presenta el flujo de diseo completo para lgica reconfigurable de
Xilinx. Podemos distinguir las siguientes etapas:
1. Diseo _ modelado de un circuito lgico (HDL, esquemtico, EDIF, mquina
de estados, etc.).
2. Imposicin de restricciones _ asignacin de pines, limitaciones temporales.
3. Sntesis _ traduccin a puertas lgicas.
4. Implementacin _ generacin del programa que configura un determinado
dispositivo destino (FPGA o CPLD).
5. Configuracin del dispositivo _ carga del programa en el dispositivo destino.
La figura siguiente ilustra lo dicho indicando las diferentes fases de desarrollo segn la
enumeracin anterior. Dicha enumeracin no significa que necesariamente haya que
seguir ese orden de principio a fin, ms bien es un proceso en el que se avanza y
retrocede iterativamente hasta alcanzar el objetivo.
Cada una de las etapas del flujo de diseo puede realizarse dentro del entorno
integrado o bien utilizar herramientas de terceros. Algunas de esas herramientas
tambin son integrables en ISE si estn convenientemente instaladas.
La lgica reconfigurable de Xilinx cuenta con dos tipos de dispositivos: FPGAs (Field
Programmable Gate Array) y CPLDs (Complex Programmable Logic Device). Cada
uno de ellos tiene sus fases de desarrollo especficas. Aqu nos centraremos en la
configuracin de dispositivos FPGA.
Fase de diseo, restricciones y sntesis
En el diagrama de flujo de diseo figura en primer lugar la entrada del circuito lgico
que deseamos implantar. Esta entrada se puede realizar de las siguientes maneras: _
HDL o lenguaje de descripcin de hardware (VHDL, Verilog, ABEL).
Esquemticos.
EDIF.
NGC/BGO.
Mquina de estados.
Ncleo IP.
Para llevar a cabo esta entrada del circuito lgico el entorno ISE proporciona las
siguientes herramientas:
-
29
Hay que tener en cuenta que el circuito ha de relacionarse con el exterior a travs de
los pines del encapsulado del dispositivo configurable destino (FPGA en nuestro caso).
Estos pines estn, a su vez, unidos a una serie de elementos de la placa de desarrollo
(puertos de entrada/salida, memoria, microcontrolador, etc.). Es necesario, por tanto,
establecer las asignaciones de entradas y salidas a los pines del dispositivo fsico
concreto. Esto forma parte de las restricciones de usuario que adems incluyen las
limitaciones temporales.
Para realizar las asignaciones de pines del encapsulado tenemos las siguientes
herramientas:
-
PACE: Pinout and Area Constrints Editor. Entorno grfico que permite
realizar las asignaciones y salvarlas en un fichero de texto. Este fichero de
texto tiene extensin *.ucf.
31
El conjunto de ficheros que describen el modelo (*.ngc y *.edf) y los que imponen
restricciones (.ucf) permiten abordar la siguiente fase, la de implementacin.
Carga del Programa de Configuracin
Disponemos de 2 opciones para cargar el programa de configuracin en la pastilla
FPGA:
-
IMPACT
Realiza dos funciones bsicas: la configuracin de un dispositivo a travs de
alguno de los posibles cables desarrollados al efecto y la generacin de
ficheros de configuracin en diferentes formatos. El cable disponible en nuestro
caso es JTAG.
La configuracin del dispositivo se puede hacer con arreglo a uno de los cuatro
modos disponibles:
-
Boundary-scan.
SelectMAP
SlaveSerial
32
CAPITULO III
COMPARADOR DE 2 BITS
APLICACIN ISE PROJECT NAVIGATOR Y MODELSIM
La versin ISE Project Navigator 7.1i es una edicin libre, descargable de la pgina
web de Xilinx, previamente se tiene que configurar la licencia para que tipo de
Hardware se va a utilizar.
El arranque de la aplicacin se realiza a travs del men inicio: Men
inicio/Programas /Xilinx ISE 7.1I/Project Navigator. Despus de la ventana de
bienvenida aparece la ventana principal del entorno, tal y como se muestra en la figura
siguiente si no se ha realizado ningn proyecto anteriormente.
33
aparecen
automticamente
si
estn
instaladas
en
nuestro
Con el men contextual podemos crear un nuevo fichero fuente, aadir uno
existente, abrir uno presente con su editor especfico, eliminar fuentes o
consultar las propiedades de cada elemento.
Aparece en la ventana de proyecto el flujo de diseo especfico del dispositivo
destino. Cada una de las entradas del mismo puede ejecutarse. Si el resultado
es correcto se marcar con el smbolo mientras que si genera errores se
indicar con el smbolo X.
36
Figura 14: ventana para definir entradas y salidas al crear un nuevo diseo.
37
38
Figura 16: Ventana general del proyecto ingresado con el cdigo VHDL.
7. Como podemos observar en la figura anterior, en la lengeta de errores no se
detecto ninguno, luego se pasa a grabar en el chip de la tarjeta Spartan 2SB
X2S200E; Esto se hace en el programa iMPACT
39
Figura 18. Editor PACE de asignacin de pines con el encapsulado PQ208 del
dispositivo XILINX 2S200E.
En nuestro ejemplo asignaremos los pines de las tarjetas mediante Edit
Constraints (text), que es una forma manual de ingresar la asignacin de pines de
las tarjetas 2SB y DIO4
40
8.
Figura 23. Tareas disponibles para realizar sobre el dispositivo en modo configuracin.
Al final colocamos OK
43
44
46
SUMADOR BINARIO
Creamos un nuevo proyecto:
47
48
49
Figura 32: Ventana del proyecto una vez ingresado las entradas y salidas.
Recordamos que:
S X Y Z
C XY YZ XZ
Por lo tanto,
50
51
52
53
CAPITULO IV
COMPARADOR BINARIO
Creacin de cdigo VHDL mediante captura esquemtica (*.sch)
Para ellos crearemos un nuevo proyecto: eligiendo Schematic
54
55
56
57
58
Las simulaciones del diseo, antes de que ste sea implementado mediante
compuertas, permiten probar la arquitectura del sistema para tomar decisiones
en cuanto a cambios en el diseo.
2.7. RECOMENDACIONES
-
2. Sin Ming Loo, Getting Started with Xilinx Design Tools and the Digilab 2E
Prototyping Board a Users Guide.
3. Dpto. Electrnica Universidad de Alcal, tutorial de diseo en VHDL para
FPGAS.
4. Douglas L. Perry, VHDL Programming by Example, Fourth Edition.
5. IEEE Standard VHDL Language Reference Manual, IEEE Standard 1076.
2000
6. M A Freira. Introduccin al lenguaje VHDL, Universidad Politcnica de
Madrid.
7. Xilinx Inc. [http://www.xilinx.com]
8. Digilent D2-SB. System Board. Reference Manual. Sep, 2003. Disponible
en:
http://www.digilentinc.com/Data/Products/D2SB/D2SBrm.pdf
9. ModelSim manual Xilinx 6.0a, publicado sep2004
Disponible en:
www.model.com/downloads/default.asp
10. Digilent DI04 Peripheral Board. Reference Manual.
Agosto, 2004.
Disponible en:
http://www.digilentinc.com/Data/Products/DIO4/DIO4 -rm.pdf
http://www.digilentinc.com/Data/Products/DIO4/DIO4 -rm.pdf
61
2.9. ANEXOS
64