You are on page 1of 27

UNIVERSIDAD DE SEVILLA

Dpto. de Ingeniera Electrnica


AREA DE TECNOLOGIA ELECTRONICA

VHDL
Introduccin al lenguaje VHDL

Introduccin a los lenguajes HDL y conceptos


bsicos de VHDL

Octubre de 2007
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDL en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
1 4 HDL: Programa o diseo
1.4
1.5 VHDL vs. Verilog
1.6 Sntesis de circuitos
Bibliografa
g

Douglas L. Perry. VHDL. McGraw


McGraw-Hill,
Hill, 22
Edicin. 1994.

Apuntes de ctedra
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDL en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
1 4 HDL: Programa o diseo
1.4
1.5 VHDL vs. Verilog
1.6 Sntesis de circuitos
Introduccin

- Cada da aumenta la
complejidad
l jid d ded los l
circuitos digitales.

- El cuello de botella
est en el diseo
diseo.
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDL en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
1 4 HDL: Programa o diseo
1.4
1.5 VHDL vs. Verilog
1.6 Sntesis de circuitos
Flujo
j de diseo: Metodologa
g clsica
Flujo
j de diseo con HDL
Flujo
j de diseo. Ventajas
j e inconvenientes de HDL

Ventajas
Capacidad de modificacin y reutilizacin
Diseo independiente del dispositivo, tecnologa y
software de diseo
Simulacin de cdigo muy rpida
Reduce el tiempo de desarrollo y el coste
Diferentes circuitos dependiendo de las restricciones.
restricciones
Inconvenientes
Se pierde control de la implementacin a nivel de
puertas.
Implementaciones
p lgicas
g automticas no ptimas
p
La calidad de la sntesis depende del software
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDLs en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
11.4
4 HDL: Programa o diseo
1.5 VHDL vs. Verilog
1.6 Sntesis de circuitos
Niveles de abstraccin en HDLs

Niveles de Estilo descriptivo Tipo de datos


abstraccin (HDL)
Nivel funcional Algortmico o Abstracto
(grandes bloques) descriptivo
Nivel de Flujo de datos Compuestos
transferencia de
registros (RTL)
Nivel de puerta En forma de Bit
lgica esquema
Nivel de circuito Interconexin de Tensin e
transistores.
i N
No es i
intensidad
id d
posible en HDL
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDLs en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
1.4 HDL
HDL:: Programa o diseo
1.5 VHDL vs. Verilog
1.5 Sntesis de circuitos
HDL: Programa
g o diseo
La sintaxis es muy
similar.
En VHDL no se
programa, se
describe.
describe
Hay que pensar
siempre
i que lla
descripcin se
corresponded con
circuitos
f
funcionando
i d en
paralelo
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDLs en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
1 4 HDL: Programa o diseo
1.4
1.5 VHDL vs.
vs. Verilog
1.6 Sntesis de circuitos
VHDL vs. Verilog
g ((RTL))
VHDL Verilog
Basado en ADA Basado en C
Normalizado por la Propiedad de
IEEE 1076 CADENCE
Pensado para Pensado para
descripcin precisa diseo rpido
Incorpora
p muyy Muyy integrado
g con el
buenas libreras, software de
contempladas en el CADENCE
estndar.
d
VHDL vs. Verilog
g
EXAMPLE: FLIP-FLOP DESIGN LIBRARY IEEE;
module flip-flop
flip flop (clk, reset, USE IEEE.STD_LOGIC_1164.ALL;
ff_input, Q)
input clk, reset; ENTITY FF IS
input ff_input; PORT (
reg Q; ff_input
_ p Q reset: IN STD_LOGIC;
clk: IN STD_LOGIC;
FF ff_input: IN STD_LOGIC;
always @ (posedge clk)
clk
Q= ff_input; Q: OUT STD_LOGIC
);
always @ (reset) reset END FF;
if (reset=1)
assign Q=0; ARCHITECTURE behavioral OF FF IS
else BEGIN
deassign Q; flipflop: PROCESS (reset, clk)
end; BEGIN
IF reset='1' THEN
endmodule Q <= 0';
ELSIF clk'event AND clk='1' THEN
Q <= ff_input;
END IF;
END PROCESS;
END behavioral;
Tema 1:
Introduccin a los lenguajes HDL

1.1 Introduccin
1.2 Los HDLs en la metodologa de diseo
1.3 Niveles de abstraccin en HDL
1 4 HDL: Programa o diseo
1.4
1.5 VHDL vs. Verilog
1.6 Sntesis de circuitos
Sntesis de circuitos
DESCRIPCIN FUNCIONAL
EN HDL

Descripcin del comportamiento

Sntesis

ANALISIS y ELABORACIN.
Convertir la descripcin HDL
a cajas
j negras y registros.
i t
Descripcin compuesta de:
Resgistros
Seales de I/O
Lgica combinacional
Tecnologa Identificar componentes
OPTIMIZACIN. Depende p
de:
1. Expresiones lgicas
2. Dispositivo
3. Restricciones de diseo

NETLIST. Descripcin
NETLIST D i i a b
bajo
j nivel
i l
de abstraccin para su uso en el
place and route.

PLACE AND ROUTE


Tema 2:
Estructura de un diseo en VHDL

1.1 Introduccin y ejemplo


j p simple
p
1.2 La seccin ENTITY
1.3 La seccin ARCHITECTURE
1 4 La seccin CONFIGURATION
1.4
1.5 La seccin LIBRARY
Introduccin

Lenguaje VHDL:
Lenguaje de descripcin de hardware.
En VHDL se describe no se programa.
Permite documentar diseos.

Sntesis Lgica con VHDL:


Diseos reutilizables => Herramienta CAD.
Circuitos diferentes dependiendo de restricciones.
Introduccin

El VHDL es complejo pero:


El subconjunto necesario para sntesis es muy pequeo.
Solo utilizaremos:
Asignaciones:
estado siguiente <
estado_siguiente <= REPOSO ;
Comparaciones y operadores lgicos
= (igual), /= (no igual), > (mayor que), <= (menor o igual que), etc
And xor,
And, xor or,
or nand,
nand nor,
nor xnor,
xnor not,
not etc
Sentencia if
If (estado_actual=REPOSO) then . End if;
Sentencia case
Introduccin
-- -- es comentario
--Zona de declaracin de libreras
D l
Declaracin
i de
d libreras
lib y
LIBRARY nombre_librera;
USE librera.paquete_funciones.all;
paquetes
--Cabecera de la entidad
ENTITY nombre_entity IS D fi i i de
Definicin d la
l entidad
tid d
GENERIC(..........);
PORT(................);
END nombre_entity;
b i
--Cuerpo de la entidad
ARCHITECTURE nombre_architecture OF nombre_entity IS
Descripcin de la
--Declaracin
Declaracin de componentes y seales
BEGIN
arquitectura
i
--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
fg
--Cuerpo
C de
d la
l configuracin
fi i
END nombre_configuracion;
Ejemplo
j p bsico
-- Multiplexor de dos entradas
entityy mux21 is
port ( e1, e2: IN std_logic;
sel: IN std_logic;
o1: OUT std_logic);
std logic);
end mux21;
arquitecture A of mux21 is
b i
begin
process(e1,e2, sel)
begin
if (sel=0)
( l 0) then
th
o1 <= E1;
else
o1<=
1< e2; 2
endif;
end process;
endd A;
A
Tema 2:
Estructura de un diseo en VHDL

1.1 Introduccin y ejemplo simple


1.2 La seccin ENTITY
1.3 La seccin LIBRARY
1 4 La seccin ARCHITECTURE
1.4
1.5 La seccin CONFIGURATION
La seccin ENTITY
ENTITY contador IS
GENERIC (
N: integer := 10 );
PORT (
clk: IN STD_LOGIC;
reset: IN STD_LOGIC;
STD LOGIC;
enable: IN STD_LOGIC;
cuenta: OUT STD_LOGIC_VECTOR(N-1 downto 0)
);
La seccin ENTITY. Declaracin de puertos
p

Un puerto debe tener:


Nombre
Direccin
IN
OUT
INOUT
BUFFER
Tipo
p de dato
La seccin ENTITY. Declaracin de puertos
p

Ejercicio

A A
IN W
OUT
B
IN
IN
C
ENB X
INOUT

IN
D
Z BUFFER
Zint OUT

Z <= Zint;

You might also like