Professional Documents
Culture Documents
VHDL (1 parte)
Introduccin al lenguaje VHDL
Marzo de 2005
Tema 1:
Bibliografa
Douglas
Apuntes
Tema 1:
Introduccin
Tema 1:
SI
NO
CONFORME ESPECIFICACIONES?
NO
CONFORME ESPECIFICACIONES?
SI
CONFORME ESPECIFICACIONES?
SI
SINTESIS LGICA
NO
CONFORME ESPECIFICACIONES?
SI
Inconvenientes
Se pierde control de la implementacin a nivel de puertas. Implementaciones lgicas automticas no ptimas La calidad de la sntesis depende del software
Tema 1:
En forma de esquema
Interconexin de transistores. No es posible en HDL
Bit
Tensin e intensidad
Tema 1:
sintaxis es muy similar. En VHDL no se programa, se describe. Hay que pensar siempre que la descripcin se corresponde con circuitos funcionando en paralelo
COMPILACIN
SNTESIS
Tema 1:
Basado en ADA Normalizado por la IEEE 1076 Pensado para descripcin precisa Incorpora muy buenas libreras, contempladas en el estndar.
Basado en C Propiedad de CADENCE Pensado para diseo rpido Muy integrado con el software de CADENCE
reset,
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FF IS PORT ( reset: IN STD_LOGIC; clk: IN STD_LOGIC; ff_input: IN STD_LOGIC; Q: OUT STD_LOGIC ); END FF; ARCHITECTURE behavioral OF FF IS BEGIN flipflop: PROCESS (reset, clk) BEGIN IF reset='1' THEN Q <= 0'; ELSIF clk'event AND clk='1' THEN Q <= ff_input; END IF; END PROCESS; END behavioral;
reset
endmodule
Tema 1:
Sntesis de circuitos
DESCRIPCIN FUNCIONAL EN HDL
Sntesis
Tecnologa
Descripcin compuesta de: Resgistros Seales de I/O Lgica combinacional Identificar componentes
NETLIST. Descripcin a bajo nivel de abstraccin para su uso en el place and route.
Tema 2:
Introduccin
Lenguaje VHDL:
Lenguaje de descripcin de hardware. En VHDL se describe no se programa. Permite documentar diseos.
Introduccin
El VHDL es complejo pero:
El subconjunto necesario para sntesis es muy pequeo. Solo utilizaremos:
Asignaciones:
estado_siguiente <= REPOSO ;
Sentencia if
If (estado_actual=REPOSO) then . End if;
Sentencia case
Introduccin
-- -- es comentario --Zona de declaracin de libreras Declaracin de libreras y LIBRARY nombre_librera; paquetes USE librera.paquete_funciones.all; --Cabecera de la entidad Definicin de la entidad ENTITY nombre_entity IS GENERIC(..........); PORT(................); END nombre_entity; --Cuerpo de la entidad ARCHITECTURE nombre_architecture OF nombre_entity IS Descripcin de la --Declaracin de componentes y seales arquitectura BEGIN --Descripcin de la funcionalidad END nombre_architecture; --Enlace con las arquitecturas de otras entidades CONFIGURATION nombre_configuracion OF nombre_entidad IS Seleccin de la FOR nombre_arquitectura configuracin --Cuerpo de la configuracin END nombre_configuracion;
Ejemplo bsico
-- Multiplexor de dos entradas entity mux21 is port ( e1, e2: IN std_logic; sel: IN std_logic; o1: OUT std_logic); end mux21; arquitecture A of mux21 is begin process(e1,e2, sel) begin if (sel=0) then o1 <= E1; else o1<= e2; endif; end process; end A;
MUX21 e1 e2 sel o1
e1 e2
MUX21 o1 sel
Tema 2:
La seccin ENTITY
ENTITY contador IS GENERIC ( N: integer := 10 ); PORT ( clk: IN STD_LOGIC; reset: IN STD_LOGIC; enable: IN STD_LOGIC; cuenta: OUT STD_LOGIC_VECTOR(N-1 downto 0) );
Nombre Direccin
IN OUT INOUT BUFFER
Tipo de dato
IN IN IN
B C
ENB
OUT
INOUT
IN
Z <= Zint;