Вы находитесь на странице: 1из 6

VHDL

VHDL significa VHSIC Hardware Description Language, y a su vez VHSIC significa Very
High Speed Integrated Circuit. Se trata de un lenguaje de descripcin de hardware, esto
significa que mediante l se puede describir la forma de comportarse de un circuito
electrnico. El comportamiento puede ser llevado a algn dispositivo que dispondr de sus
propios componentes con los que lograr ese comportamiento deseado. La forma de
comportarse es independiente del hardware donde se implementar.
El VHDL es un estndar llamado IEEE 1076-1993. Sus ventajas son:

Una disponibilidad pblica

Independencia de dispositivos y fabricantes

Reutilizacin

Diseo jerrquico

Un proyecto de VHDL puede contener muchos ficheros. El cdigo VHDL usualmente se


encuentra en los ficheros con extensin *.vhd.
El desarrollo de VHDL fue iniciado en 1981 por los Estados Unidos Departamento de la
Defensa para hacer frente a la crisis del ciclo de vida de hardware. El costo de los equipos
electrnicos como reprocuring tecnologas obsoletas se convirti en llegar a un punto
crtico, porque la funcin de las partes no est debidamente documentada, y de los
diversos componentes que integran un sistema individual se verifica por medio de una
amplia gama de diferentes e incompatibles idiomas y herramientas de simulacin. El
requisito era disponer de un idioma con una amplia gama de capacidad descriptiva,
que funciona de la misma en cualquier simulador y es independiente de la tecnologa o
metodologa de diseo.
Un PLD o dispositivo lgico programable es un circuito integrado, formado por una matriz
de puertas lgicas
y flip-flops, que proporcionan una solucin al diseo de formas anlogas, a las soluciones
de suma de productos, productos de sumas y multiplexores. La estructura bsica de una
PLD permite realizar cualquier tipo de circuito combinacional basndose en una matriz
formada por puertas AND, seguida de una matriz de puertas OR. Tres son los tipos ms
extendidos de PLD's, la PROM, PLA, y la PAL.
PLA (Programmable Logic Array)
Parecido en la dispositivo a la PROM, difiere de esta, en que aqu en la PLD , ambas
matrices, la de
puertas And, as como la de puertas Or es programable, por lo que nos vemos habilitados
a incrementar
el nmero de entradas disponibles, sin aumentar el tamao de la matriz. Esta estructura
permite una

VHDL
mejor utilizacin de los recursos disponibles en el circuito integrado, de tal forma que se
genera el mnimo numero de trminos necesarios para generar una funcin lgica.
PAL (Programmable array Logic)
Una PAL es diferente de una PROM a causa de que tiene una red Y programable y una red
O fija. Con
un programador Prom podemos obtener los productos fundamentales deseados quemando
los eslabones y
luego conseguir la suma lgica de dichos productos mediante las conexiones fijas de
salida.
TIPOS DE DESCRIPCION DE PROGRAMA (ESTRUCTURA)
Como se ha dicho antes, VHDL sirve para describir un circuito electrnico, pero el mismo
circuito puede ser descrito de varias formas. Las formas de hacerlo son:
- Descripcin de comportamiento
- Descripcin de flujo de datos (RTL Registred Transfer Level)
- Descripcin estructural
Descripcin de comportamiento
Una descripcin de comportamiento de un multiplexor de dos entradas, una salida y una
seal de seleccin sera: la salida ser igual a la primera entrada si la seal de control est
desactivada y la salida ser la segunda entrada si la seal de control est activada.
En VHDL la arquitectura de este multiplexor para la entidad llamada mux sera:
Descripcin de flujo de datos
En una descripcin de flujo de datos del mismo multiplexor la salida sera la ecuacin
lgica: s=(entrada1 AND NOT control) OR (entrada2 AND control)
En VHDL la arquitectura sera:
Descripcin estructural
Una descripcin estructural consistira en decir que el circuito tiene una puerta inversora
U1, dos puertas AND de dos entradas U2 y U3 y una puerta lgica OR de dos entradas U4,
adems tambin describe las conexiones entre estas puertas, un ejemplo sera: la entrada
de U1 es la seal de control, la salida de U1 se conecta a la segunda entrada de U2, la
primera entrada de U1 es entrada1, etc.
Entidad
La entidad sirve para definir las entradas y salidas que tendr un determinado circuito.
Para definir una entidad se realizar mediante la palabra reservada ENTITY.
En principio pudiera parecer que esta definicin sea equivalente a la cabecera de una
funcin de un lenguaje cualquiera de programacin. En VHDL es ms conveniente ver a la
entidad como una caja negra con cables para las entradas y salidas. A continuacin se
muestra la sintaxis de una entidad.
ENTITY nombre IS
[GENERIC(lista de parmetros);]

VHDL
[PORT(lista de puertos);]
END [ENTITY] nombre;
Las seales representaran la funcin que haran los cables en un diseo hardware
tradicional. Dentro de una entidad los puertos son considerados como seales

IN: Son seales de entrada, las cuales slo se pueden leer, pero no se le pueden
asignar ningn valor, es decir, no se puede modificar el valor que poseen. Por lo tanto, su
funcionalidad es similar a las constantes.
OUT: Corresponden a las seales de salida, en este caso su valor puede ser
modificado, pero en este caso no pueden leerse, es decir no pueden ser utilizadas como
argumentos en la asignacin de cualquier elemento.
INOUT: Este tipo es una mezcla de los dos anteriores, pueden ser utilizados tanto
como de lectura o de escritura.
BUFFER: Es idntico al anterior, con la diferencia de que slo una fuente puede
modificar su valor.

Identificadores
Son cualquier cadena de caracteres que sirven para identificar variables, seales,
procesos, etc. Puede ser cualquier nombre compuesto por letras (aux) o nmeros y letras
(aux1, aux2, aux3, ...), incluyendo el smbolo de subrayado "_". Las maysculas y
minsculas son consideradas iguales.
Tipos de datos
Como en cualquier lenguaje de programacin existen varios tipos de datos, en VHDL se
pueden diferenciar dos: escalares y compuestos.
Tipos escalares
Son tipos simples que contienen algn tipo de magnitud.

Enteros: Son datos con un valor numrico entero. La forma de definirlos es con la
palabra RANGE. Realmente se dice que un nmero est en un lmite establecido.
Fsicos: Se trata de datos que corresponden con magnitudes fsicas, que tienen un
valor y unas unidades.
Reales o coma flotante: Se definen igual que los enteros con la diferencia que los
lmites son nmeros reales.
Enumerados: Son datos que puede tomar siempre que se encuentre en una lista o
conjunto finito. Es idntico a las enumeraciones en C (enum).

VHDL

Constantes, seales y variables


En VHDL existen tres tipos de elementos: seales, constantes y variables. Estas dos
ltimas tienen un significado similar a cualquier otro lenguaje de programacin.
Todos estos elementos son diferentes. Las variables slo tienen sentido dentro de los
procesos o subprogramas, mientras que las seales pueden ser declaradas en
arquitecturas, paquetes o bloques concurrentes. Las constantes pueden ser declaradas en
los mismos sitios que las variables y seales.
Constantes
Es un elemento que se inicializa con un valor determinado, el cual no puede ser
modificado, es decir siempre conserva el mismo valor. Esto se realiza con la palabra
reservada CONSTANT.
CONSTANT e : real := 2.71828;
CONSTANT retraso : time := 10 ns;
Variables
Es lo mismo que una constante, pero con la diferencia que puede ser modificada en
cualquier instante, aunque tambin es posible inicializarlas. La palabra
reservada VARIABLE es la que permite declarar variables.
VARIABLE contador : natural := 0;
VARIABLE aux : bit_vector(31 DOWNTO 0);

VHDL
Operadores
Los operadores que proporciona el lenguaje son:

Lgicos: Actan sobre los tipos bit, bit_vector y boolean. En el caso de utilizar este
tipo de operadores en un vector, la operacin se realizar bit a bit.

Operadores: AND, OR, NAND, NOR, XOR, XNOR y NOT.


Aritmticos:

+ (suma o signo positivo): Sirve para indicar una suma entre dos nmeros.

- (resta o signo negativo): Sirve para indicar la resta entre dos nmeros.

* (multiplicacin): Multiplica dos nmeros de cualquier tipo.

/ (divisin): Divide dos nmeros de cualquier tipo.

** (exponencial): Eleva un nmero a una potencia.

ABS() (valor absoluto): Devuelve el valor absoluto de su argumento.

MOD (mdulo): Calcula el mdulo de dos nmeros.

REM (resto): Calcula el resto de la divisin.


Relacionales: Siempre devuelven un valor booleano (true o false).

==, /= (igualdad): El primero devuelve verdadero si los operando son iguales


y falso en caso contrario. El segundo indica desigualdad, funcionando al revs que
el anterior.

>, >=, <, <= (menor mayor): Poseen el significado habitual (mayor que,
mayor o igual que, menor que, menor o igual que, respectivamente). La diferencia
con los anteriores reside en su uso, en este caso los tipos de datos que pueden
manejar son siempre de tipo escalar o matrices.

El orden de preferencia, de mayor a menor es:


1. **, ABS, NOT

VHDL
2. *, /, MOD, REM
3. +, - (signo)
4. +, -, & (operaciones)
5. =, /=, <, <=, >, >=
6. AND, OR, NAND, NOR, XOR

Вам также может понравиться