Anda di halaman 1dari 21

VHDL

(VERY HIGH DESCRIPTION LANGUAGE)

p  
DEFINICION

VHDL : VERY HIGH SPEED HARDWARE DESCRIPTION


LANGUAGE.

VHDL es un leguaje orientado a la descripción ó modelado de


hardware, el cual hereda buena parte de los conceptos de los
lenguajes de programación de alto nivel(C,PASCAL) y
especialmente del lenguaje EDA.

EDA: ELECTRONIC DESING AUTOMATION.


INTRODUCCION
METODOLOGIAS DE DISEÑO
La introducción de herramientas CAD en el proceso de diseño,
busca reducir costes, tiempo y riesgos en el desarrollo, a la vez
que se garantizan las prestaciones del producto final.
M 

M 
M
MM 

Al describir cualquier dispositivo en VHDL, el diseñador debe


definir dos elementos principales:

- La entidad (ENTITY).
- La arquitectura (ARCHITECTURE).
    M  M

M

ENTIDAD ARQUITECTURA

ESTRUCTURAL COMPORTAMENTAL FLUJO DE


DATOS
La definición de la ARQUITECTURA puede realizarse
suiguiendo diferentes modelos, los cuales son:

- algoritmico (funcional).
- flujo de datos.
- estructural.
Ejemplo 1:

Describir en VHDL, un circuito que multiplexe dos líneas(a y b)


de un bit, a una sola línea también de un bit.
  : ENTITY mux2 IS
PORT (a,b:IN BIT;
select:IN BIT;
salida:OUT BIT);
END mux2;
ARCHITECTURE comportamental OF mux2 IS
BEGIN
PROCESS
BEGIN
IF (select=µ0¶) THEN
salida<=µa¶;
ELSE
salida<=µb¶;
END IF;
END PROCESS;
END comportamental;
Flujo de datos:
Mux 2-1:
tabla característica: Expresión de la salida:

p p 2   2 


 2 
:


Luego el programa en VHDL es:


ENTITY mx2 IS
PORT (a,b:in bit;
sel:in bit;
sal:out bit);
END ENTITY;
ARCHITECTURE zs OF mx2 IS
BEGIN
sal<=((a and (not sel)) or (b and sel));
END zs;
Estructural:
Mux 2-1.
ENTITY m21est IS BEGIN
PORT (a,b:IN BIT; U0:not2 PORT MAP(sel,d);
sel:IN BIT; U1:and1 PORT MAP(d,a,e);
salida:OUT BIT); U2:and1 PORT MAP(sel,b,f);
END m21est; U3:or1 PORT MAP(e,f,salida);
ARCHITECTURE estructural OF m21est IS END estructural;
SIGNAL d,e,f:BIT;
COMPONENT not2
PORT(ai:IN BIT;
ao:OUT BIT);
END COMPONENT;
COMPONENT and1
PORT(x,y:IN BIT;
z:OUT BIT);
END COMPONENT;
COMPONENT or1
PORT(a,b:IN BIT;
c:OUT BIT);
END COMPONENT;
  
Diseñe un dispensador de tres productos.
A continuación se hace la presentación de del proceso por que se llevo a cabo para la
realización de un circuito capaz de controlar 5 de las variables propuestas en nuestro
dispensador.

? ?  ??

Las especificaciones técnicas de nuestro cto controlador son las siguientes:


-el cto debe ser capaz de suministrar 3 diferentes productos cuyo valor será de
$50, $100, $150(la selección se hace por medio de los botones correspondientes).
-Dichos productos podrán obtenerse únicamente con dos monedas($50, $100),
para comprobar lo anterior se visualizara el resultado en un panel de led¶s.
-Dado el caso que el usuario seleccione más de un producto y si se deposito el
dinero correspondiente a un solo producto el cto de control optara por entregar el
producto de mayor precio.
-Para obtener el producto el usuario deberá presionar el botón correspondiente al
producto que desea y mantenerlo así hasta que se halla introducido el valor del
producto en moneda(s).
  ?  
 

En la implementación del cto de control del dispensador, tomamos las 5


variables de entrada(3 productos y 2 monedas) con lo cual tenemos
2^5(32) posibles salidas, a las cuales les asignamos en valor que
correspondía teniendo en cuenta las especificaciones dadas anteriormente;
luego con ayuda de los mapas de karnaugt, se obtuvo la ecuación
representativa para cada salida(ver anexos).
Lo anterior nos permite realizar pruebas de escritorio a cada ecuación y
posteriormente implementar el hardware necesario para cumplir con el
propósito del diseño.
S.$50 (A) A1

S.$100 (B) B1

S.$150 (C)
CTO DE
C1
CONTROL
M1
D1
M2
E1
   M

entity pro is
port (a,b,c,m1,m2:in bit; c1<=(c and m1 and m2);
a1,b1,c1,d,e:out bit);
end entity; d <=(((not c) and (not b) and (not a) and
m1) or
architecture main of pro is ((not b) and (not a) and m1 and (not
m2)) or
begin ((not c) and (not b) and a and m1 and
a1<=((a and (not m1) and m2) or m2));
((not b) and a and m1 and (not m2)) or
((not c) and a and m2)); e <=(((not a) and (not m1) and m2) or
((not c) and (not a) and m2) or
b1<=(((not c) and b and m1) or ((not b) and a and m1 and (not m2)));
(b and m1 and (not m2))); end main;
   
Ejemplo 1:
Describir de forma comportamental, el funcionamiento de un Flip-flop
tipo D, el cual posee una entrada de reset y es activo en alto.



El programa en VHDL corresponde a:


entity mdff is
port(d,clk,clr: in bit;
Q: out bit);
end mdff;
architecture funcional of mdff is
begin
process(clk,clr)
begin
if clr = '1' then
Q <='0';
elsif (clk'event and clk ='1') then
Q <= d;
end if;
end process;
end architecture funcional;
Ejemplo 2:
Escriba el programa en VHDL, para implementar un registro PIPO.

!
clr

"
clr


clr

#
clr



Anda mungkin juga menyukai