You are on page 1of 64

APLICACIONES DE LA TARJETA XILINX 2S200E EN LOS

CURSOS DE ENSEANZA DE INGENIERIA ELECTRNICA,


UTILIZANDO EL LENGUAJE DE DESCRIPCION DE
HARDWARE

PROYECTO DE INVESTIGACION
ING. MANUEL RAMIREZ CASTRO
ING. RAFAEL GARCIA CHINGUEL

Palabras clave: xilinx


PROGRAMA DE INVESTIGACION: Redaccin de texto
1. DATOS PRELIMINARES
1.1.

TITULO
APLICACIONES DE LA TARJETA XILINX 2S200E EN LOS CURSOS DE
ENSEANZA

DE

INGENIERIA

ELECTRNICA,

UTILIZANDO

LENGUAJE DE DESCRIPCION DE HARDWARE.


1.2.

1.3.

AUTORES
-

Ing. Manuel Javier Ramrez Castro.

Ing. Rafael Garca Chinguel.

TIPO DE INVESTIGACION
INVESTIGACION EXPERIMIENTAL, APLICADA Y PROSPECTIVA

1.4.

AREA DE INVESTIGACION
ELECTRONICA APLICADA

1.5.

LINEA DE INVESTIGACION: TECNOLOGICA

EL

2. CUERPO DEL INFORME


2.1. RESUMEN
El propsito de este manual es proveer un soporte adicional a estudiantes de
Ingeniera Electrnica de la UNPRG, sobre prototipos digitales de sistemas rpidos
(Digital Systems Rapid Prototyping), se usara el software XILINX ISE para diseo
rpido de prototipos digitales en la tarjeta

Digilab 2SB. Este manual es un

suplemento de la existente documentacin sobre la Tarjeta Digilab 2SB [8] y el


material de Xilinx ISE 7.1i [7] La computadora facilit la herramienta de diseo
introduciendo un set coordinado de ejemplos que tomara el usuario a travs de los
pasos ms comunes necesarios para la entrada de datos, simulacin funcional,
sntesis lgica y la actual configuracin de Xilinx Spartan-series FPGA en la tarjeta
Digilab 2SB.
En la escuela profesional de Ingeniera Electrnica de la Universidad Nacional
Pedro Ruiz Gallo, no se desarrolla, ni se aplica la descripcin del lenguaje VHDL,
ni se da uso a las tarjetas del fabricante Xilinx 2s200e en los cursos de la escuela
profesional en mencin. Existiendo las tarjetas en el laboratorio de Ingeniera
Electrnica sin darle mayor utilidad (tarjetas adquiridas mediante donacin hace
mas de 6 aos.
Por lo tanto nuestro propsito ser describir el lenguaje de descripcin de
hardware (similar al funcionamiento circuital) y la simulacin de estas tarjetas
mediante ejemplos sencillos haciendo uso del software brindado por el mismo
fabricante. Contando para ello con la informacin terica del fabricante y trabajos
realizados por otros investigadores.
ABSTRACT
The purpose of this manual is provide an additional support to students of
Electronical Engineering of the UNPRG about digital systems rapid prototyping.It
will be used XILINX ISE software for rapid design of digital prototypes in the Digilab
2SB card. This manual is a supplement of the existent documentation about Digilab
2SB (8) card and the material of Xilinx ISE 7.1i. The computer mase easy the
design tool by introducing a coordinate example set that take the user trough the

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:
-

Adaptador de voltaje (Fuente estabilizada 6V a 9V).

Computadora con Software de Simulacin de Xilinx. 7.1i y ModelSim XE III


6.0a.

Tarjeta Digilab 2SB (FPGA Xilinx 2s200e PQ208) con conector JTAG para
la computadora.

Tarjeta Digilab DIO4 (Tarjeta simuladora).

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.

Para realizar el diseo VHDL en Xilinx los pasos son:


1. Crear nuevo proyecto (PROJECT MANAGER).
5

2. Crear programa VHDL (DESIGN ENTRY).


3. Sintetizar la netlist (SYNTHESIS).
4. Simulacin funcional.
Veamos cada uno de los pasos en detalle:
(I) Crear nuevo proyecto [PROJECT MANAGER]
1.1. Ejecutar PROJECT MANAGER
1.2. Ejecutar Fila / New project: nombre proyecto
Carpeta (creada previamente)
Indicar flujo: VHDL (no esquemtico)
Descripcin de la ventana del PROJECT MANAGER:

1. Ficheros fuente (.VHDL) y libreras.


2. Para activar las herramientas usadas en las distintas fases del flujo de
diseo.
3. Listado de mensajes de diagnosis de los distintos procesos que se van
realizando.
(II) Introducir el diseo (programa VHDL) [DESIGN ENTRY]
1. Se puede usar el asistente de diseo vhdl (HDL Design Wizard) para
definir las entradas y salidas del mdulo, con lo que cuando pasemos al

editor de vhdl aparecer el esqueleto del programa con las definiciones


de entidad (entity) y arquitectura (arquitecture).
2. HDL Editor: para escribir el programa, con todo tipo de facilidades:
indentacin, cambio color palabras clave...
(III) Sintetizar (obtener la netlist) [SYNTHESIS]
Habr que indicar el proyecto, el dispositivo (PLD) al que va dirigido y en el
que caso de que haya varios mdulos definidos, cul de ellos es el de nivel
superior en la jerarqua de diseo.
(IV)Simulacin funcional del diseo [SIMULATION]
Ventanas: Waveform Viewer dentro de Logic Simulator
1. Aadir entradas y salidas:
2. Aplicar estmulos al circuito
3. Establecer los parmetros de simulacin
4. Ejecutar la simulacin
5. Guardar la simulacin
6. Salir : File/exit
2.4. RESULTADOS
Para la investigacin se ha recopilado informacin de internet acerca del lenguaje de
descripcin de hardware, de los dispositivos lgicos programables (PLDs), as como
las caractersticas del Software y Hardware de las tarjetas que son el objeto de nuestra
investigacin.
La forma de trabajo se basara en describir los elementos necesarios de la estructura
del lenguaje de descripcin de hardware (VHDL) y de esta manera programar las
tarjetas para simular cualquier diseo de un sistema digital, tambin describir la
estructura interna de trabajo de los PLDs, haciendo una descripcin detallada de las
tarjetas Digilab 2SB (Xilinx XC2S200E FPGA).
7

DISEO LGICO USANDO XILINX


INTRODUCCION
El propsito de este manual es proveer un soporte adicional a estudiantes de
Ingeniera Electrnica de la UNPRG, sobre prototipos digitales de sistemas rpidos
(Digital Systems Rapid Prototyping), se usara el software XILINX ISE para diseo
rpido de prototipos digitales en la tarjeta Digilab 2SB. Este manual es un suplemento
de la existente documentacin sobre la Tarjeta Digilab 2SB [8] y el material de Xilinx
ISE 7.1i [7] La computadora facilit la herramienta de diseo introduciendo un set
coordinado de ejemplos que tomara el usuario a travs de los pasos ms comunes
necesarios para la entrada de datos, simulacin funcional, sntesis lgica y la actual
configuracin de Xilinx Spartan-series FPGA en la tarjeta Digilab 2SB.
Este manual est organizado en 4 captulos los cuales cubren los siguientes captulos:

a) Capitulo 1: Lenguajes de descripcin de Hardware.


b) Capitulo 2: Informacin general es presentada acerca de la tarjeta Digilab 2E, la
tarjeta Digilab DIO 4 y las herramientas de diseo ISE 7.1i.
c) Capitulo 3: Un ejemplo de diseo de un simple comparador binario de 2 bits y un
sumador binario (adder) son presentados y usados para observar los pasos
comunes asociados con la programacin en VHDL, simulacin funcional,
implementacin del diseo y la configuracin de la Spartan 2E xc2s200E FPGA y
la simulacin en MODELSIM XE III 6.0a.
d) Capitulo 4: Un ejemplo de diseo de un comparador es presentado para ilustrar
los pasos comunes asociados con la entrada de datos de la captura esquemtica,
sntesis, simulacin funcional y la implementacin en XC2S200E.

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.

HISTORIA DEL VHDL


La creacin de este lenguaje se inicia en el ao 1981, con la creacin del programa de
desarrollo de circuitos integrados de muy alta velocidad (VHSIC) del Departamento de
defensa de Estados Unidos. En el ao de 1982 las compaas IBM, Texas
Instruments, Intermetrics, obtuvieron la concesin para la realizacin del lenguaje y de
un conjunto de herramientas para su aplicacin. En el ao de 1987 el lenguaje VHDL
se convierte en la norma 1076 y en el ao de 1993 se actualiza con la norma 1164. El
objetivo principal de utilizar lenguaje VHDL para la descripcin de hardware, es
especificar y documentar circuitos y sistemas digitales con un lenguaje formal que sea
entendido tanto por diseadores como por mquinas computadoras-. Entre las
principales caractersticas del lenguaje se tiene que es ejecutable, lo que permite que
la descripcin del hardware se materialice en dispositivos programables; posibilita la
descripcin del hardware con distintos niveles de abstraccin y es independiente de la
tecnologa. Las diferencias entre VHDL y Verilog son: las unidades de diseo mltiple
pueden ser compiladas separadamente en VHDL, mientras que en Verilog, al
producirse un cambio sencillo en el orden de compilacin la simulacin puede cambiar;
el usuario puede definir el tipo de datos utilizando VHDL; los conceptos de librera,
- que permite compilar proyectos de diseo mltiple -, y paquetes los cuales pueden
ser utilizados por cualquier unidad de diseo -, solamente existen en VHDL.
VHDL
VHDL es un lenguaje de descripcin de hardware utilizado para describir circuitos en
un alto nivel de abstraccin el cual est siendo rpidamente aceptado como un medio
estndar de diseo. VHDL es producto del programa Very High Speed Integrated
Circuit (VHSIC) desarrollado por el Departamento de Defensa de los Estados Unidos a
finales de la dcada de los 70's. El propsito era hacer un estndar para disear,
modelar, y documentar circuitos complejos de tal manera que un diseo desarrollado
por una empresa pudiera ser entendido por otra y, adems, pudiera ser procesado por
software con propsitos de simulacin.
VHDL es reconocido como un estndar de los lenguajes HDL por el Instituto de
Ingenieros en Electricidad y Electrnica IEEE como su estndar 1076 el cual fue
10

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:
-

Tiene una gran capacidad descriptiva en diferentes niveles de abstraccin.

Los circuitos diseados pueden ser reutilizados.

Independencia en la metodologa de diseo

Independencia del proceso de fabricacin.

Entre las principales caractersticas podemos decir:


Est basado en sentencias que se ejecutan de manera concurrente: quiere decir
que las sentencias se ejecutan cuando ocurre un evento y pueden ejecutarse una o
ms al mismo tiempo (aquellas sentencias que dependan de las seales que estn
cambiando sern evaluadas). Aunque tambin permite definir dominios en los que las
acciones se suceden en orden secuencial (Process).

11

La concurrencia se ve claramente graficado en los circuitos electrnicos donde los


componentes se encuentran siempre activos, existiendo una asociacin intrnseca
entre todos los circuitos(ver figura anterior); ello hace posible el hecho de que si se da
algn cambio en una parte del mismo, se produce una variacin (en algunos casos
casi instantnea) de otras seales. Este comportamiento de los circuitos reales obliga
a que VHDL soporte estructuras especficas para el modelado y diseo de este tipo de
especificaciones de tiempos y concurrencias en el cambio de las seales.

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.

El comportamiento de los circuitos en VHDL, est basado en la respuesta a estmulos,


el modelo responde cuando hay un estmulo y luego espera el siguiente estmulo.
Soporta distintos niveles de descripcin: El VHDL soporta tres estilos de
descripcin de circuitos:
Estilo Flujo de datos: donde se aborda la implementacin del diseo utilizando
ecuaciones lgicas que describen como es el flujo de las seales desde la entrada
hasta la salida.

13

Se recomienda utilizar este estilo en el diseo de circuitos combinacionales de simple


a mediana complejidad (circuitos SSI y MSI) como son circuitos diseados en base a
compuertas bsicas, multiplexores, decodificadores, comparadores, sumadores, etc.

Estilo algortmico: En donde se modela el comportamiento deseado en un alto nivel


de abstraccin. No hay mayor detalle del circuito a implementar, especificndose su
funcionamiento en base a un algoritmo construido con sentencias muy parecidas a los
lenguajes de programacin de alto nivel.

Se recomienda utilizar este estilo para abordar el diseo de circuitos combinacionales


de medianos a complejos, circuitos secuenciales y mquinas de estado, en el diseo
de unidades de control y ruta de datos de los sistemas digitales. Es recomendado para
iniciarse en la programacin VHDL por su alto nivel de abstraccin, aunque la mayora
de las herramientas de sntesis actuales tienen ciertas restricciones en cuanto a su
uso en su real magnitud.
Estilo estructural: En donde la descripcin se realiza mediante la interconexin de
componentes previamente elaborados o extrados de algunas bibliotecas que ofrecen
los fabricantes de CPLDs FPGAs. La descripcin se realiza indicando la lista de
conexiones entre los diferentes componentes que conforman el circuito.
14

Se recomienda este estilo cuando el sistema digital complejo se ha divido en


diferentes bloques funcionales y se desean unir esos bloques para la implementacin
del sistema final. Tambin cuando estamos frente a un circuito que tienen bloques
repetitivos y para la creacin de los vectores de pruebas (testbench) en VHDL.
El tipo de estilo utilizado finalmente depender de las habilidades del diseador en el
uso de lenguajes de programacin, pero no se debe olvidar nunca que lo que se est
describiendo finalmente se transformar a ecuaciones lgicas que podran ser
implementadas en dispositivos FPGAs (basados en CLBs) o CPLDs (basados en
macroceldas).
Unidades de diseo.
En un programa VHDL hay dos bloques bsicos: La entidad y la arquitectura.
Entidad: La entidad, nos sirve para relacionar nuestro diseo con el mundo exterior,
es decir, analizamos lo que tratamos de crear como una "caja negra", de la que slo
conocemos sus entradas, salidas y la disposicin de las mismas.
Sintaxis:
Entity identificador is
[genricos]
[puertos]
end [identificador];
15

Nota: lo que se encuentra entre corchetes [] se considera que su uso es opcional.


Cada seal en una declaracin de entidad est referida a un puerto (o grupo de
seales), el cual es anlogo a un(os) pin(es) del smbolo esquemtico. Un puerto es
un objeto de informacin, el cual puede ser usado en expresiones y a la vez se le
pueden asignar valores. A cada puerto se le debe asignar un nombre vlido.

La declaracin de un puerto consta de:


-

nombre: identifica a un pin de la entidad

modo: indica el flujo de la seal.

tipo: indica el conjunto de valores que puede tomar un objeto, en este


caso el puerto.

El modo determina como las sentencias de la arquitectura pueden acceder al puerto.


Tenemos 4 tipos de modos:
-

in: es de slo lectura (no se puede escribir).

out: es de slo escritura (no se puede leer).

buffer: se comporta como un puerto de salida (out) que se puede leer.

Inout: es de tipo bidireccional, quiere decir que se puede leer y escribir.

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:
-

Estilo algortmico (behavioral)

Estilo flujo de datos (dataflow)

Estilo estructural (structure)

Cada estilo est basado en sentencias concurrentes que determinan el grado de


abstraccin del circuito a disear, as tenemos que el estilo algortmico se caracteriza
por utilizar las sentencias de los lenguajes de alto nivel, el estilo flujo de datos basado
en sentencias que asignan valores a una seal y el estilo estructural que permite
interconectar componentes ya elaborados.

17

La descripcin de una arquitectura se compone de un conjunto de sentencias


concurrentes que se ejecutan en forma asncrona entre s y se comunican mediante
seales. Estos procesos que se ejecutan concurrentemente deben poder comunicarse
(sincronizarse) entre ellos. El elemento necesario para comunicar dos procesos es la
seal (signal).
En cada uno de los estilos de modelado se utiliza la sentencia de asignacin de
seales: <=, para esto hay que tener en cuenta que:
-

Las seales a ambos lados del operador de asignacin (<=) deben ser
del mismo tipo.

Si hay varias asignaciones a la misma seal en un mismo proceso,


prevalece el valor de la ltima asignacin.

Las

asignaciones

seales

pueden

aparecer

en

sentencias

concurrentes (estilo flujo de datos) o sentencias secuenciales (estilo


algortmico).
En la arquitectura las sentencias concurrentes hacen referencia en todo momento a
seales, estas seales pueden ser puertos. La seal es un tipo de objeto en VHDL que
puede cambiar de valor y tiene un modelo de retardo asociado.
Entre los modelos de retardo tenemos:
-

Retardo de tipo inercial: es el retardo asociado a las compuertas


digitales.

Retardo

de

tipo

transporte:

es

el

retardo

asociado

por

las

interconexiones que existen entre los diferentes circuitos.


Tipo: El VHDL es un lenguaje de programacin donde los objetos a utilizar (seales,
variables, constantes) deben tener asignado un tipo. El tipo define el conjunto de
valores que pueden tomar los objetos. As tenemos por ejemplo el tipo bit (declarado
en el paquete Standard de la biblioteca STD) como:
TYPE BIT IS ('0', '1')

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

declaracin de tipos y subtipos de datos, funciones de conversin de un tipo a otro. En


el paquete STD_LOGIC_ARITH encontramos funciones aritmticas, lgicas y de
relacin que se puede utilizar entre los objetos declarados con tipos de datos
STD_LOGIC

STD_LOGIC_VECTOR.

El

paquete

STD_LOGIC_UNSIGNED

complementa al paquete STD_LOGIC_ARITH con operaciones aritmticas sin tener


en cuenta los bits de signo. Mayor informarcion sobre el lenguaje de programacin [1],
[4], [5] y [6].

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:

Figura 1: Tarjeta Digilab 2SB (FPGA XILINX XC200E)

21

Figura 2: Diagrama de bloques de la Tarjeta Digilab 2SB (FPGA XILINX XC200E).


La tarjeta Digilab 2SB es autnoma, es una tarjeta que sirve para experimentos y
desarrollos de prototipos con FPGAs utilizando la arquitectura Xilinx FPGA. Esta
tarjeta tiene un Xilinx Spartan XC2S200E FPGA.
Un oscilador de 50 MHz es el motor de la FPGA. Ms informacin acerca de esta
tarjeta Digilab 2SB se puede encontrar en [9].
La tarjeta posee 6 bancos de entradas y salidas a los cuales se les asigna un nmero
de pines especficos para su implementacin.
La tarjeta Xilinx Spartan 2E FPGA. D2-SB incluye:

Xilinx XC2S200E-200 FPGA con 200K compuestas y 350MHz de operacin;


22

143 entradas y salidas en 6 rutas estndares de 40 pines cada una;


Un socket para JTAG-programmable 18V02 configuration Flash ROM;
Doble regulador de voltaje (1.8V y 3.3V)
Un oscilador SMD 50MHz y un socket para un Segundo oscilador
Un puerto programable JTAG
Un led de status y un pulsador para la expansiones I/O
Conector de expansin de 40 pines

Figura 3: Vista del conector de expansin de la tarjeta Digilab 2SB.

Tarjeta Digilab DIO4


La tarjeta DIO4 puede ser conectada a un sistema de tarjetas Digilent de forma rpida
y sencilla para aadir varias utilidades a los puertos I/O. La DIO4 se alimenta de la
tarjeta del sistema y las seales de todos los dispositivos de I/O (entrada y salida) son
ruteados los pines individualmente en los conectores de la tarjeta del sistema (tarjeta
Digilab 2SB).
Estas caractersticas permiten a la tarjeta DIO4 ser incorporada dentro de los circuitos
de la tarjeta del sistema con un mnimo esfuerzo.
Todos los dispositivos de la tarjeta DIO4 usan el suministro de 3.3V de la tarjeta del
sistema, a excepcin del puerto PS/2 que necesita un suministro de 5VDC (La tarjeta
DIO4 contiene un regulador de 5VDC), las seales provenientes del puerto PS/2 son
ruteadas mediante buffer de proteccin (para proteger la tarjeta del sistema que no
tiene entradas tolerantes de 5V

23

Diagrama de bloques de la Tarjeta Digilab DIO4

Figura 4: Diagrama de bloques de la Tarjeta Digilab DIO4.


La Tarjeta Digilab DIO4 incluye:
4 Display de 7 segmentos.
8 leds individuales.
4 pulsadores.
8 switches.
Puerto VGA de 3 bits.
Puerto PS/2 para teclado o mouse.

24

Visualizacin Grafica de las tarjetas Digilab 2SB y DIO4

Figura 5: Visualizacion grafica de las tarjetas Digilab 2SB (Izquierda) y DIO4


(Derecha).
EL SOFTWARE XILINX ISE FOUNDATION SERIES
Los diseos que son introducidos en la tarjeta Digilab 2SB requiere el uso del diseo
especial asistido por computadora, CAD, el software para configurar el Xilinx Spartan
series FPGA. El software CAD es la suite de herramientas Xilinx ISE Foundation series
Este software funciona con una PC bajo Windows/Unix y eso da soporte a la entrada
de diseo (captura va esquemas, entrada de diagrama de estado y lenguaje de
descripcin de hardware), sntesis, simulacin lgica, anlisis de tiempo y
configuracin del dispositivo.
Este software permite la descripcin en lenguajes VHDL, Verilog, ABEL, UCF. La
pantalla est dividida en cuatro subpantallas principales, tal y como se presenta en la
Figura 6. En la parte superior izquierda se encuentra la ventana Sources in Project
fuentes en la pantalla-, la cual presenta de forma jerrquica los elementos incluidos en
25

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.

Figura 6: Interfaz general del proyecto: Interface Project Navigator.


ISE se autodenomina Navegador de Proyecto (Project Navigator) y est orientado a
facilitar el proceso de desarrollo.
En la ventana principal se distinguen cuatro partes:
-

Arriba a la izquierda se encuentra la ventana de ficheros fuente del proyecto.

Debajo, a la izquierda, se encuentra la ventana de proyecto que representa el


flujo de diseo adaptado al dispositivo del proyecto.

A la derecha se encuentra un espacio reservado para colocar los diferentes


editores del entorno.

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

La figura siguiente muestra la ventana de proyecto en la que se aprecian las diferentes


fases del flujo de diseo.

Figura 7: La ventana de proyectos de ISE.


Resumidamente las fases de desarrollo son:
1. Diseo.
2. Imposicin de restricciones.
3. Sntesis.
4. Implementacin.
5. Configuracin del dispositivo o carga del programa.
Cada una de estas etapas admite una variedad de formatos y herramientas tanto
nativas (de Xilinx) como de terceros. Los dispositivos reconfigurables pueden ser de
dos arquitecturas diferentes: FPGAs (Field Programmable Gate Array) y CPLDs
(Complex Programmable Logic Device).

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.

Figura 8: Flujo de diseo Xilinx simplificado.


28

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:
-

Editor de texto. Genera diferentes extensiones dependiendo del lenguaje


utilizado. Para el caso de VHDL la extensin es *.vhd.

Editor de esquemticos. Es la utilidad ECS (Engineering Capture System)


que podemos encontrar bajo el nombre ECS.exe. Funciona tanto en el entorno
integrado ISE como de forma autnoma. Genera ficheros con extensin *.sch.

29

Editor de mquinas de estados. Es la utilidad StateCAD (fichero sc.exe).


Permite generar diagramas de estados (ficheros *.dia) y traducirlos a algn
lenguaje de descripcin de hardware.

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:
-

Editor de texto. Generamos un fichero de extensin *.ucf.

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.

Finalmente hemos de realizar la traduccin del circuito a puertas lgicas. Cuando el


diseo fuente se ha realizado en esquemtico o con lenguajes de descripcin de
hardware mediante modelados estructurales se puede disponer de la implementacin
en puertas lgicas pero en otros casos no es as. La sntesis se puede realizar con las
siguientes herramientas:
-

XST: Xilinx Synthesis Technology. Es el sintetizador nativo de Xilinx y se


materializa en el ejecutable xst.exe. Genera (entre otros) un fichero de
extensin *.ngc.

LeonardoSpectrum. Pertenece a Mentor Graphics y es integrable en ISE.

Synplify. Pertenece a Synplicity y tambin es integrable en ISE.

Las etapas de diseo, imposicin de restricciones (asignacin de pines) y sntesis se


presentan con detalle en la figura siguiente.
30

Figura 9: Flujo de diseo Xilinx para entrada de modelos y sntesis.


En la figura 9, podemos observar como partiendo de esquemticos pasamos a una
formalizacin textual a travs de EDIF (Electronic Design Interchange Format).
EDIF es una normalizacin usada para intercambiar diseos entre diferentes sistemas
de CAD y entre ellos y los equipos de fabricacin y ensamblado de circuitos impresos.
Los ficheros EDIF tienen extensin *.edf.
Como hemos dicho, cuando partimos de descripciones realizadas con VHDL, Verilog o
ABEL es necesario intercalar una etapa de sntesis a puertas lgicas ya que estos
modelos no siempre se realizan basados en circuitos lgicos, es ms, su mayor
potencia se encuentra en los modelados comportamentales, ms cercanos a los
programas de alto nivel que a los circuitos digitales. La sntesis genera ficheros NGC
(*.ngc) o EDIF (*.edf).
En esta fase del diseo es necesario comprobar las reglas lgicas y realizar
simulaciones que nos permitan justificar el correcto funcionamiento de nuestros
circuitos. Como herramientas de simulacin integradas disponemos de:
-

ISE SIMULATOR: es el simulador nativo de Xilinx con salida de forma de


onda que nos permite ver los cronogramas que generan nuestros diseos.

ModelSim de Model Technology integrable en ISE.

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:
-

La herramienta IMPACT de Xilinx que genera varios formatos de ficheros


de programacin y que puede descargar el programa a travs de un cable
de comunicacin; y

Las utilidades de la placa de desarrollo que proporciona Digilent. En este


caso necesitamos un fichero de programacin de extensin *.svf.

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

Desktop Configuration (nicamente cable MultiPRO).

En nuestro caso usaremos Boundary-scan con el cable JTAG.

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.

Figura 10: Aspecto inicial de ISE Project Navigator 7.1i.

33

Para cerrar la aplicacin hay que seleccionar la opcin File/Exit y confirmar en el


cuadro de dilogo correspondiente.
CREACION DE UN PROYECTO
Para el entorno ISE un proyecto es un conjunto de unidades de diseo --modelos en
lenguajes de descripcin de hardware, esquemticos, etc.--, unas restricciones de
implantacin fsica y una arquitectura de dispositivo reconfigurable. Adems de esto, el
proyecto integrar en el entorno algunas herramientas de simulacin y sntesis que
seleccionar el usuario de entre las nativas de Xilinx y las proporcionadas por terceros.
Creacin de nuestro proyecto:
1. Iniciar la aplicacin ISE Project Navigator 7.1i
2. Seleccionar la opcin File/New Project. Aparecer la ventana de dialogo de la
figura siguiente.
En dicha ventana se establece el nombre del proyecto, el directorio en el que
desea ubicarse y tipo de fichero fuente de entre los disponibles (lenguaje de
descripcin de hardware (HDL), esquemtico, EDIF o NGC/NGO).
Pulsar el botn Siguiente.

Figura 11. Primera ventana de dialogo para la creacin de un proyecto.


34

3. Aparece la ventana de dilogo de la figura siguiente en la que se determina el


dispositivo reconfigurable destino, su encapsulado y grado de velocidad. Las
herramientas de sntesis (XST de Xilinx) y simulacin (ModelSim de Model
Technology)

aparecen

automticamente

si

estn

instaladas

en

nuestro

computador. Tambin se selecciona el lenguaje HDL concreto que se va a utilizar


en los ficheros fuente. En nuestro caso para el tipo de tarjeta que utilizaremos la
configuracin seria:
Device Family: Spartan2E
Device: xc2s200e
Package: pq208
Pulsar el botn Siguiente

Figura 12: Ventana de nuevo proyecto.


4. En las siguientes ventanas podemos determinar los ficheros fuente que vamos a
utilizar o bien optar por no dar ninguna informacin ya que siempre podemos
aadir nuevos ficheros en cualquier momento.
Hacer clic en el botn Finalizar
Para crear el proyecto.
35

La creacin del proyecto tiene las siguientes consecuencias:


-

Se crea el fichero de extensin *.npl de configuracin del proyecto en el


directorio del proyecto. En nuestro caso es ejemplo1.npl.

Aparecen los ficheros fuente en la ventana de fuentes. Adems de los ficheros


de modelos y restricciones tenemos una entrada para el dispositivo
reconfigurable.

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 13: Ventana de procesos y proyectos de ISE 7.1i


5. Creamos una nueva fuente: men Project/new source, colocamos un nombre de
archivo, luego declaramos las entradas y salidas

Figura 14: ventana para definir entradas y salidas al crear un nuevo diseo.
37

Click en siguiente, siguiente y finalizar; Una vez definimos los puertos de


entradas y salidas, pasaremos a ingresar el cdigo VHDL tal como muestra la
figura siguiente:

Figura 15: Ventana de trabajo donde ingresamos el cdigo VHDL.


Esto es una forma de lenguaje de describir el hardware, puede haber muchas
variantes para describir el mismo ejemplo.
6. verificamos que nuestro programa no tenga ningn error, esto se logra haciendo
RUN en el sintetizador XST de la ventana de procesos.

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

Figura 17: Ventana de proceso configure device (Impact)

39

Tenemos que editar los pines y el clock del dispositivo a usar:


La figura 18, ilustra el editor PACE (Pinout and Area Constraints Editor) que se
utiliza para realizar las asignaciones de entradas/salidas a pines del encapsulado.
Este editor grfico genera automticamente un fichero de asignacin de pines en
modo texto de extensin .ucf, en nuestro caso se denomina ejemplo1.ucf. El
diagrama del flujo de diseo permite hacer la asignacin de pines tanto en el
entorno grfico (Assign Package Pins) como generando el fichero de texto (Edit
Constraints (Text)) bajo la entrada User Constraints del rbol de la ventana de
proyecto.

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

Figura 19. Editor de texto con el fichero de asignacin de pines.


El dispositivo a usar tiene puerto JTAG, por ende lo configuraremos, haciendo click
derecho sobre Generate Programming File de la ventana Proccess, la figura
muestra la eleccin JTAG Clock, luego click en Aceptar

Figura 20: Ventana de propiedades para editar el clock JTAG.


41

8.

Seleccionamos "boundary scan" y luego siguiente.

Figura 21: programacin en curso.


9. Luego seleccione "Automatically Connect to cable and select boundary scan
chain" y click en finalizar.
10. Aparecer un mensaje al cual le colocaremos OK

Figura 22: Proceso de verificacin BOUNDARY


11. Luego abriremos el archivo .BIT, en nuestro caso ejemplo1.bit, el mensaje que
aparecer se le coloca aceptar
42

Figura 23. Tareas disponibles para realizar sobre el dispositivo en modo configuracin.
Al final colocamos OK

43

Figura 24: Verificacin y activacin de borrar programacin anterior.


Con esto hemos logrado grabar el cdigo VHDL en la tarjeta y no resta ms que
comprobar su funcionamiento
NOTA: Es muy importante seleccionar Erase Before Programming para no daar el
chip.
Luego se crea un fichero de programacin *.svf si ha salido todo con xito.
RTL SCHEMATIC DE LA VENTANA PROCESS
Aqu se puede observar despus de la compilacin el diseo esquemtico que es un
objeto que se puede usar cuando se desea programar mediante diagrama
esquemtico.

44

Figura 25: Bloque esquemtico del comparador


Tambin podemos simular cualquier proceso usando la herramienta ModelSim,
una vez creado el programa en project navigator, doble click en Launch Modelsim
Simulator, para que aparezca antes deberiamos haber configurado que la simulacion
se haria con Modelsim, porque tambien se puede haber elegido ISE Simulator.

Figura 26: Abrir el Simulador ModelSim.


Por lo tanto tenemos la siguiente ventana en que se podra simular sin necesidad de
tener las tarjetas Digilab 2SB y DIO4
45

Figura 27: Ventana de trabajo del simulador ModelSim XE III 6.0a.

46

SUMADOR BINARIO
Creamos un nuevo proyecto:

Figura 28: creacin de un nuevo proyecto para un sumador.


Click en siguiente
Debemos asegurarnos de haber ingresado las propiedades correctas del dispositivo,
tal como se observa en la figura 29:

47

Figura 29: Configurar segn la tarjeta Digilab 2SB


Click en siguiente
En el New Project Wizard, click en New Source. En New Source Wizard, seleccionar
VHDL module y escribir el nombre del archivo.

48

Figura 30: Creacin de un nuevo archivo para el sumador


Click siguiente. En este ejercicio, se diseara un sumador (adder) con X, Y y Z
entradas y S y C salidas. Por lo tanto, colocar adecuadamente los puestos y luego
click en siguiente

49

Figura 31: Ingreso de las entradas y salidas.


Click en siguiente, siguiente y finalizar. Esto abrir un editor donde se podr
ingresar el cdigo VHDL

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

Figura 33: Ventana de trabajo con el programa del sumador.


Guardar el archivo
El proyecto puede ser simulado usado ModelSim o ISE Simulator. Para detalles de ISE
Simulator dirjase al tutorial de ISE Simulator. ModelSim lleva un similar proceso como
bosquejo general esto se puede ver en el tutorial de ModelSim. Esto se puede realizar
similar al ejemplo presentado en el capitulo anterior.

51

Figura 34: Ventana ModelSim XE III 6.0a del sumador


Cuando el diseo es verificado, abrir el editor User Constraints Editor y asignar los
pines correctos a las entradas y salidas.

52

Figura 35: Ingreso manual de la asignacin de pines (edit constrainst (Text)).


Seguir los pasos para la implementacin en las tarjetas mencionado en el capitulo
anterior.

53

CAPITULO IV
COMPARADOR BINARIO
Creacin de cdigo VHDL mediante captura esquemtica (*.sch)
Para ellos crearemos un nuevo proyecto: eligiendo Schematic

Figura 36: Nuevo proyecto para diseo esquemtico.


Click en Siguiente. Elegimos segn las caractersticas de las tarjetas, de la misma
manera de los proyectos anteriores

54

Figura 37: Configuracin del hardware a usar.


Click en siguiente, click en New source, debemos elegir Schematic, colocar nombre
a nuestro archivo y dar la ubicacin donde se guardara.

Figura 38: creacin de nuevo archivo de captura esquemtica.


Click en siguiente, finalizar, luego click en siguiente, siguiente y finalizar,
tendremos la siguiente ventana, donde tenemos las ventanas desing sum (figura 39)
y proyecto3.sch (figura 40) donde haremos el esquema:

55

Figura 39: ventana resultante al ingresar la configuracin del nuevo proyecto


esquemtico (Desing Sum).

Figura 40: ventana resultante al ingresar la configuracin del nuevo proyecto


esquemtico (proyecto3.sch).
En esta ventana se podr disear cualquier circuito, y luego tambin se puede generar
su cdigo VHDL, el proceso de simulacin es similar a procesos anteriores
mencionados.
En este caso tenemos un multiplexor 2 a 1: se podr cambiar los nombres de los
puertos mediante sus propiedades tal como se muestra en la figura 41:

56

Figura 41: Visualizacion del multiplexor 2 a 1.


Luego para verificar que nuestro esquema esta correcto hacemos un click en el checo
(men tolos/check schematic), debe mostrarse similar a la figura mostrada, sin
errores.

Figura 42: Verificacin de errores del diseo esquemtico.


Simulamos haciendo dobre click en synthesize -XST, y nos muestra la consola libre
de errores, aqu tambin notar que se genera un archivo.vhd

57

Figura 43: Cdigo VHDL generado del multiplexor 2 a 1:


Que tambin se puede simular en ModelSim o con ISE Simulator.

58

Figura 44: Simulacin del multiplexor en ModelSim XE III 6.0a.


2.5. DISCUSION
El trabajo de investigacin que hemos desarrollado ha tenido en cuenta el
avance tecnolgico y el uso apropiado de las tarjetas Digilab con la que cuenta
el laboratorio de Ingeniera Electrnica para resolver problemas de diseos y
simular ejemplos de circuitos digitales en general.
2.6. CONCLUSIONES
-

Es posible verificar el funcionamiento del sistema dentro del proceso de Diseo


sin necesidad de implementar el circuito.

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.

Las herramientas de sntesis tienen la capacidad de convertir una descripcin


hecha VHDL a compuertas lgicas y, adems, optimizar dicha descripcin de
acuerdo a la tecnologa utilizada.

Esta metodologa elimina el antiguo mtodo tedioso de diseo mediante


compuertas, reduce el tiempo de diseo y la cantidad de errores producidos
por el armado del circuito.

Las herramientas de sntesis pueden transformar automticamente un circuito


obtenido mediante la sntesis de un cdigo en VHDL, a un circuito pequeo y
rpido. Adems, es posible aplicar ciertas caractersticas al circuito dentro de la
descripcin para afinar detalles (retardos, simplificacin de compuertas, etc.)
en la arquitectura del circuito y que estas caractersticas se obtengan en la
sntesis de la descripcin.
59

Las descripciones en VHDL proporcionan documentacin de la funcionalidad


de un diseo independientemente de la tecnologa utilizada.

Un circuito hecho mediante una descripcin en VHDL puede ser utilizado en


cualquier tipo de dispositivo programable capaz de soportar la densidad del
diseo. Es decir, no es necesario adecuar el circuito a cada dispositivo porque
las herramientas de sntesis se encargan de ello.

Una descripcin realizada en VHDL es ms fcil de leer y comprender que los


netlist o circuitos esquemticos.

2.7. RECOMENDACIONES
-

Se recomienda la utilizacin de las tarjetas Digilab 2SB que tiene el FPGA


XILINX 2S200E y la tarjeta DIO4 en los cursos de Ingeniera Electrnica tales
como Circuitos Digitales, Sistemas Digitales, Procesamiento Digital de Seales
y Control automtico debido a la utilidad de describir los diseos en VHDL
(Lenguaje de descripcin de Hardware).

Se recomienda leer la bibliografa referente a lenguaje de descripcin de


Hardware (VHDL) debido a que no ha sido propsito especfico de nuestra
investigacin.

Se motiva a los estudiantes y en general a los investigadores desarrollar


algoritmos para hacer uso de los puertos VGA y PS/2 que tiene la tarjeta
Digilab DIO4.

2.8. REFERENCIAS BIBLIOGRAFICAS


1. Fernando Nuo Garcia, Very High Speed Integrated Circuit Hardware
Description Language (VHSIC HDL).
60

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

Tabla 1: Configuracin de los puertos de la tarjeta 2SB y DIO4.


62

Tabla 2: Configuracin de los puertos de la tarjeta 2SB y DIO4.


63

64

You might also like