Vous êtes sur la page 1sur 14

Umbral Cientfico

ISSN: 1692-3375
umbralcientifico@umb.edu.co
Universidad Manuela Beltrn
Colombia

Ballesteros Larrotta, Dora Mara; Pirajn Aranguren, Alexis Javier


DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS LGICOS PROGRAMABLES
FPGAS
Umbral Cientfico, nm. 4, junio, 2004, pp. 37-49
Universidad Manuela Beltrn
Bogot, Colombia

Disponible en: http://www.redalyc.org/articulo.oa?id=30400406

Cmo citar el artculo


Nmero completo
Ms informacin del artculo
Pgina de la revista en redalyc.org

Sistema de Informacin Cientfica


Red de Revistas Cientficas de Amrica Latina, el Caribe, Espaa y Portugal
Proyecto acadmico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

Msc. Dora Mara Ballesteros Larrotta 1


Msc.(c) Alexis Javier Pirajn Aranguren 2

RESUMEN
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 5.7 y para las etapas de diseo restantes
se utiliz ISE Foundation 6.1; ambos programas de la empresa Xilinx.
ABSTRACT
FPGAs are a great solution for prototyping because they offer designers the flexibility to test, due
to it, we development as an example, a combinational circuit by programming the XCS200E Spartan
with VHDL language. To validate the design simulations were done in ModelSim 5.7 simulation
tool, for the others design stages, we used ISE Foundation 6.1, both of them of the Xilinx Company.
Palabras clave: circuitos combinacionales, circuitos secuenciales, ISE Foundation, ModelSim, Unidad
arimtico-logica (ALU).
Keywords: combinational circuits, synchronous circuits, ISE Foundation, ModelSim, Arithmetic Logic
Unit.
Nomenclatura:
ALU: unidad aritmtico- lgica
CAE: asistencia para ingeniera utilizando un computador
CAD: diseo asistido por computador.
ASIC: circuito integrado especfico a una aplicacin
HDL: lenguaje de descripcin de hardware
VHDL: lenguaje de descripcin de hardware para dispositivos de alta velocidad
PLD: dispositivo lgico programable
FPGA: campo de arreglo de compuertas programables.
PROM: Es un PLD en el que las uniones en la matriz de puertas AND es fija, siendo programables
las uniones en la matriz de puertas OR.
PAL: dispositivo programable de las uniones de compuertas AND
PLA: dispositivo programable de las uniones AND y OR.
DSP: dispositivo dedicado al procesamiento digital de seales

1 Docente Investigador. Grupo de Investigacin Sistemas de Adquisicin, Procesado y Anlisis de Seales Bioelctricas: SAPAB. UMB
2 Docente Universidad Piloto de Colombia, Jefe de rea Sistemas Inalmbricos.

37

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

INTRODUCCIN
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 (DSPs), 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. [1]
A. 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 Instrumets, 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 [1],[2]. 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.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

B. Entidades de Diseo de VHDL


El diseo y modelado de sistemas digitales en VHDL, divide el diseo en bloques funcionales que
se denominan componentes. Cada componente corresponde a una entidad de diseo: design entity,
que se modela por separado como parte de un sistema. La jerarqua se logra utilizando design
hierarchy. Las entidades de diseo se construyen en VHDL usando cinco formas diferentes de
unidades de diseo, las cuales son: entity, package, configuration, architecture: y package body.
[1]-[3]

Fig. 1. Unidades de diseo de


VHDL. Tomado de [1]

- Entity declaration: la declaracin de una entidad describe la interfaz de una unidad de diseo la
cual se comunica con otras entidades del mismo ambiente. La interfaz incluye todas las entradas,
salidas y seales bidireccionales en la declaracin del puerto.
- Architecture body: una arquitectura describe la composicin funcional de un diseo.
- Configuration declaration: es una unidad de diseo primaria usada para enlazar una entidad a
una arquitectura para formar los componentes de un diseo.
- Package declaration: es un depsito que permite almacenar declaraciones que son comnmente
usadas para ser accedidas por mltiples unidades de diseo.
- Package body: se relaciona con una declaracin tipo paquete y contiene los subprogramas de
las funciones y procedimientos declarados en el paquete asociado.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

C. Diseo de herramientas automatizadas


Las herramientas software que se utilizan para asistir en el diseo se dividen en dos categoras
[4]: la primera, CAD: computer aided design y la segunda, CAE: computer aided engineering, para
el diseo de sistemas digitales las herramientas estn compuestas por las dos clases de software.
Entre las herramientas disponibles para la simulacin de un modelo hardware, se tienen: ISE
Foundation, Leonardo Spectrum, CADENCE HDL, MAXPLUS, entre otros. Cada una de estas
herramientas permite la descripcin, sntesis, simulacin y programacin de los dispositivos lgicos
programables.
DISPOSITIVOS LOGICOS PROGRAMABLES PLD.
Un dispositivo programable es aquel que contiene una arquitectura general predefinida en la que
el usuario puede configurar a partir de un conjunto de herramientas de desarrollo, dentro de estos
dispositivos encontramos PLAs, PROMs, PALs, GALs, CPLDs y FPGAs segn su orden de complejidad
y versatilidad [5]. Las FPGA son matrices de puertas elctricamente programables que contienen
mltiples niveles de lgica. Se caracterizan por altas densidades de elementos, alto rendimiento,
un gran nmero de entradas y salidas disponibles por el usuario y un esquema de interconexin
flexible, tal y como se presenta en la Fig. 2.

Fig. 2. Arquitectura interna


FPGA. Tomado de [6]

Los bloques lgicos (CLB) permiten realizar la descripcin de diseo de un mdulo en particular y
la interconexin entre ellos es definida por el usuario. Puede contener desde 1000 hasta 100000
CLBs por FPGA [7].

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

A. Flujo de diseo en una FPGA: Los pasos presentados en la Fig 3. muestran el flujo de informacin
para el diseo y puesta en marcha de un sistema digital sobre un dispositivo lgico programable.
- Especificacin: Relaciona la aplicacin con los elementos de hardware involucrados, datos de
entrada y salida, velocidad de operacin, etc.
- Cdigo HDL: Una vez definida la arquitectura dedicada, se procede a realizar la descripcin de
la misma utilizando algn lenguaje HDL sobre una herramienta de diseo.
- Depuracin del cdigo: Consiste en la verificacin de sintaxis y lgica del cdigo HDL.
- Sntesis: Es la etapa en la cual el cdigo es traducido o interpretado como compuertas y conexiones
elctricas para cumplir con el objetivo de diseo propuesto.

ISE FOUNDATION
Este programa permite la descripcin en lenguajes
VHDL, Verilog, ABEL, UCF [9]. La pantalla est
dividida en cuatro subpantallas principales, tal y
como se presenta en la Fig 4. 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 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. La ltima ventana se encuentra a la
derecha y es una interfaz multi- documento (MDI)
para la visualizacin de los archivos de texto ascii
y el cdigo HDL

Fig. 3. Etapas de diseo para FPGAs.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

Fig. 4. Interfaz del proyecto: Interface Project Navegator

Fig. 5. Ventana fuentes del proyecto: Sources in P

Fuentes en la pantalla del Proyecto: esta ventana consiste de tres etiquetas que le suministran
informacin al usuario: module view, snapshot view y library view.
Procesos en la ventana actual: esta ventana contiene las opciones de depuracin del cdigo,
asignacin de pines en la FPGA, chequeo de sintaxis, entre otros. Esta subventana se presenta
en Fig 6.
Consola: despliega errores, advertencias e informacin adicional.
EJEMPLO DE DISEO: UNIDAD ARITMTICO
LGICA (ALU)
Una unidad aritmtico lgica -ALU-, es una unidad
que de acuerdo al valor lgico de los bits de
seleccin, se realiza una funcin en particular.
A.Especificacin del diseo
Las funciones a implementar en la ALU con el
valor de seleccin, se presentan en la Tabla I.

Fig. 6. Procesos en la ventana actual: processes for source

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

TABLA I. DEFINICIN DE LAS OPERACIONES DE LA ALU

La operacin de suma puede generar acarreo, por lo que se debe adems agregar una bandera
la cual se establece como 1 lgico cuando tiene carry y como 0 cuando no tiene.
El nmero de bits de los vectores A y B es de 8, al igual que el vector de salida.
La FPGA que se utiliza es una Spartan IIE XC2S200E-PQ208 y el lenguaje a utilizar es VHDL.
B. Cdigo HDL
Para la descripcin de la ALU se utiliza lenguaje VHDL el cual se presenta en la ventana multidocumento de ISE FOUNDATION: Fig 7.
Fig. 7. Parte del cdigo VHDL de la ALU, editado
en la ventana multi-documento.

C. Depuracin del cdigo


Se realiza haciendo doble click sobre View VHDL Instantiation Template de la opcin Design Entry
Utilities de la ventana Processes for Source.
Started process View VHDL Instantiation Template.

Compiling vhdl file C:/Xilinx/./ALU/alu.vhd in Library work.


Entity <alu> (Architecture <Behavioral>) compiled.
tdtfi(vhdl) completed successfully.
Completed process View VHDL Instantiation Template.

Fig. 8. Mensaje en la ventana de consola.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

Una vez verificado que el cdigo VHDL de la ALU est correctamente escrito, se realiza la sntesis
del diseo.
D. Sntesis del Diseo
El reporte de los recursos utilizados en el diseo de la ALU, se presenta al hacer click sobre View
Synthesis Report de la opcin Synthesize XST de la ventana Processes for Source. Para esta
aplicacin, se utilizaron los recursos que se presentan en la Tabla I.

TABLA II. UTILIZACIN DE RECURSOS DE LA FPGA XCS200E

E. Simulacin
Para la simulacin de la ALU, se utiliza el programa ModelSim [10]. El primer paso consiste en
compilar el archivo vhdl correspondiente, posteriormente se abren las ventanas wave y signal , las
cuales van a permitir forzar los valores de los puertos de entrada A, B y la seal de seleccin sel
(ventana signal) y ver la simulacin del mdulo ALU (ventana wave).
La ventana signals presenta las seales definidas en entity. Los valores de las seales de entrada
sel, a, b-, se forzan, mientras que los valores de las seales de salida y, ban-, se dejan
indeterminados: undefined; tal y como se presenta en la Figura 9.
La simulacin para A=10101010, B=10101010 y
los ocho posibles valores de sel, se presenta en
la Figura 10.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

Fig. 10 Simulacin en tiempo de la ALU para A y B fijos y sel todos los valores.

F. Asignacin de pines
Se utiliza la tarjeta DIO4 para la visualizacin del funcionamiento de la ALU, la cual es un perifrico
que contiene 8 switches, 5 pulsadores, 8 leds y 4 displays de 7 segmentos. Esta tarjeta se conecta
con la DS2B a travs de alguno de los puertos de expansin.

Se seleccionan los pines de la DIO4 que


corresponden a BTN3, BTN4, BTN5 los cuales
se utilizan como seal de seleccin-, SW1, SW2,
SW3, SW4, -para los bits ms significativos de la
seal de entrada A-, SW5, SW6, SW7, SW8, -para
los bits ms significativos de la seal de entrada
B-, los leds LED5 hasta LED8 para la seal de
salida de la ALU y LED4 para el acarreo de la
operacin de suma.
La Tabla II, presenta la relacin de los pines de
la tarjeta D2SB [11] con su correspondencia con
los pines de la tarjeta DIO4, [12] para las seales
mencionadas en el prrafo anterior.

Fig. 11 Puertos de expansin y enrutamiento de las seales


para la tarjeta DS2B. Tomado de [9]

Para efectuar la asignacin de los pines, se debe


seleccionar la opcin User Constraints Assign
Package Pin, de la ventana Processes for Source;
la cual se presenta en Fig 12.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

TABLA II.
RELACIN DE PINES D2SB & DIO4

En la parte izquierda aparecen los puertos definidos en entity, y en la parte derecha los pines de
la FPGA.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

Fig. 13. Pantalla para la programacin del dispositivo

G. Programacin
El software genera el archivo de programacin, el cual configura los componentes internos del
dispositivo. Este proceso se realiza mediante 4 pines del PLD, los cuales son: TDO, TDI, TMS y
TCK, y desde el computador por el puerto paralelo. Dado que el dispositivo a usar es una FPGA,
su naturaleza es RAM, es decir que cada vez que se suspenda la fuente de alimentacin la
configuracin del dispositivo desaparece.
Las Fig. 13 y Fig 14, muestran las ventanas de configuracin, dentro de las cuales se puede
seleccionar el tipo de puerto a usar para la programacin, as como la velocidad y el nmero de
dispositivos que se quieren configurar con la misma descripcin.

Fig. 14 Programacin en curso

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

CONCLUSIONES
La descripcin en VHDL de un sistema digital permite independencia de las referencias de los
circuitos integrados comerciales, ya que est descripcin se relaciona con el funcionamiento del
dispositivo que se est modelando, y de esta forma no se pierde vigencia en el diseo realizado.
El ahorro en tiempo en la elaboracin de aplicaciones es bastante notorio, siempre y cuando se
tenga un conocimiento previo del lenguaje de descripcin de hardware que se utiliza y fundamentos
tericos de sistemas digitales. Las modificaciones en el diseo no necesitan un esfuerzo adicional
notable con respecto a los desarrollos hardware convencionales.
Las herramientas CAE-CAD, permiten no solamente programar dispositivos CPLDs y FPGAs, sino
que adems permiten realizar la simulacin del diseo, de esta forma se puede verificar su correcto
funcionamiento.
Debido a los recursos totales disponibles en las FPGAs, se pueden realizar diseos bastante
complejos, que contengan integrados como procesadores, DPSs, entre otros, con la ventaja de
desarrollarlo de acuerdo a las condiciones especficas de la aplicacin.

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIV


LGICOS PROGRAMABLES FPGAS

BIBLIOGRAFA
[1].
D J Smith. HDL Chip Design. A practical guide for
designing, synthesizing and simulating ASICs and FPGAs
using VHDL or Verilog. 1998
[2].
M A Freira. Introduccin al lenguaje VHDL.
Universidad Politcnica de Madrid.
[3].
IEEE Standard VHDL Languaje Reference Manual,
IEEE Standard 1076. 2000
[4].
B Stephen. Fundamentals of digital logic In VHDL.
Mc Graw Hill. 2000
[5].
S Brawn, J Rose. Architecture of FPGAs and CPLDs:
A Tutorial. Disponible en:
http://www.eecg.toronto.edu/~jayar/pubs/brown/survey.pdf
[6].
Xilinx. An Introduction to Xilinx Products. 1999.
Disponible en:
http://bwrc.eecs.berkeley.edu/Research/Pico_Radio/Test
_ B e d / H a r d wa r e / D o c u m e n t a t i o n / X i l i n x / i n t r o. p d f
[7].
XcellJournal. The authoritative Journal for
programmable logic users. Issue 46, Summer 2003. Xilinx,
Inc.
[8].
ISP Standards & Specifications. IEEE Std 1149.1
Background. Disponible en:
http://www.xilinx.com/xlnx/xil_prodcat_product.jsp?title
=isp_standards_specs#1149.1
[9].
ISE 6 In Depth Tutorial. Disponible en
http://direct.xilinx.com/direct/ise6_tutorials/ise6tut.pdf
[10]. ModelSim. Xilinx Edition II. Tutorial. Version 5.7c
[11]. Digilent D2-SB. System Board. Reference Manual.
Sep, 2003. Disponible en:
http://www.digilentinc.com/Data/Products/D2SB/D2SBrm.pdf
[12]. Digilent DI04 Peripheral Board. Reference Manual.
Sep, 2003. Disponible en:
http://www.digilentinc.com/Data/Products/DIO4/DIO4 rm.pdf

Vous aimerez peut-être aussi