VHDL

(VERY HIGH DESCRIPTION LANGUAGE)

SHANGHAI

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.

a la vez que se garantizan las prestaciones del producto final.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.

DISEÑO BUTTOM-UP .

DISEÑO TOP-DOWN .

. el diseñador debe definir dos elementos principales: .MODELAJE DE HARWARE Al describir cualquier dispositivo en VHDL.La arquitectura (ARCHITECTURE).La entidad (ENTITY). .

COMPOSICION DE UN MODELO MODELO ENTIDAD ARQUITECTURA ESTRUCTURAL COMPORTAMENTAL FLUJO DE DATOS .

estructural.La definición de la ARQUITECTURA puede realizarse suiguiendo diferentes modelos. . . .algoritmico (funcional).flujo de datos. los cuales son: .

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. .

ARCHITECTURE comportamental OF mux2 IS BEGIN PROCESS BEGIN IF (select=‘0’) THEN salida<=‘a’. END comportamental. END IF. ELSE salida<=‘b’. salida:OUT BIT). END PROCESS. select:IN BIT. . END mux2.b:IN BIT.SOLUCION: ENTITY mux2 IS PORT (a.

Flujo de datos: Mux 2-1: tabla característica: Expresión de la salida: SEL SALIDA 0a 1b salida = a/(sel) + b(sel) Luego el programa en VHDL es: .

b:in bit. ARCHITECTURE zs OF mx2 IS BEGIN sal<=((a and (not sel)) or (b and sel)). END ENTITY. .ENTITY mx2 IS PORT (a. sel:in bit. sal:out bit). END zs.

.Estructural: Mux 2-1.

ENTITY m21est IS PORT (a. salida:OUT BIT). sel:IN BIT. z:OUT BIT). END COMPONENT.f). U3:or1 PORT MAP(e.e).d). . ao:OUT BIT).b. END COMPONENT.salida).y:IN BIT. BEGIN U0:not2 PORT MAP(sel. U2:and1 PORT MAP(sel. END COMPONENT.f:BIT. COMPONENT and1 PORT(x.f. END m21est.a. COMPONENT not2 PORT(ai:IN BIT.b:IN BIT. U1:and1 PORT MAP(d.b:IN BIT.e. ARCHITECTURE estructural OF m21est IS SIGNAL d. COMPONENT or1 PORT(a. c:OUT BIT). END estructural.

$150(la selección se hace por medio de los botones correspondientes). para comprobar lo anterior se visualizara el resultado en un panel de led’s. -Dichos productos podrán obtenerse únicamente con dos monedas($50. CONSIDERACIONES TECNICAS 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.Ejemplo 2 : Diseñe un dispensador de tres productos. . -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. $100). 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. -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). $100.

tomamos las 5 variables de entrada(3 productos y 2 monedas) con lo cual tenemos 2^5(32) posibles salidas. luego con ayuda de los mapas de karnaugt.RESOLUCION DEL PROBLEMA En la implementación del cto de control del dispensador. 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. . se obtuvo la ecuación representativa para cada salida(ver anexos). a las cuales les asignamos en valor que correspondía teniendo en cuenta las especificaciones dadas anteriormente.

$100 (B) S.S.$50 (A) A1 B1 S.$150 (C) M1 M2 CTO DE CONTROL C1 D1 E1 .

e <=(((not a) and (not m1) and m2) or ((not c) and (not a) and m2) or ((not b) and a and m1 and (not m2))).e:out bit). c1<=(c and m1 and m2).PROGRAMA EN VHDL: entity pro is port (a.c1. end entity. b1<=(((not c) and b and m1) or (b and m1 and (not m2))). a1.b1.c.m1. d <=(((not c) and (not b) and (not a) and m1) or ((not b) and (not a) and m1 and (not m2)) or ((not c) and (not b) and a and m1 and m2)). end main.b. architecture main of pro is begin a1<=((a and (not m1) and m2) or ((not b) and a and m1 and (not m2)) or ((not c) and a and m2)).d.m2:in bit. .

LOGICA SECUENCIAL Ejemplo 1: Describir de forma comportamental. el cual posee una entrada de reset y es activo en alto. clr El programa en VHDL corresponde a: . el funcionamiento de un Flip-flop tipo D.

entity mdff is port(d.clr: in bit. Q: out bit). end architecture funcional.clr) begin if clr = '1' then Q <='0'. elsif (clk'event and clk ='1') then Q <= d. end process. end mdff. . end if.clk. architecture funcional of mdff is begin process(clk.

para implementar un registro PIPO. d0 clr d1 clr d2 clr d3 clr clr .Ejemplo 2: Escriba el programa en VHDL.