Vous êtes sur la page 1sur 14

Umbral Cientfico

Fundacin Universitaria Manuela Beltrn umbralcientifico@umb.edu.co ISSN: 1692-3375 COLOMBIA

2004 Dora Mara Ballesteros Larrotta / Alexis Javier Pirajn Aranguren DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS LGICOS PROGRAMABLES FPGAS Umbral Cientfico, junio, nmero 004 Fundacin Universitaria Manuela Beltrn Bogota, Colombia pp. 37-49

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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 DISPOSITIVOS 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.

38

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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.

39

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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].

40

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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.

41

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS LGICOS PROGRAMABLES FPGAS

Fig. 4. Interfaz del proyecto: Interface Project Navegator

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

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

42

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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.

43

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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.

44

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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. 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.
45

Fig. 11 Puertos de expansin y enrutamiento de las seales para la tarjeta DS2B. Tomado de [9]

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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.

46

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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


47

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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.

48

DISEO VHDL DE SISTEMAS DIGITALES SOBRE DISPOSITIVOS 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

49

Vous aimerez peut-être aussi