Upload
duongtuyen
View
218
Download
0
Embed Size (px)
Citation preview
VHDL – Lenguaje de
descripción de hardware
Very High Speed Integrated
Circuit
Hardware Description
Language
“Herramienta formal para describir el comportamiento y la estructura de un
sistema usando un lenguaje textual”
Descripción de un
circuito digital
Descripción esquemática Descripción VHDL aparición de
los HDL
tiempo
Descripción
del Hardware
Simulación
comportamiento
Implementación
ambientes
EDA
Evolución de la funcionalidad de los HDL
Entorno de
desarrollo
(FPGA- Field
Programmable Gate
Array)
FPGAs. Ideas básicas
CLB
CLB
CLB
CLB
Switch
Matrix
Interconexión
programable I/O Blocks (IOBs)
Configurable
Logic Blocks (CLBs)
D Q
SlewRate
Control
PassivePull-Up,
Pull-Down
Delay
Vcc
Output
Buffer
Input
Buffer
Q D
Pad
D Q
SD
RD
EC
S/R
Control
D Q
SD
RD
EC
S/R
Control
1
1
F'
G'
H'
DIN
F'
G'
H'
DIN
F'
G'
H'
H'
HFunc.Gen.
GFunc.Gen.
FFunc.Gen.
G4G3G2G1
F4F3F2F1
C4C1 C2 C3
K
Y
X
H1 DIN S/R EC
granularidad ↑ / homogeneidad ↓
FPGAs. Ideas básicas
FPGA = Field-Programmable Gate Array.
Componente estándar re-programable por el usuario. Esto implica:
Interconexión re-configurable.
Función lógica re-configurable.
E/S re-configurable.
TIPOS DE DESCRIPCIONES
EN VHDL
ESTRUCTURAL:
VHDL puede ser utilizado para diseñar ó simular un sistema
digital, especificando por un lado sus componentes y por el
otro sus interconexiones.
COMPORTAMENTAL(ó FUNCIONAL):
VHDL puede ser usado para diseñar un sistema digital,
describiendo el comportamiento del mismo a través de dos
formas diferentes: “algorítmica” y por “flujo de datos”.
Elementos del lenguaje VHDL
Unidades de diseño: Entidad y Arquitectura
Interfaz del componente
Modo
Tipo de
dato
entity And_dos is -- Es un comentario Port ( Ent1 : in bit; Ent2 : in bit; Sal : out bit); end And_dos; -- Aquí comienza la arquitectura architecture Mi_compuer of And_dos is begin Sal <= Ent1 and Ent2; end Mi_compuer;
And_dos
Ent1
Sal
Ent2
Descripción
flujo de datos
(RTL)
in std_logic;
out std_logic);
in std_logic;
-- comienza la arquitectura
architecture Mi_compuer of And_dos is
begin
process (Ent1,Ent2)
begin
if Ent1 /= Ent2 then Sal <= '0';
elsif Ent1 = '1' then Sal <= '1'; else Sal <= '0';
end if;
end process;
end Mi_compuer;
Descripción
algorítmica
Ent1 Ent2 Sal
0 0 0
0 1 0
1 0 0
1 1 1
En VHDL distinguimos tres tipos de
descripción:
Algorítmica
Flujo de datos (RTL)
Estructural
Nivel de
abstracción
Hacer
visible
bibliotecas
Tres objetos del lenguaje
Constantes
Variables
Señales
Cada objeto debe ser de un
tipo de datos
VHDL: lenguaje fuertemente tipado
Puertos
Señales
a
f
ed
cb
s
x2
x1
x3
Entidad
x4
Señales internas
A(3)
A(0)
A(1)
A(2)
A
declaración:Signal A: std_logic_vector (3 donto 0)Signal A: std_logic_vector (3 downto 0)
Bus
Tipos de datos Tipo de datos escalares
Sus valores están formados por una sóla unidad indivisible . Ej:
port ( ent :in std_logic; sal: out std_logic);
signal auxiliar: std_logic;
Tipos de datos compuestos
Sus valores pueden dividirse en unidades atómicas más pequeñas.
Ej:
port ( ent :in std_logic_vector(3 downto 0); sal: out std_logic_vector
(3 downto 0));
signal datos: std_logic_vector (7 downto 0);
Circuitos combinacionales
a
f
ed
cb
sx4 x2
x1
x3
x2
x1
x3 x4
a
f
ed
cb
s
Operadores pre definidos en VHDL:
• Lógicos
• De desplazamientos
• Aritméticos
AND
OR
NOR
XOR
NOT
• Relacionales
• De concatenación
Lógicos
Asignaciones concurrentes a señal (descripción estilo flujo de datos)
•Asignaciones simples
s <= (a and b) or c;
•Asignaciones condicionales
s <= a when c= "10" else
b when c= "11" else d;
•Asignaciones con selección
with (a+b) select
s <= d when "0000",
e when "1010",
'0' when others;
A
B
Sel
SMux
2:1
0
1
Descripción VHDL de un multiplexor 2:1
A
B
Sel
SMux
2:1
0
1
A[7:0]
D[7:0]
C[7:0]
B[7:0]
Sel[1:0]
S[7:0]Mux
4:1
00
10
11
01
Descripción VHDL de un multiplexor 4:1
A[7:0]
D[7:0]
C[7:0]
B[7:0]
Sel[1:0]
S[7:0]Mux
4:1
00
10
11
01
Resultados de la simulación
A[7:0]
D[7:0]
C[7:0]
B[7:0]
Sel[1:0]
S[7:0]Mux
4:1
00
10
11
01
0
65
4
3
2
1HEX [3:0] LED [6:0]Cod.
Hexa-
7 seg
Codificador hexadecimal-7 segmentos
0
65
4
3
2
1