Está en la página 1de 30

*

VHDL
LENGUAJE DE DESCRIPCION DE HARDWARE PARA CIRCUITOS INTEGRADOS DE
MUY ALTA VELOCIDAD

Ingeniera en Electrnica Telecomunicaciones y Redes


ESPOCH-FIE
Profesor: Ing. Wilson Balden M.Sc.

Abril 2015

Declaracion de de entidades mediante


LIBRERIAS Y PAQUETES

paquete
paquete

Librera

paquete
paquete

paquete

paquete
paquete
paquete
paquete
paquete
paquete
paquete
paquete

Unidades
predeterminadas
por el fabricante
de la herramienta.
paquete

paquete

paquete

paquete

paquete

Biblioteca

Declaracion de de entidades mediante


LIBRERIAS Y PAQUETES
Biblioteca
Librera
VHDL

Declaracion de de entidades mediante


LIBRERIAS Y PAQUETES

LIBRERIAS Y PAQUETES

Library nombre_libreria

declarar una librera es hacerla visible en


todo el programa, se requieren 2 lineas.

LIBRERIAS Y PAQUETES
Pre-Defined Data Types

El Package: standard of library std: Defines


BIT, BOOLEAN, INTEGER, and REAL.
Package: std_logic_1164 of library ieee: Defines
STD_LOGIC
STD_ULOGIC .
Package: std_logic_arith of library ieee: Defines
SIGNED and UNSIGNED mas algunas funciones como:
conv_integer(p),
conv_unsigned(p, b),
conv_signed(p, b),
conv_std_logic_vector(p, b).
Package: std_logic_signed y el std_logic_unsigned of library ieee:
STD_LOGIC_VECTOR para datos con
SIGNED or UNSIGNED,.

* LIBRERIAS Y PAQUETES

Pre-Defined Data Types

BIT (and BIT_VECTOR): 2-level logic (0, 1)


SIGNAL x: BIT;
x <= '1';
SIGNAL y: BIT_VECTOR (3 DOWNTO 0);
y <= "0111";
SIGNAL w: BIT_VECTOR (0 TO 7);

w <= "01110001";

LIBRERIAS Y PAQUETES
Pre-Defined Data Types
STD_LOGIC (and STD_LOGIC_VECTOR):

8-valued logic system introduced in the IEEE 1164 standard


1.
2.
3.
4.
5.
6.
7.
8.

X Forcing Unknown (synthesizable unknown)


0 Forcing Low (synthesizable logic 1)
1 Forcing High (synthesizable logic 0)
Z High impedance (synthesizable tri-state buer)
W Weak unknown
L Weak low
H Weak high
Dont care

STD_ULOGIC (STD_ULOGIC_VECTOR):

9-level logic system introduced in the IEEE 1164 standard


(U, X, 0, 1, Z, W, L, H, ).

LIBRERIAS Y PAQUETES
Pre-Defined Data Types

ARQUITECTURAS

Estilo funcional
Estilo por flujo de datos
Estilo estructural

ARQUITECTURAS

Estilo funcional

La descripcin por flujo

<=

los datos se pueden transferir de una


seal a otra sin necesidad de
declaraciones secuenciales.

c <= '1' when (a = b) else '0';

if-then-else

c <= (a(1) xnor b(1)and a(0) xnor b(0)) ;


Descripcin estructural
cada compuerta
(modelo lgico) se
encuentra dentro
del paquete
gatespkg,6

U0: xnor2 port map (a(0), b ( 0 ) , x ( 0 )


Ul: xnor2 port map (a(l), b ( 1 ) , x (1)
U2 : and2 port map (x ( 0 ) , x(l) , c)

Insertando buses y nodos

Doble clic
izquierdo
aqu

Selecciono las seales a, b y c

Estableciendo el tamao del grid, periodo

* Configuracin el tamao del eje del tiempo

Para 4
combinaciones
posibles se requiere
10 x 4 =40 unidades
de tiempo (ns)

* El eje del tiempo tiene 40 ns

* Dibujando las seales de entrada

Selecciono la seal a, para dibujar las 4 combinaciones

a, va de 00 a 11 en el tiempo establecido de 40 ns

Para poner 00 en el primer periodo de la seal b, de 0 a 10 ns, sealo con el


botn izquierdo y arrastro , sobre el area seleccionada clic con el derecho y,
selecciono como indica el grafico.

Pongo el valor deseado, en este caso 00

Resultado de la simulacin

ARQUITECTURAS

Funcional

Cdigo
secuencial
puede estar solo en:
processes, funtion,
procedure.
Y
REQUIERE UNA LISTA
SENSITIVA
IF
WAIT
CASE
LOOP

ARQUITECTURAS

Flujo de datos

ARQUITECTURAS
estructural

Con un estilo funcional, programe en VHDL el funcionamiento del motor de un


ventilador en que el motor gire en un sentido al presionar el botn 'a' y en
direccin contraria al oprimir el botn b.
Con un estilo por flujo de datos, programe en VHDL el funcionamiento de un panel
en una fbrica de empaquetamiento de arroz. Este panel muestra el contenido de
2 silos (a, b) que tiene la fbrica para guardar el arroz; un sensor detecta cun
llenos estn, cuando se encuentran al 100% de su capacidad, enva un '1 lgico', y
cuando tienen 25% o menos enva un '0 lgico'; si en uno de estos silos disminuye el
contenido a 25% o menos, se prende una luz (c), si los dos sobrepasan ese lmite se
enciende otra luz (d) y suena una alarma (e).
Mediante el estilo de programacin por flujo de datos, programe en VHDL el
funcionamiento de un robot en una planta que espera a que se llene una tarima
con cuatro cajas antes de llevarla a la bodega de almacenamiento; para saber si la
tarima est llena cuenta con cuatro sensores, cada uno apunta a sendas cajas; si
hay una caja marca un '1 lgico'; si falta, marca un '0 lgico'. Si falta alguna caja el
robot no se puede ir, cuando estn las cuatro cajas el robot se lleva la tarima.

Con el estilo de programacin por flujo de datos, programe en VHDL el


funcionamiento de una caja de seguridad cuya apertura requiere la presin
simultnea de tres de cuatro botones

PROGRAMACIN DE ESTRUCTURAS BSICAS


MEDIANTE DECLARACIONES CONCURRENTES
*

Declaraciones condicionales asignadas a una seal


(when'else)

Declaraciones condicionales asignadas a una seal (whenelse)


Declaraciones concurrentes asignadas a seales
Seleccin de una seal (with-select-when)

Declaraciones condicionales asignadas a una seal


(when else)

La declaracin when else se utiliza para asignar valores a una seal

También podría gustarte