You are on page 1of 7

VHDL

Es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers)


(ANSI/IEEE 1076-1993) usado por ingenieros y cientficos para describir circuitos digitales
o modelar fenmenos cientficos respectivamente. VHD. Aunque puede ser usado de
forma general para describir cualquier circuito digital se usa principalmente para
programar PLD (Programable Logic Device - Dispositivo Lgico Programable), FPGA
(Field Programmable Gate Array), ASIC y similares.
Otros mtodos para disear circuitos son la captura de esquemas (con herramientas
CAD) y los diagramas de bloques, pero stos no son prcticos en diseos complejos.
Otros lenguajes para el mismo propsito, pero con un nivel de abstraccin superior son
Verilog y ABEL.
PROCEDIMIENTO DEL DISEO:
1) El primer paso del diseo consiste en la construccin del diagrama en bloque del
sistema. En diseos complejos como en software los programas son generalmente
jerrquicos y VHDL ofrece un buen marco de trabajo para definir los mdulos que
integran el sistema y sus interfaces, dejando los detalles para pasos posteriores.
2) El segundo paso es la elaboracin del cdigo en VHDL para cada mdulo, para
sus interfaces y sus detalles internos. Como el VHDL es un lenguaje basado en
texto, se puede utilizar cualquier editor para esta tarea, aunque el entorno de los
programas de VHDL incluye su propio editor de texto. Despus de que se ha
escrito algn cdigo se hace necesario compilarlo. El compilador de VHDL analiza
este cdigo y determina los errores de sintaxis y chequea la compatibilidad entre
mdulos. Crea toda la informacin necesaria para la simulacin.
3) El prximo paso es la simulacin, la cual le permite establecer los estmulos a
cada mdulo y observar su respuesta. El VHDL da la posibilidad de crear bancos
de prueba que automticamente aplica entradas y compara las salidas con las
respuestas deseadas. La simulacin es un paso dentro del proceso de verificacin.
El propsito de la simulacin es verificar que el circuito trabaja como se desea, es
decir es ms que comparar entradas y salidas. En proyectos complejos se hace
necesario invertir un gran tiempo en generar pruebas que permitan evaluar el
circuito en un amplio rango de operaciones de trabajo. Encontrar errores en este
paso del diseo es mejor que al final, en donde hay que repetir entonces una gran
cantidad de pasos del diseo. Hay dos dimensiones a verificar:
Su comportamiento funcional, en donde se estudia su comportamiento
lgico independiente de consideraciones de tiempo, como las demoras en
las compuertas.
Su verificacin en el tiempo, en donde se incluyen las demoras de las
compuertas y otras consideraciones de tiempo, como los tiempos de
establecimiento (set-up time) y los tiempos de mantenimiento (hold time).
ESTRUCTURA DEL PROGRAMA:
VHDL fue diseado con base a los principios de la programacin estructurada. La idea es
definir la interfaz de un mdulo de hardware mientras deja invisible sus detalles internos.
La entidad (ENTITY) en VHDL es simplemente la declaracin de las entradas y salidas de
un mdulo mientras que la arquitectura (ARCHITECTURE) es la descripcin detallada de

la estructura interna del mdulo o de su comportamiento. En la siguiente figura se ilustra


el concepto anterior. Muchos diseadores conciben la Entity como una funda de la
arquitectura dejando invisible los detalles de lo que hay dentro (architecture). Esto forma
la base de un sistema de diseo jerrquico, la arquitectura de la entidad de ms nivel (top
level) puede usar otras entidades, dejando invisible los detalles de la arquitectura de la
identidad de menos nivel. En la figura las entidades B, E y F no utilizan otras entidades.
Mientras que la entidad A utiliza todas las dems. A la pareja entidad-arquitectura se la
llama modelo. En un fichero texto VHDL la entidad y la arquitectura se escriben
separadas, por ejemplo a continuacin se muestra un programa muy simple en VHDL de
una compuerta de 2 entradas. Como otros programas, VHDL ignora los espacios y saltos
de lneas. Los comentarios se escriben con 2 guiones (--) y terminan al final de la lnea.
En la figura siguiente se muestra la estructura de un modelo en VHDL. SINTAXIS PARA
LA DECLARACIN DE LA ENTIDAD VHDL define muchos caracteres especiales
llamados palabras reservadas. Aunque las palabras reservadas no son sensibles a las
maysculas o minsculas, en el ejemplo que sigue las utilizaremos en maysculas y
negrita para identificarlas.
ENTITY Nombre_entidad IS
PORT ( Nombre de seal: modo tipo de seal;
. . .
Nombre de seal:

modo

tipo de seal ) ;

END nombre_entidad ;

Adems de darle nombre a la entidad el propsito de la declaracin es definir sus seales


(o ports) de interfaz externa en su declaracin de ports. Adems de las palabras
reservadas o claves ENTITY, IS, PORT and END, una ENTITY tiene los siguientes
elementos.

Nombre_entidad; es un identificador seleccionado por el usuario para seleccionar


la entidad.

Nombre de seal; es una lista de uno o ms identificadores separados por una


coma y seleccionados por el usuario para identificar las seales externas de la
interfaz.

MODO es una de las 4 siguientes palabras reservadas para indicar la direccin de


la seal:
Modo

Descripcin

IN

En este modo las seales solo entran en la entidad

OUT

Las seales salen de la entidad

BUFFE
R

Este modo se utiliza para las seales que adems de salir de la entidad
pueden usarse como entradas realimentadas

INOUT

Este modo se utiliza para seales bidireccionales. Se emplea en salida con


tres estados. Se puede asignar como sustituto de los tres modos anteriores,
pero no se aconseja pues dificulta la comprensin del programa.

Cuando se omite el modo de una seal en la declaracin de la entidad se sobreentiende


que es de entrada.

Tipo de seal; en VHDL, hay varios tipos de seales predefinidas por el lenguaje,
tales como:
TIPO

Caractersticas

BIT

En este tipo las seales solo toman los valores de "1" y "0"

Booleana

En este tipo las seales solo toman los valores de True y False

Std_logic

En este tipo las seales toman 9 valores, entre ellos tenemos: "1",
"0", "Z" (para el 3.er estado), "-" (para los opcionales).

Integer

En este tipo las seales toman valores enteros. Los 1 y los 0 se


escriben sin

Bit_Vector

En este tipo los valores de las seales son una cadena de unos y
ceros. Ejemplo: 1000

Std_Logic_Vecto
r

En este tipo los valores de las seales son una cadena de los nueve
valores permisibles para el tipo std_logic.

Character

Contiene todos los caracteres ISO de 8 bits, donde los primeros 128
son los caracteres ASCII.

Ejemplo: 1-0Z -231 + 1 231 - 1 Integer -2 147 483 647 2 147 483 647
Bit Character Severity_level Bit_vector Integer String Boolean Real time

Operadores

Tipo

Std_logic

Uninitialized (Sin inicializar)

Forcing Unknown (Forzar valor desconocido)

Forcing 0 (Forzar un cero)

Forcing 1 (Forzar un uno)

High Impedance (Alta impedancia)

Weak Unknown (Valor dbil desconocido)

Weak 0 (Cero dbil)

Weak 1 (uno dbil)

Dont care (Cualquier valor)

Este tipo es parte del paquete IEEE 1164


Adems el usuario puede definir otros tipos de seales, lo que resulta muy conveniente en
algunos casos, como en el diseo de mquinas de estados. El lenguaje VHDL concede
mxima importancia a los tipos de seales, no se admite realizar una asignacin
mezclando tipos diferentes. Un PORT de una entidad y sus modos y tipos pueden ser
vistos por otros mdulos que la utilicen. La operacin interna de la entidad est definida
en la architecture cuya sintaxis general se muestra a continuacin.

Ejercicio 1: compuerta Logica OR


A
0

B
0

C
0

0
1

1
0

1
1

Ejercico 2: Funcion
Booleana
A

A B C+
A B C
F= A B C+

You might also like