VHDL (Francisco Javier Ferrero)

download VHDL (Francisco Javier Ferrero)

of 82

Transcript of VHDL (Francisco Javier Ferrero)

UNIVERSIDAD DE OVIEDO

DESCRIPCIN DE CIRCUITOS DIGITALES MEDIANTE VHDL

Francisco Javier Ferrero Martn

21 de Mayo de 1999

INDICE

CAPTULO I: INTRODUCCIN1.1 1.2 Evolucin del diseo electrnico...........................................................................1 Lenguajes de descripcin de hardware................................................................4 1.2.1 1.2.2 1.2.3 1.3 Resea histrica de los HDLs......................................................................4 Modelado con HDLs: Niveles de abstraccin y estilos descriptivos...........5 Aportaciones de los HDLs al proceso de diseo..........................................6

Metodologa tpica de diseo.................................................................................8 1.3.1 Flujo de diseo descendente.........................................................................8

CAPTULO II: EL LENGUAJE VHDL2.1 Caractersticas principales..................................................................................12 2.1.1 2.1.2 2.1.3 Modelo de estructura..................................................................................12 Modelo de concurrencia.............................................................................14 Modelo de tiempo......................................................................................15

2.2

Unidades bsicas de diseo..................................................................................18 2.2.1 Declaracin de entidad...............................................................................18

2.2.2 Arquitectura................................................................................................19 2.2.3 Configuracin.............................................................................................23 2.2.4 Paquetes......................................................................................................24 2.2.5 Bibliotecas..................................................................................................25

2.3

Objetos, tipos de datos y operandos...................................................................26 2.3.1 Objetos del VHDL...................................................................................26 2.3.1.1 Constantes.....................................................................................27

i

2.3.1.2 Variables.......................................................................................27 2.3.1.3 Seales..........................................................................................28 2.3.1.4 Ficheros.........................................................................................29 2.3.2 Tipos de datos..........................................................................................29 2.3.2.1 Declaracin de tipos de datos.......................................................30 2.3.2.1.1 2.3.2.1.2 2.3.2.1.3 2.3.2.1.4 2.3.2.1.5 Tipos de datos escalares............................................31 Tipos enteros y tipos reales.......................................31 Tipos fsicos..............................................................32 Tipos enumerados.....................................................33 Expresiones y operadores..........................................34

2.4

Sentencias secuenciales..........................................................................................35 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 La sentencia wait..................................35 Asignacin a seal........37 Asignacin a variable.......39 La sentencia if...........39 La sentencia case......42 La sentencia loop..43 La sentencia exit...45 La sentencia next..45 Llamada secuencial a subprogramas....46

2.5

Sentencias Concurrentes....47 2.5.1 La sentencia process.48 2.5.2 Asignacin a seal concurrente.49 2.5.3 Asignacin concurrente condicional.49 2.5.4 Asignacin concurrente con seleccin..50 2.5.5 Sentencias estructurales.51 2.5.5.1 Componentes......51 2.5.5.2 Configuracin de un diseo54

2.6

Subprogramas......56 2.6.1 Funciones.56 2.6.2 Procedimientos....57 ii

CAPTULO III: DESCRIPCIN DE CIRCUITOS DIGITALES

3.1 3.2 3.3

Descripcin del sistema........................................................................................59 Lgica combinacional..60 Lgica secuencial..64 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 Descripcin de latches...64 La seal de reloj.64 Registros.........65 Contadores..67 Descripcin de MSMs........71

3.4

Recomendaciones generales................................................................................74 3.4.1 Recomendaciones para sntesis..................................................................74 3.4.1.1 Descripcin hardware................................................................74 3.4.1.2 Limpieza del cdigo......................................................................75

IV.

BIBLIOGRAFA...........................................................................................................77

iii

Captulo I: INTRODUCCIN

CAPTULO I: INTRODUCCIN

El objetivo de esta introduccin es mostrar que son los lenguajes de descripcin de hardware (HDL, Hardware Description Languages), cuando y como aparecen dentro de la evolucin del diseo electrnico y cuales son sus principales aportaciones de tales

lenguajes, as como su incidencia en el propio proceso de diseo.

Adems de presentar brevemente la evolucin del desarrollo electrnico, en este captulo se trata de ubicar el VHDL (VHSIC Hardware Description Language; donde VHSIC: Very High Speed Integrated Circuits) en el contexto del diseo electrnico, su origen, evolucin (impacto sobre las tcnicas EDA, Electronic Design Automation) y mbitos de aplicacin (modelado, simulacin, sntesis).

1.1

EVOLUCIN DEL DISEO ELECTRNICO

El desarrollo electrnico de los ltimos tiempos se ha visto fuertemente dominado y conducido por la impresionante evolucin de la microelectrnica desde su nacimiento en 1959-60. Durante los aos setenta, junto con la revolucin que suponen las memorias RAM y procesadores en forma de chip monoltico, se preparan las condiciones para el gran salto que el diseo microelectrnico dar en los aos ochenta.

El desarrollo de nuevas tecnologas, alternativas de fabricacin y diseo de circuitos integrados, junto con la evolucin de las metodologas y herramientas de diseo asistido por ordenador, han sido las innovaciones ms importantes de la dcada de los ochenta. Estas se han reflejado tanto en el continuo incremento de la complejidad y prestaciones de los chips, y por ende de los sistemas electrnicos, como en la gran difusin de las tcnicas, metodologa, y

1

Captulo I: INTRODUCCIN

herramientas de diseo de circuitos integrados que, junto con las nuevas alternativas de fabricacin, han ampliado el rango de posibilidades de los ingenieros de aplicacin, permitindoles disear chips especficos (Application Specific Integrated Circuits, ASICs) para los productos que desarrollan.

Todos estos factores han contribuido directamente a la evolucin de los recursos de clculo (procesadores, estaciones de trabajo, etc.) quienes a su vez tienen una incidencia decisiva en el desarrollo de nuevas herramientas y entornos integrados de diseo de diseo de sistemas electrnicos. Con el desarrollo y uso de tales herramientas para crear nuevos componentes se cierra el ciclo del soporte mutuo entre ambas tecnologas: microelectrnica e informtica.

La Figura 1-1 esquematiza como a partir de las especificaciones de un circuito y a fin de poder proceder a su fabricacin, el proceso de diseo de CIs atraviesa tres etapas o dominios diferentes: funcional o comportamental (algoritmos y funciones que indican la relacin o comportamiento entrada/salida, E/S, pero no su implementacin), arquitectual (componentes funcionales interconectados que definen la arquitectura/estructura de la implementacin sin detallar la realizacin fsica final) y fsico (se detalla una materializacin concreta a nivel elctrico y geomtrico para una determinada tecnologa). Obsrvese que la complejidad del diseo en trminos de volumen de informacin a manejar aumenta drsticamente a medida que avanzamos por estas fases, al incrementar la precisin y disminuir el nivel de abstraccin.

A finales de los ochenta se consolidan los niveles estructural y fsico, a la vez que los desarrollos sobre dispositivos programables complejos (FPGAs, CPLDs, FPLDs) empiezan a crecer en importancia frente a los ASICscustom. Con el nacimiento del VHDL (1987) se empiezan a desarrollar mtodos y herramientas para abordar el diseo a nivel funcional o comportamental, cuya implantacin definitiva se est produciendo durante esta dcada de los noventa.

En cuanto tecnologas, la CMOS sigue siendo la ms utilizada (75 por 100 del mercado) incluso creciendo. Las bipolares/ECL se mantienen alrededor del 15 por 100. Las BICMOS crecen hasta un 5 por 100. Las NMOS TTL decrecen considerablemente, junto con las nuevas tecnologas del tipo AsGa y similares se reparten el 5 por 100 restante.

2

Captulo I: INTRODUCCIN

Al nivel de ASIs los desarrollos full y semi-custom han perdido relevancia frente a las considerables prestaciones y complejidades que los dispositivos programables son capaces de asumir, de forma que solo producciones elevadas o requisitos muy especficos (velocidad, rea, consumo, confidencialidad) hacen necesarios los ASIC-custom.

Requisitos y Especificaciones

AL ION NC FU

Precisin/Complejidad

Funcionalidad E/S y Restricciones

Arquitectura Nivel Transf. Registros

Diseo Lgico Puertas

Niveles: - Elctrico - Bits (PLDs, FPGAs) - Geomtrico (CIs)

Figura 1-1. Pirmide de complejidad y niveles de abstraccin de las distintas fases del diseo electrnico

Con el avance que estn siguiendo las tecnologas submicrnicas (se estn desarrollando procesos CMOS con transistores de longitud de canal inferior a 0,3 m y capaces de albergar varios millones de dispositivos), una vez ms el cuello de botella del desarrollo microelectrnico va a estar en el diseo ms que en la tecnologa.

En cuanto a metodologas de diseo, los aos noventa se han caracterizado por una implantacin progresiva, en fase de consolidacin, de los lenguajes de descripcin de hardware (Verilog y VHDL) que, junto con las herramientas de simulacin y sntesis, promueven el uso de las llamadas metodologas de diseo descendentes (to-down). Se trata de concentrar el esfuerzo en la concepcin a nivel funcional-arquitectual, facilitando la 3

Dominios o Niveles de abstraccin

AL CTU ITE QU AR

ICO FIS

Captulo I: INTRODUCCIN

evaluacin de soluciones alternativas antes de abordar el diseo detallado y la implementacin fsica, dando lugar as al tambin llamado diseo de alto nivel.

1.2

LOS LENGUAJES DE DESCRIPCIN DE HARDWARE

Los lenguajes de descripcin de hardware (HDL) son lenguajes de alto nivel, similares a los de programacin (C, PASCAL, ADA, etc.), con una sintaxis y semntica definidas para facilitar el modelado y descripcin de circuitos electrnicos, desde las celdas base de un ASIC hasta sistemas completos, pudindose realizar estas descripciones a distintos niveles de abstraccin y estilos de modelado.

Los HDLs nacen para modelar el comportamiento de un componente de cara a su simulacin, aunque tambin se utilizan para describir el diseo de un circuito para su implentacin a travs de etapas de sntesis vlidas va simulacin

1.2.1 Resea histrica de los HDLs

Durante los aos ochenta, tras detectarse la necesidad de un lenguaje para dar soporte a las distintas etapas y niveles de abstraccin del proceso de diseo, se desarrollan y consolidan dos de ellos: Verilog y VHDL.

El VHDL (VHSIC Hardware Description Language) aparece como un proyecto del Departamento de Defensa de EEUU (1982), con el fin de disponer de una herramienta estndar e independiente para la especificacin y documentacin de los sistemas electrnicos a lo largo de todo su ciclo de vida. Tras las primeras versiones del lenguaje, el IEEE lo adopta y desarrolla como el HDL estndar (1 versin en 1987 y 2 en 1993).

El Verilog nace como un lenguaje de modelado ligado a un entorno de simulacin de la firma Gateway, pasando posteriormente a ser el simulador digital de Cadence Design Systems Inc., llegando a convertirse en un estndar de facto a nivel industrial. Al aparecer el VHDL como estndar IEEE, Verilog se encontr con un fuerte competidor, y en 1990 Cadence decide ofrecerlo como lenguaje de dominio pblico e inicia las gestiones para su estandarizacin formal, que se logra en 1995.

4

Captulo I: INTRODUCCIN

El desarrollo, difusin y estandarizacin de los lenguajes Verilog y VHDL, aunque slo sean herramientas bsicas para la descripcin de circuitos y sistemas electrnicos fue, y sigue siendo, un hecho determinante en el desarrollo de las nuevas metodologas y herramientas de diseo electrnico.

1.2.2

Modelado con HDLs: niveles de abstraccin y estilos descriptivos

Una de las caractersticas ms importantes de estos lenguajes es su capacidad para abordar descripciones a distintos niveles de abstraccin (funcional o comportamental, rquitectual o transferencia de registros, lgico o de puertas) y estilos de modelado (algortmico, flujo de datos, estructural)

Los niveles de abstraccin hacen referencia al grado de detalle en que se encuentra una determinada descripcin HDL respecto a la implementacin fsica de la misma. Puesto que el nivel ms bajo que trataremos directamente con los HDLs sern listas de componentes y conexiones a nivel de puertas podemos considerar que desde los HDL no abordamos el nivel fsico mostrado en la Figura 1-1, que quedara como el nivel ms bajo de abstraccin (donde se fijan todos los detalles para la implementacin real del circuito), por encima del cual se sita el nivel lgico o de puertas. As pues, desde la perspectiva de la simulacin y sntesis con HDLs, los niveles de abstraccin pueden quedar reajustados a los tres siguientes:

Funcional o comportamental, donde se indica el comportamiento del circuito o sistema como una relacin funcional entre las entradas y las salidas, pero sin hacer ninguna referencia a su implementacin.

Arquitectual o de transferencia de registros (RTL). A este nivel se desarrolla una particin en bloques funcionales y se planifican en el tiempo (ciclos de reloj) las acciones a realizar. Todava no se conocen los detalles de la realizacin final de cada bloque.

Lgico o de puertas. Los componentes del circuito estn expresados en trminos de ecuaciones lgicas o puertas y elementos de una biblioteca, pudiendo ser esta genrica (independiente de la tecnologa) o especfica de una tecnologa.

5

Captulo I: INTRODUCCIN

Otro aspecto o criterio de caracterizacin de los modelos HDL es el estilo de descripcin que, de forma simplificada, podemos distinguir entre los tres siguientes:

Algortmico: hace referencia a descripciones similares a los programas de software, que deben reflejar la funcionalidad del mdulo, componente o circuito, en forma de uno o ms procesos concurrentes que contienen descripciones secuenciales del algoritmo correspondiente.

Flujo de datos: descripciones basadas en ecuaciones o expresiones que reflejan el flujo de informacin y las dependencias entre datos y operaciones.

Estructural: en este estilo se reflejan directamente componentes por referencia y conexiones entre ellos a travs de sus puertos de entrada/salida.

Como se puede intuir, normalmente hay una cierta correlacin entre los niveles de abstraccin y estilos descriptivos. As pues, las descripciones algortmicas se usan ms a nivel comportamental, el flujo de datos se relaciona ms con el nivel RTL y al nivel de puertas el estilo descriptivo siempre es de tipo estructural.

Uno de los valores aadidos de estos lenguajes, y en especial del VHDL, es su capacidad para hacer convivir de forma natural descripciones mixtas-multinivel: distintos estilos y niveles de abstraccin para las distintas partes de un diseo. Una cierta descripcin estructural puede tener componentes desarrollados a nivel de puertas, otros a nivel RT en forma de flujo de datos y algunos todava en forma de algoritmos a nivel funcional. Esta es una situacin normal que va evolucionando a lo largo de todo el proceso de diseo hasta que, tras los correspondientes procesos de sntesis manual o automtica, todos los componentes del circuito a implementar estn detallados mediante una descripcin estructural a nivel de puertas

1.2.3

Aportaciones de los HDLs al proceso de diseo

Tanto el Verilog como el VHDL nacen con una sintaxis y una semntica definidas y dirigidas hacia el modelado para la simulacin de hardware. Sin embargo, rpidamente se abord su uso como soporte para todas las fases del proceso de diseo, y muy especialmente para las 6

Captulo I: INTRODUCCIN

etapas de sntesis y verificacin. Pasemos, pues, a comentar las ventajas ms relevantes que pueden suponer el uso de estos lenguajes:

Estos HDLs son interpretables tanto por las personas como por los ordenadores, pudiendo proporcionar soporte tanto a las reas estrictas de diseo (modelado, simulacin, sntesis, verificacin) como a las de comunicacin e intercambio de modelos entre los distintos equipos de trabajo.

Son lenguajes de disponibilidad pblica, no sometidos a ninguna firma ni patente. Estn definidos, documentados y mantenidos por el IEEE, quien garantiza su estabilidad y soporte.

Soportar descripciones con mltiples niveles de abstraccin, pudindose mezclar desde mdulos descritos a nivel comportamental hasta mdulos descritos a nivel de puertas. Con el mismo lenguaje se describe el circuito y el entorno de verificacin (banco de pruebas) para su simulacin/validacin

La utilizacin de un lenguaje nico a lo largo de todo el proceso de diseo simplifica la gestin del mismo (reduccin de herramientas y formatos). Proporcionan independencia de la metodologa, de herramientas y de tecnologa. En el caso de las herramientas CAD, los HDLs son lenguajes estndar que definen una sintaxis y una semntica de modelado para simulacin. As pues cualquier herramienta que cumpla con el estndar ha de aceptar y ejecutar (simular) de la misma forma cualquier modelo. Esta potabilidad no es tan aplicable a la sntesis ni a la verificacin formal, ya que la semntica del VHDL y del Verilog en estas reas no est definida desde el IEEE, y son los proveedores de CAD quienes hacen su propia interpretacin, dando lugar a pequeas divergencias.

Los HDLs, tanto por su definicin y diseo como por los niveles de abstraccin donde habitualmente se usan, son o pueden ser, totalmente independientes de la tecnologa final de implementacin de los circuitos. La descripcin VHDL de un circuito puede ser totalmente indiferente a la tecnologa de fabricacin, pero si se quiere tambin puede incluir informacin especfica de la implementacin final (retrasos, consumo, etc.)

La reutilizacin del cdigo HDL desarrollado en los proyectos anteriores es un hecho posible gracias a algunas de las caractersticas enunciadas anteriormente como ser lenguajes estndar, estables e independientes y su independencia

7

Captulo I: INTRODUCCIN

metodolgica, tecnolgica y del CAD. Una descripcin VHDL de un diseo, inicialmente desarrollado para una tecnologa (CMOS, BICMOS, etc.) e

implementacin (ASIC, FPGA, etc.), puede fclmente ser reutilizada en diseos o materializaciones posteriores donde la tecnologa, la alternativa de implementacin y/o el CAD pueden ser distintas

Como vemos, estos lenguajes pueden aportar ventajas importantes pero no debemos ignorar que tambin estn sujetos a algunas limitaciones:

Al ser lenguajes definidos por consenso en el seno de una comisin (especialmente el VHDL) tienden a ser complejos para contemplar la diversidad de opiniones. As mismo la evolucin del lenguaje mediante revisiones va comisin es lenta (5-6 aos para el VHDL) y con importantes cambios en cada nueva versin

La falta de una semntica formal para sntesis dificulta la portabilidad de los diseos entre los distintos entornos de sntesis (no todas las herramientas interpretan de las misma forma las mismas construcciones del lenguaje).

El VDHL, por sus caractersticas sintctico-semnticas, est mejor dotado para las descripciones a nivel funcional/algortmico, mientras que sus prestaciones se ven ms limitadas al trabajar a nivel de puertas.

1.3

METODOLOGA TPICA DE DISEO

Metodolgas, flujos y herramientas CAD de diseo electrnico son conceptos muy interrelacionados y no siempre fciles de distinguir. La metodologa es un concepto ms abstracto que hace referencia a procesos de diseo genricos que relacionan entre s los distintos niveles de complejidad y abstraccin por los que atraviesa el diseo de un circuito o sistema electrnico.

Por su parte los flujos de diseo son una personalizacin concreta de una cierta metodologa, para un tipo de circuitos o rea de aplicacin especfico, y contando con el soporte de unas determinadas herramientas de CAD. Distintos flujos de diseo pueden responder a una misma metodologa y un mismo flujo se puede implantar con distintas herramientas de CAD.

8

Captulo I: INTRODUCCIN

1.3.1

Flujo de diseo descendente (top-down)

Las caractersticas y ventajas de los HDL en general, y en especial de VHDL, estn facilitando y potenciando el desarrollo e implementacin de las metodologas de diseo descendente (top-down) que se basan en un uso intensivo de tales lenguajes (modelo/descripcin del circuito y de los bancos de pruebas), convenientemente soportados durante todo el proceso de diseo por herramientas de simulacin, sntesis y procesos de anlisis-verificacin. La Figura 1-2 muestra de forma esquemtica y genrica esta metodologa que se basa en un proceso de construccin o diseo descendente.

Especificacin Funcional del Diseo Diagrama de Bloques

Anlisis temporal

Simulacin funcional del VHDL

Sntesis Lgica

Sntesis del test

Simulacin a nivel de Puertas

Netlist de Puertas

Figura 1-2. Esquema genrico del flujo de diseo descendente

Cobertura de test Insuficiente

Pre-sntesis

Descripcin VHDL

9

Captulo I: INTRODUCCIN

A partir de la idea o concepto que se desea implementar en forma de sistema o circuito electrnico se ha de proceder a una primera fase de definicin de especificaciones. Hasta ahora esta ha sido la etapa menos formalizada y a la que no se presta la atencin que requiere, a pesar de que los resultados de la misma guan o dirigen muchas de las decisiones

posteriores durante el proceso de diseo. Con la llegada de los HDLs se estableci la tecnologa de base para dar el soporte necesario a la actividad de concepcin al nivel funcional.

Una vez fijadas las especificaciones, comienza la descripcin HDL de las mismas mediante un proceso de refinamiento gradual de la descripcin del circuito hasta alcanzar un modelo arquitectual-RT que sea sintetizable mediante procesos automticos guiados por el diseador.

A continuacin viene la etapa de sntesis lgica que tiene por objeto la obtencin de un esquema o lista de componentes y sus interconexiones basado en una determinada biblioteca de celdas y mdulos. El diseo resultante debe realizar la funcionalidad especificada, respetar las prestaciones requeridas (rea, velocidad, consumo) y garantizar la testeabilidad final del circuito.

Estas herramientas de sntesis RT-lgica automticas (Tabla 1-1) se implementan mediante distintos procesos de sntesis encadenados de forma transparente para el usuario. Estos procesos son:

1. Sntesis RT que determina los elementos de memoria y el conjunto de ecuaciones lgicas u operadores necesarios, en base a fases de particin, distribucin (scheduling) y asignacin (allocation) de recursos, bajo las restricciones impuestas por el diseador.

2. Sntesis lgica que se encarga de optimizar ecuaciones lgicas para minimizar el hardware necesario al nivel de puertas y registros utilizando algoritmos de reduccin y asignacin de estados, minimizacin lgica, eliminacin de redundancias, etc.

3. Mapeo tecnolgico que es una fase, muchas veces indistinguible en la sntesis lgica, en la que las puertas y registros se mapean de forma optimizada sobre los elementos

10

Captulo I: INTRODUCCIN

disponibles en la biblioteca de celdas y mdulos correspondientes a la tecnologa escogida para la implementacin del diseo.

A lo largo de estas fases se ha de incorporar al diseo las estrategias y el hardware necesario para asegurar la posterior testeabilidad del circuito. Estos son procesos semiautomticos, que adems de definir la estrategia de test y aadir las estructuras necesarias (scan-paths, modos ad-hoc, boundary-scan) se complementan con procesos de generacin y composicin de vectores de test que ayudan a obtener un conjunto reducido y ptimo de tales vectores con una buena cobertura de fallos (>96%) del circuito.

Despus de esta sntesis RT-lgica se obtienen los dos elementos bsicos para poder abordar las fases o etapas de diseo fsico: la lista de componentes y conexiones, las restricciones a cumplir y el conjunto de vectores de test. Con estas descripciones ya podemos iniciar los procesos de ubicacin y conexionado para generar la topografa y descripciones necesarias para la implementacin fsica del circuito.

Nombre del Compaa Producto Altera

Nivel de Sntesis

Tipo de Circuitos

Max+Plus (AHDL, VHDL) Synergy (VHDL, Verilog) Warp II, III (VHDL) Autologic (VHDL) Design Compiler (VHDL, Verilog) ViewSynthesis (VHDL, Verilog)

RTL, MEF RTL, MEF Test RTL, MEF

CPLD

Cadence

ASIC FPGA PLD FPGA

Cypress Mentor Graphics Synopsys

RTL, MEF Test, Datapath RTL, MEF Test RTL, MEF Test

ASIC FPGA ASIC FPGA ASIC FPGA

Viewlogic

Tabla 1-1. Principales herramientas de sntesis lgica 11

Captulo II: EL LENGUAJE VHDL

CAPTULO II: EL LENGUAJE VHDL

El objetivo de este captulo es realizar una presentacin de la sintaxis del lenguaje VHDL. No se pretende cubrir de forma exhaustiva todas las posibilidades del lenguaje, sino que se intenta cubrir los conceptos del lenguaje, con objeto de poder entender la materia contenida en el captulo de descripcin de circuitos digitales. Los contenidos del captulo se enfocan desde la perspectiva del VHDL-87. El capitulo contiene numerosos ejemplos, destinados a clarificar cada una de las caractersticas del lenguaje.

2.1

CARACTERSTICA PRINCIPALES DE VHDL

Tres son las caractersticas principales que incorpora VHDL enfocadas a facilitar o permitir la descripcin de hardware: un modelo de estructura, un modelo de concurrencia y unmodelo de tiempo. Estas caractersticas junto con la capacidad de describir funcionalidad que

le confieren las propiedades descritas en el captulo anterior, hacen de VHDL un lenguaje flexible y potente, que se adapta perfectamente a la descripcin de sistemas electrnicos a cualquier nivel de abstraccin.

2.1.1.

Modelo de estructura

De forma natural cualquier sistema electrnico puede dividirse en subsistemas ms pequeos. Por ello VHDL incorpora el concepto de estructura. Esta caracterstica nos permite realizar el modelo de un sistema digital cualquiera a partir de la referencia a las distintas partes que lo forman y especifican la conexin entre estas. Cada una de las partes, a su vez, pueden estar

12

Captulo II: EL LENGUAJE VHDL

modelas de forma estructural a partir de sus componentes, o bien estar descritas de forma funcional, usando los recursos de descripcin algortmica del lenguaje.

Al describir cualquier dispositivo en VHDL (desde una puerta hasta un sistema completo) el diseador debe definir dos elementos principales: la interfaz del dispositivo con el exterior (la entidad o entity) y la descripcin de la funcionalidad que realiza el dispositivo (la arquitectura o architecture). La interfaz de un dispositivo tiene por objeto definir que seales del dispositivo son visibles o accesibles desde el exterior, lo que se llaman los puertos (ports) del dispositivo. En la arquitectura se definir la funcionalidad que implementa dicho dispositivo, o sea, que transformaciones se realizarn sobre los datos que entren en los puertos de entrada, para producir nuevos valores sobre los puertos de salida.

Para poder utilizar elementos ya definidos en VHDL en descripciones estructurales de un nuevo diseo, VHDL incorpora el concepto de componente (component) y de referencia a un componente. Cualquier elemento modelado con VHDL puede ser usado como un componente de otro diseo. Para ello solamente es necesario hacer referencia al elemento a utilizar y conectar los puertos de su interfaz a los puntos necesarios para realizar el nuevo diseo. La Figura 2-1 ilustra esta idea, el sistema bajo desarrollo se forma a partir de dos subsistemas que se habrn definido con anterioridad. El diseador solo debe preocuparse de las entradas y las salidas de los subsistemas (su interfaz) y de la forma adecuada en que debe conectarlas para formar el nuevo sistema, pero no es necesario conocer cmo est descrito cada uno de los subsistemas.

U1:AND2 (a, b, c); U2:OR2 (c, d, e); a b d AND c e

OR

Figura 2-1. Modelo de estructura en VHDL

13

Captulo II: EL LENGUAJE VHDL

2.1.2 Modelo de concurrencia

El hardware es por definicin concurrente, en ultima instancia cualquier dispositivo digital est formado de un mar de puertas lgicas, todas ellas funcionando en paralelo. El elemento bsico que ofrece VHDL para modelar paralelismo es el proceso (process).

Un proceso puede entenderse como un programa, se compone de sentencias, puede llamar a subprogramas, puede definir datos locales, etc. En general, un proceso describe un comportamiento y el cdigo que contiene se ejecuta de forma secuencial. Pero todos los procesos contenidos en una descripcin VHDL se ejecutan de forma paralela. Desde este punto de vista un modelo VHDL puede entenderse como un mar de programas secuenciales ejecutndose de forma paralela. De hecho cualquier descripcin VHDL es transformada en un conjunto de procesos concurrentes equivalentes, y este mar de procesos concurrentes es la informacin de entrada del simulador.

Estos procesos que se ejecutan concurrentemente deben poder comunicarse (sincronizarse) entre ellos. El elemento necesario para comunicar dos procesos es la seal (signal). Cada proceso tiene un conjunto de seales a las que es sensible. Ser sensible a una seal significa que en cuanto se produzca un cambio en el valor de dicha seal (un evento en la seal), el proceso se ejecutar hasta que encuentre una sentencia de suspensin del proceso (wait). Al llegar a esta sentencia, el proceso quedar suspendido, esta suspensin ser por un perodo determinado de tiempo, o bien hasta que se produzca un nuevo evento en alguna de las seales a las que sea sensible dicho proceso. Aparte de poder suspender la ejecucin de un proceso (sentencia wait), este es un bucle infinito, o sea, al llegar a su final vuelve a ejecutarse desde el principio.

Para ilustrar mejor este concepto, la Figura 2-2 define los procesos equivalentes a una puerta

and y una puerta or de dos entradas cada una. Notar que en este ejemplo se utiliza la sea cpara sincronizar los dos procesos, siempre que se produzca un evento en la seal c, se ejecutar el proceso OR2.

Por supuesto, y dado el paralelismo en la ejecucin de los procesos, si en un momento de la simulacin se producen eventos sobre las seales de la lista de sensibilidad de ambos procesos (por ejemplo, en a y en d), los dos se ejecutan en ese tiempo de simulacin. 14

Captulo II: EL LENGUAJE VHDL

AND2: process begin c