Vhd(sistemas digitales ii trabajo)

23
Sistemas digitales II VHDL Ingeniería Electrónica | UNSAAC 1 INDICE 1.-Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.-Brebe reseña histórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.-Definiciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.-HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.-VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1.-Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.2.-Ventajas y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.-Lenguaje VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.-Aspectos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.-Estilos de descripción en VHDL . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.1.-Descripción algorítmica . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.2.-Descripcion flujo de datos . . . . . . . . . . . . . . . . . . . . . . 9 3.2.3.-Descripción estructural . . . . . . . . . . . . . . . . . . . . . . . . . .10 3.3.-Sintaxis y semántica básica de VHDL . . . . . . . . . . . . . . . . . .11 3.3.1.-Entidad VHDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 3.3.2.-Arquitectura VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 4.-Ejemplos aplicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 4.1.-Sumador completo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.-Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.- Descodificador de 7 segmentos . . . . . . . . . . . . . . . . . . . 20 5.-Anexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 6.-Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Transcript of Vhd(sistemas digitales ii trabajo)

Page 1: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

1

INDICE

1.-Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.-Brebe reseña histórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.-Definiciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.-HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.-VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.1.-Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.2.-Ventajas y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.-Lenguaje VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.-Aspectos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2.-Estilos de descripción en VHDL . . . . . . . . . . . . . . . . . . . . . . . 6

3.2.1.-Descripción algorítmica . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2.2.-Descripcion flujo de datos . . . . . . . . . . . . . . . . . . . . . . 9

3.2.3.-Descripción estructural . . . . . . . . . . . . . . . . . . . . . . . . . .10

3.3.-Sintaxis y semántica básica de VHDL . . . . . . . . . . . . . . . . . .11

3.3.1.-Entidad VHDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

3.3.2.-Arquitectura VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

4.-Ejemplos aplicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

4.1.-Sumador completo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.2.-Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.3.- Descodificador de 7 segmentos . . . . . . . . . . . . . . . . . . . 20

5.-Anexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

6.-Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 2: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

2

I.-Introducción

Breve reseña histórica

A mediados de los años sesenta se produce una fuerte evolución en los

procesos de fabricación de los circuitos integrados, y junto a las

tecnologías bipolares, surgen la MOS, principalmente la NMOS,

promoviendo el desarrollo de circuitos digitales hasta la primera mitad de

los ochenta.

En aquellas épocas, el esfuerzo de diseño se concentraba en los niveles

eléctricos de establecer características e interconexiones entre los

componentes básicos a nivel de transistor. El proceso de diseño era

altamente manual y tan solo se empleaban herramientas como el PSPICE,

para la simulación de esquemas eléctricos con modelos previamente

personalizados, a las distintas tecnologías.

A medida que pasaban los años, los procesos tecnológicos se hacían más

y más complejos. Los problemas de integración iban en aumento y los

diseños eran cada vez más difíciles de depurar y de dar mantenimiento.

Inicialmente los circuitos M.S.I.y L.S.I. se diseñaron medianamente la

realización de prototipos basados en módulos más sencillos. Cada uno de

estos módulos estaba formado por puertas ya probadas, este método

poco a poco, iba quedándose obsoleto. En ese momento (finales de los

años sesenta) se constata el enorme desfase entre tecnología y diseño.

La considerable complejidad de los chips que se pueden fabricar, implica

unos riesgos y costes de diseño desmesurados e imposibles de asumir por

las empresas. Es entonces, cuando diversos grupos de investigadores

empiezan a crear y desarrollar los llamados “lenguajes de descripción de

hardware” con sus características diferentes.

Empresas tales como IBM con su IDL, el TI-HDL de Texas Instruments, ZEUS de

General Electric, etc., así como los primeros prototipos empleados en las

universidades, empezaron a desarrollarse buscando una solución a los

problemas que presentaba el diseño de los complejos sistemas.

Page 3: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

3

Sin embargo, estos lenguajes nunca alcanzaron el nivel de difusión y

consolidación necesarias por motivos distintos. Unos, los industriales, por ser

propiedad de la empresa permanecieron encerrados en ellas y no

estuvieron disponibles para su estandarización y mayor difusión, los otros,

los universitarios, perecieron por no disponer de soporte ni mantenimiento

adecuado.

Alrededor de 1981 el departamento de Defensa de los Estados Unidos

desarrolla un proyecto llamado VHSIC (Very High SpeedIntegratedCircuit)

su objetivo era rentabilizar las inversiones en hardware haciendo más

sencillo su mantenimiento. Se pretendía con ello resolver el problema de

modificar el hardware diseñado en un proyecto para utilizarlo en otro, lo

que no era posible hasta entonces porque no existía una herramienta

adecuada que armonizarse y normalizarse dicha tarea, era el momento de

los HDL‟s.

VHDL vs M.S.I.

En 1983, IBM, Intemetricsy Texas Istruments empezaron a trabajar en el

desarrollo de un lenguaje de diseño que permitiera la estandarización,

facilitando con ello, el mantenimiento de los diseños y la depuración de los

algoritmos, para ello el IEEE propuso su estándar en 1984.

Tras varias versiones llevadas a cabo con la colaboración de la industria y

de las universidades, que constituyeron a posteriori etapas intermedias en

el desarrollo del lenguaje. El IEEE adoptó en diciembre de 1987 a VHDL

como su lenguaje HDL, dando un impulso a éste frente a sus competidores.

El estándar IEEE std 1076-1987 que constituyó el punto firme de partida de

lo que después de cinco años sería ratificado como VHDL.

La independencia en la metodología de diseño, en el proceso de

fabricación, su versatilidad para la fabricación de sistemas de complejas,

su posibilidad de reutilización, han hecho que VHDL se convierta con el

paso del tiempo en el lenguaje de descripción de hardware por

excelencia.

Page 4: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

4

II.-Definiciones

2.1.-HDL.-Los lenguajes de descripción hardware (HDLs, Hardware

DescriptionLanguages) permiten modelar sistemas digitales

completos.Mediante herramientas de software estos modelos

pueden luego “sintetizarse” para implementarlos como circuitos

reales.La utilización de HDLs y su posterior síntesis pueden tener como

objetivo la creación de un circuito integrado de propósito específico

(ASICs) o la implementación del circuito en algún dispositivo de

lógica programable (PLD‟s).

Al utilizar un HDL es importante tener en cuenta que se está

modelando hardware, y no escribiendo software.Existen varios HDLs

pero dos son los que predominan: Verilog y VHDL.

2.2.-VHDL

2.2.1.-Definición.- El significado de las siglas VHDL es VHSIC (Very High

SpeedIntegratedCircuit) Hardware DescriptionLanguage, es decir,

lenguaje de descripción hardware de circuitos integrados de muy

alta velocidad. VHDL es un lenguaje de descripción y modelado,

diseñado para describir, es una forma en que los humanos y

máquinas puedan leer y entender la funcionalidad y la organización

de sistemas hardware digitales, placas de circuitos y componentes.

VHDL fue diseñado como un lenguaje para el modelado y

simulación lógica dirigida por eventos de sistemas digitales, y

actualmente se utiliza también para síntesis automática de circuitos.

VHDL es un lenguaje con una sintaxis amplia y flexible que permite

el modelado estructural, en flujo de datos y de comportamiento de

hardware. VHDL permite el modelado preciso, en distintos estilos, del

comportamiento de un sistema digital conocido y desarrollado en

modelos de simulación.

Uno de los objetivos del lenguaje VHDL es el modelado. Modelado es

el desarrollo de un modelo para la simulación de un circuito o

Page 5: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

5

sistema previamente implementado cuyo comportamiento, por

tanto, se conoce. El objetivo de modelado es la simulación.

2.2.2.-Ventajas y limitaciones.-La síntesis a partir de VHDL constituye

hoy en día una de las principales aplicaciones del lenguaje con una

demanda de uso. Las herramientas de síntesis basadas en el

lenguaje permiten en la actualidad ganancias importantes en la

productividad de diseño.

Algunas ventajas del uso de VHDL para la descripción de hardware

son:

VHDL permite diseñar, modelar y comprobar un sistema desde

un alto nivel de abstracción bajando hasta el nivel de

definición estructural de puertas.

Circuitos descritos utilizando VHDL, siguiendo unas guías para

síntesis, pueden ser utilizados por diversas herramientas de

síntesis para crear e implementar circuitos.

Los módulos creados en VHDL pueden utilizarse en diferentes

diseños, lo que permite la reutilización del código. Además, la

misma descripción puede utilizarse para diferentes tecnologías

sin tener que rediseñar todo el circuito.

Al estar basado en un estándar (IEEE std 1076-1987, IEEE std

1076-1993) los ingenieros de toda la industria de diseño pueden

usar este lenguaje para minimizar errores de comunicación y

problemas de compatibilidad.

VHDL permite diseño Top-Down, esto es, describir (modelar) el

comportamiento de los bloques de alto nivel, analizarlos

(simularlos) y refinar su funcionalidad en alto nivel requerida

antes de llegar a niveles más bajos de abstracción de la

implementación del diseño.

Modularidad: VHDL permite dividir o descomponer un diseño

hardware y su descripción VHDL en unidades más pequeñas.

Alguna de las limitaciones que presenta el uso de VHDL son:

No permite describir sistemas analógicos. Sin embargo ya se

están desarrollando versiones analógicas y mixtas.

Page 6: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

6

No existe un estilo de descripción normalizado. Para síntesis se

requiere ajustar los estilos disponibles a la capacidad de

herramientas CAD.

Es posible sintetizar lógica solo de un subconjunto del lenguaje.

Las herramientas de síntesis no soportan los mismos

subconjuntos, y existen a veces diferencias al mudar de

herramientas.

3.-Lenguaje VHDL

3.1.-Aspectos generales

El VHDL va a ser interesante puesto que va a permitir dos tipos de

descripciones:

Estructura:VHDL puede ser usado como un lenguaje de netlistnormal y

corriente y corriente donde se especifican por un lado los componentes

del sistema y por otro sus conexiones.

Comportamiento: VHDL también se puede utilizar para la descripción

comportamental o funcional de un circuito. Esto es lo que distingue de un

lenguaje de Netlist. Esto es especialmente útil en simulación, ya que

permite simular un sistema sin conocer su estructura interna.

Muchas veces la descripción comportamental se divide a su vez en dos,

dependiendo del nivel de abstracción y del modo en que se ejecutan las

instrucciones. Estas dos formas comportamentales de describir circuitos son

las de flujo de datos y algorítmica.

3.2.-Estilos de descripción en VHDL

VHDL presenta tres estilos de descripción de circuitos dependiendo del

nivel de abstracción. El menos abstracto es una descripción puramente

estructural. Los otros dos estilos representan una descripción

comportamental o funcional, y la diferencia viene de la utilización o no de

la ejecución serie.

Mediante un sencillo ejemplo, que además sirve para ilustrar la forma en

que se escriben descripciones en VHDL, se van a mostrar estos tres estilos

de descripción.

Page 7: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

7

Ejemplo 3.1Describir en VHDL un circuito que multiplexe dos líneas de

entrada (a y b)de un bit, a una sola línea (salida) también de un bit; la

señal selec sirve para seleccionar la línea a(selec=’0’) o b(selec=’1’).

En la fig. 6 se muestra el circuito implementado con puertas lógicas que

realiza la función de multiplexación.

Fig. 6 Ejemplo básico de un esquema en VHDL

3.2.1.-Descripción algorítmica

La sintaxis del VHDL no es sensible a mayúsculas, por lo que se puede

describir como se prefiera. A lo largo de las explicaciones se pondrán

siempre las palabras clave del lenguaje en mayúsculas para distinguirlas de

las variables y otros elementos. Esto no significa que durante la descripción

de diseños se tenga que hacer así, de hecho resulta más rápido escribir

siempre en minúsculas.

En primer lugar, sea el tipo de descripción que sea, hay que definir el

símbolo o entidad del circuito. En efecto, lo primero es definir las entradas y

salidas del circuito, es decir, la caja negra que lo define. Se llama entidad

por que la sintaxis de VHDL esta parte se declara con la palabra clave

ENTITY. Esta definición de entidad, que suele ser la primera parte de toda

la descripción VHDL, se expone a continuación:

-- Los comentarios empiezan con dos guiones

ENTITY mux IS

Page 8: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

8

PORT (a: IN bit;B:IN bit;

C: IN bit;

Salida: OUT bit);

ENDmux;

Ésta porción del lenguaje indica que la entidad mux (que es el nombre

que se le ha dado al circuito) tiene tres entradas de tipo bit y una salida

también de tipo bit. Simplemente indica un línea que puede tomar

valores „0‟ ó „1‟.

La entidad de un circuito es única. Sin embargo, se mostró que un mismo

símbolo, en este caso entidad, podía tener varias vistas, que en el caso de

VHDL se llaman arquitecturas. Cada bloque de arquitectura, que es donde

se describe el circuito, puede ser una representación diferente del mismo

circuito. Por ejemplo, puede haber una descripción estructural y otra

comportamental, ambas son descripciones diferentes, pero ambas

corresponden al mismo circuito, símbolo, o entidad. Se muestra a

continuación la descripción comportamental del multiplexor:

ARCHITECTURE comportamental OF mux IS

BEGIN

PROCESS(a,b,selec)

BEGIN

IF (selec='0') THEN

salida<=a;

ELSE

salida<=b;

END IF;

END PROCESS;

END comportamental;

Más adelante se verá lo que hace un bloque PROCESS, de momento, y

como primera aproximación, se considerará que es una especie de

subrutina cuyas instrucciones se ejecutan secuencialmente cada vez que

alguna de las señales de la lista sensible cambia. Esta lista sensible es una

lista de señales que suele poner junto a la palabra clave PROCESS, y en el

caso del ejemplo es (a, b, selec).

Page 9: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

9

Esta descripción comportamental es muy sencilla de entender, ya que

sigue una estructura parecida los lenguajes de programación

convencionales. Es por lo que se dice que se trata de una descripción

comportamental algorítmica. Lo que se está indicando es simplemente

que si la señal selec es cero, entonces la salida es la entrada a, y si selec es

uno, entonces la salida es la entrada b. Esta forma tan sencilla de describir

el circuito permite a ciertas herramientas sintetizar el diseño a partir de una

descripción comportamental como la que se acaba de mostrar. La

diferencia con un Netlist es directa: en una descripción comportamental

no se están indicando ni los componentes ni sus interconexiones, sino

simplemente lo que hace, es decir, su comportamiento o funcioamiento.

3.2.2.-Descripcion flujo de datos.- La descripción anterior era puramente

comportamental, de manera que con una secuencia sencilla de

instrucciones se podría describir el circuito. Naturalmente, a veces resulta

más interesante describir el circuito de forma que esté más cercano a una

posible realización física del mismo. En ese sentido VHDL posee una forma

de describir circuitos que además permite la paralelización de

instrucciones, y que se encuentra más cercana a una descripción

estructural del mismo, siendo todavía una descripción funcional. A

continuación se muestran dos ejemplos de una descripción concurrente,

también llamada de flujo de datos o de transferencia entre registros:

ARCHITECTURE flujo1 OF mux IS

SIGNALnosel,ax,bx:bit;

BEGIN

nosel<=NOTselec;

ax<=a ANDnosel;

bx<=b ANDselec;

salida<=ax ORbx;

END flujo1;

ARCHITECTURE flujo2 OF mux IS

BEGIN

salida<=a WHENselec='0' ELSE

b;

END flujo2;

En la descripción de la izquierda hay varias instrucciones todas ellas

concurrentes, es decir, se ejecutan cada vez que cambia alguna de las

señales que intervienen en la asignación. Este primer caso es casi una

descripción estructural, ya que de alguna manera se están describiendo

las señales (cables) y los componentes que la definen; aunque no es

Page 10: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

10

estructural, ya que en realidad se trata de asignaciones a señales y no una

lista de componentes y conexiones. El segundo caso (derecha) es también

una descripción de flujo de datos, aunque basta una única instrucción de

asignación para definir el circuito.

3.2.3.-Descripción estructural.- Aunque no es la característica más

interesante del VHDL, también permite ser usado como Netlist o lenguaje

de descripción de estructura. En este caso esta estructura también estaría

indicada dentro de un bloque de arquitectura, aunque la sintaxis interna es

completamente diferente:

ARQUITECTURAestructuraOF mux IS

SIGNALax,bx,nosel:bit;

BEGIN

u0:ENTITYinvPORT MAP(e=>selec,y=>nosel);

u1:ENTITY and2 PORT MAP(e1=>a,e2=>nosel,y=ax);

u2:ENTITY and2 PORT MAP(b,selec,bx);

u3:ENTITY or2 PORT MAP(e1=>ax,e2=>bx,y=salida);

END estructura;

Se observa fácilmente que esta descripción es un poco más larga u mucho

menos clara que las anteriores. En el cuerpo de la arquitectura se hace lo

que en un Netlist normal, es decir, se ponen los componentes y sus

interconexiones. Para los componentes se utilizarán entidades que estarán

definidas en alguna biblioteca, y para las conexiones se usarán señales

que se declararán al principio de la arquitectura.

Al igual que ocurre en cualquier netlis, las señales o conexiones deben

tener un nombre. En el esquema se le han puesto nombres a las líneas de

conexión internas al circuito. Estas líneas hay que declararlas como SIGNAL

en el cuerpo de la arquitectura y delante del BEGIN. Una vez declaradas

las señales que intervienen se procede a conectar entre sí las señales y

entidades que representan componentes. Para ello la sintaxis es muy

simple. Lo primero es identificar y poner cada componente, que es lo que

comúnmente se conoce como replicación, es decir, asignarle a cada

componente concreto un símbolo. En este ejemplo se le ha llamado u a

cada componente y se le ha añadido un número para distinguirlos, en

Page 11: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

11

principio el nombre puede ser cualquier identificador válido y la única

condición es que no haya dos nombres iguales. A continuación del

nombre viene la entidad correspondiente al componente, que en este

caso puede ser una and2, una or2 o una puerta inversora inv. Después se

realizan las conexiones poniendo cada señal en su lugar correspondiente

con las palabras PORT MAP. Así los dos primeros argumentos en el caso de

la puerta and2 son las entradas, y el último es la salida. De esta forma tan

simple se va creando el netlisto definición de la estructura.

3.3.-Sintaxis y semántica básica de VHDL

Los circuitos digitales realizan operaciones (sumas, comparaciones,

cuentas, almacenamiento, etc.) sobre señales digitales utilizando una

combinación de puertas lógicas, registros, memorias y dispositivos de

entrada y salida. VHDL provee varios tipos de datos, operadores y

sentencias para modelar el funcionamiento del circuito lógico y

representar sus señales y componentes.

Una descripción de un circuito en VHDL se hace en dos partes claramente

definidas para separar la interfaz del circuito lógico (entidad) de la

implementación de la función lógica (arquitectura). Toda descripción

circuital en VHDL consta de una única entidad y de una o más

arquitecturas. Puede existir más de una arquitectura para una entidad

porque usualmente es posible definir varias soluciones para una función

lógica.

3.3.1.-Entidad VHDL.-La entidad (ENTITY) es un bloque que define la

configuración de las entradas y salidas del circuito, es decir, especifica

su interfaz o la manera en que el circuito puede ser usado o conectado a

otros circuitos. También sirve para definir parámetros del circuito

(números de bits, límites de cuentas). La sintaxis de una entidad es:

Page 12: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

12

Una entidad puede contener dos secciones: GENERIC y PORT. En la

primera sección podemos colocar parámetros del diseño, y en PORT se

identifican los puertos de interfaz del circuito. Cada puerto es una señal

que tiene nombre (identificador de la señal), modo de conexión y tipo de

dato.

En las descripciones VHDL es indiferente utilizar letras mayúsculas o

minúsculas, a excepción de los valores constantes que usualmente se

deben colocar en mayúsculas. Los comentarios se insertanen cada línea

escribiendo primero dos guiones seguidos (--).

MODOde las señales

Existen cuatro modos de interconexión de las señales con el medio exterior:

IN La señal es una entrada al circuito. No puede ser escrita, es decir, a esta

señal no se le puede asignar un valor, solamente puede ser leída y

utilizada como operando en funciones internas.

OUT Salida únicamente. La señal sale del circuito. A esta señal se le puede

asignar un valor pero no puede ser leída o utilizada como operando en

funciones internas.

INOUT La señal es bidireccional, es decir, de entrada y salida. Puede ser

leída y escrita.

BUFFER Salida que puede ser utilizada como operando en el circuito,

es decir, puede formar parte de expresiones para asignar a otras señales

en el circuito.

Page 13: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

13

TIPOS DE DATOS

Los tipos de datos utilizados para síntesis en VHDL son INTEGER, BIT,

BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR. Además VHDL provee

operadores y tipos de datos para documentación y simulación tales como

REAL y TIME.

INTEGER Se utiliza con números enteros.

BIT Puede contener '0' ó '1' (se usa comilla simple).

BIT_VECTOR Puede contener un bus, vector o grupo de datos de tipo

BIT. Las constantes de este tipo se especifican con una

cadena de ceros y unosencerrados entre comillas dobles

como en "00101101", "0101", "00".

STD_LOGIC Tiene los valores '0', '1', '–', 'Z' y 5 otros valores más no utilizando

para síntesis lógica. El valor '–' es de no importa y 'Z' (en

mayúscula) esvalor de tres estados.

STD_LOGIC_VECTOR El tipo es un bus de datos STD_LOGIC.

Los tipos STD_LOGIC y STD_LOGIC_VECTOR se prefieren en el ámbito

industrial. Para utilizar estos tipos es necesario insertar el paquete

std_logic_1164 de la biblioteca IEEE.

Para manejar buses, grupos de bits, se emplea BIT_VECTOR o

STD_LOGIC_VECTOR. En general, un bus de N bits puede ser declarado de

varias maneras:

BIT_VECTOR(N – 1 DOWNTO 0)

BIT_VECTOR(N DOWNTO 1)

BIT_VECTOR(1 TO N)

BIT_VECTOR(0 TO N – 1)

BIT_VECTOR(10 TO N + 9)

BIT_VECTOR(N + 19 DOWNTO 20)

Page 14: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

14

Ejemplos de entidades

OR de dos entradas de tipo STD_LOGIC (requiere el paquetestd_logic_1164

de la bibliotecaIEEE)

AND de N entradas de tipo BIT. La salida s es la función AND de todos los

bits de la señal a.

Multiplexor de dos canales de cuatro bits cada uno. Las señales a y b son

buses de datos de tipo STD_LOGIC_VECTOR. La señal s es el selector, f es la

salida del multiplexor.

Page 15: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

15

3.3.2.-Arquitectura VHDL.-En la arquitectura se define elfuncionamiento del

circuito lógico declarado en la entidad. Es posiblecrear varias formas de

un circuito lógico y para ello una entidad puede tener asociadas

varias arquitecturas. De este modo podemos tener opciones de diseño

para solucionar un mismo problema.

Su sintaxis básica es:

Las sentencias más utilizadas en la definición de circuitos son la

asignación directa, la asignación selectiva, la asignación condicional, el

proceso y la instanciación de componentes. Estas sentencias son

concurrentes entre sí, es decir, no importa el orden en que aparezcan en la

descripción.

Las señales internas del circuito se declaran en la arquitectura con un

nombre y un tipo de dato.

A continuación se muestran dos versiones de modelado para una función

AND de dos entradas. Una versión emplea datos de tipo BIT y la otra

emplea datos de tipo STD_LOGIC. La salida s se defineen la arquitectura

como el resultado de la operación AND de las entradas a y b. Note

que para asignar a una señal una expresión se utiliza el signo < seguido del

signo =.

Page 16: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

16

And2x con BIT

And2x con STD_LOGIC

Operadores

Los operadores sirven para realizar las funciones lógicas y aritméticas del

circuito.

Los datos de tipo INTEGER se pueden sumar (+) y restar (-). También es

posible multiplicarlos (*).Los datos de tipos STD_LOGIC y

STD_LOGIC_VECTOR pueden sumarse y restarse usando paquetes de la

biblioteca IEEE.

Los datos de tipo INTEGER, BIT, BIT_VECTOR, STD_LOGIC y

STD_LOGIC_VECTOR pueden ser comparados con los operadores

relacionales igual (=), diferente (/=), menor (<), menor o igual (<=), mayor

(>), mayor o igual (>=).

Los operadores lógicos son AND, OR, NOT, NAND, NOR y XOR. Se utilizan

con los tipos de datos BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR.

Page 17: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

17

Buses

Los buses se utilizan frecuentemente en el diseño digital. Por ejemplo, si f es

una señal interna de un circuito de 3 bits, podríamos declararla en la

arquitectura, antes de BEGIN, como:

SIGNAL f: BIT_VECTOR(2 DOWNTO 0);

De esta manera, f es una señal de tres bits con el bit más significativo

identificado como f(2), el bit intermedio como f(1) y el bit menos

significativo como f(0). En el cuerpo de la arquitectura, después de

BEGIN, a f puede asignársele un valor como "110" así:

f <= "110";

Lo que es equivalente a hacer tres asignaciones:

f(0) <= '0'; f(1) <= '1'; f(2) <= '1';

Si queremos agrupar tres señales binarias en una sola señal podemos

utilizar el operador de concatenación &. Así, si se declara:

SIGNAL a, b, c: STD_LOGIC;

Entonces la asignación:f <= a & b & c;es equivalente a:

f(2) <= a;

f(1) <= b;

f(0) <= c;

También podemos hacer agrupaciones compuestas. Si r es una señal

de ocho bits y t de 1 bit, podemos agrupar en x algo complejo como:

x <= '0' & r & "01" & t;

En este caso x debe haber sido definido como un bus de 1 + 8 + 2 + 1 =

12 bits. Note que los valores constantes de bits van entre comillas

simples ('1', '0') y los valores de buses van entre comillas dobles ("01",

"110").

Page 18: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

18

4.-Ejemplos aplicativos:

4.1.-Sumador completo

Page 19: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

19

4.2.-Flip-Flop JK

Flip-Flop JK activado por flanco positivo:

Page 20: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

20

4.3.- Descodificador de 7 segmentos

Salidas activas en baja

Salidas activas en alta

Page 21: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

21

5.-Anexos

Tabla de operadores

Page 22: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

22

Herramientas

Warp

Altera

Xilinx

ActiveVHDL

GHDL (GNU)

Max+Plus II

Quartus II

ModelSim/ISE

Otros programas están incluyendo en sus últimas versiones la capacidad

de programar FPGA usando sus propios lenguajes, pero también incluyen

módulos en VHDL, por ejemplo Protel DXP, Labview o Matlab.

-Fabricantes de FPGA

Actel

Altera - Max Plus II, Quartus II

Atmel

Cypress

Lattice

QuickLogic

Xilinx - ISE, Modelsim

Page 23: Vhd(sistemas digitales ii trabajo)

Sistemas digitales II

VHDL

Ingeniería Electrónica | UNSAAC

23

-Fabricantes de herramientas

Aldec-ActiveVHDL

GHDL

IEEE

IEEE estándar 1164

Sintaxis de la revisión del 93

Synplicity. Herramientas de síntesis física y verificación de diseño

Mentor Graphics. Herramientas de síntesis física, simulación y otras

relacionadas con diseño microelectrónico, sistemas embebidos, diseño de

PCB, etc.

6.-Bibliografía

• VHDL: Lenguaje para síntesis y modelado de circuitos, Fernando

Pardo, José A. Boluda.

• Tutorial VHDL, Arturo J. Miguel de Priego Paz Soldán.

• Diseño Digital con Lógica Programable y Lenguajes de Descripción

de Hardware, Arturo J. Miguel de Priego Paz Soldán.

• Diseño de circuitos digitales con VHDL, Felipe Machado, Susana

Borromeo.