vhdl lenguaje de descripción de hardware · vhdl – lenguaje de ... s ig n a l a : s td _ lo g ic...
TRANSCRIPT
![Page 1: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/1.jpg)
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”
![Page 2: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/2.jpg)
Descripción de un
circuito digital
Descripción esquemática Descripción VHDL aparición de
los HDL
![Page 3: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/3.jpg)
tiempo
Descripción
del Hardware
Simulación
comportamiento
Implementación
ambientes
EDA
Evolución de la funcionalidad de los HDL
![Page 4: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/4.jpg)
Entorno de
desarrollo
(FPGA- Field
Programmable Gate
Array)
![Page 5: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/5.jpg)
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 ↓
![Page 6: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/6.jpg)
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.
![Page 7: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/7.jpg)
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”.
![Page 8: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/8.jpg)
Elementos del lenguaje VHDL
![Page 9: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/9.jpg)
Unidades de diseño: Entidad y Arquitectura
Interfaz del componente
![Page 10: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/10.jpg)
Modo
Tipo de
dato
![Page 11: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/11.jpg)
![Page 12: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/12.jpg)
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;
![Page 13: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/13.jpg)
-- 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
![Page 14: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/14.jpg)
![Page 15: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/15.jpg)
En VHDL distinguimos tres tipos de
descripción:
Algorítmica
Flujo de datos (RTL)
Estructural
Nivel de
abstracción
![Page 16: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/16.jpg)
Hacer
visible
bibliotecas
![Page 17: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/17.jpg)
![Page 18: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/18.jpg)
Tres objetos del lenguaje
Constantes
Variables
Señales
Cada objeto debe ser de un
tipo de datos
VHDL: lenguaje fuertemente tipado
![Page 19: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/19.jpg)
Puertos
Señales
a
f
ed
cb
s
x2
x1
x3
Entidad
x4
Señales internas
![Page 20: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/20.jpg)
![Page 21: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/21.jpg)
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
![Page 22: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/22.jpg)
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);
![Page 23: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/23.jpg)
Circuitos combinacionales
![Page 24: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/24.jpg)
a
f
ed
cb
sx4 x2
x1
x3
![Page 25: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/25.jpg)
x2
x1
x3 x4
a
f
ed
cb
s
![Page 26: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/26.jpg)
Operadores pre definidos en VHDL:
• Lógicos
• De desplazamientos
• Aritméticos
AND
OR
NOR
XOR
NOT
• Relacionales
• De concatenación
Lógicos
![Page 27: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/27.jpg)
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;
![Page 28: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/28.jpg)
A
B
Sel
SMux
2:1
0
1
Descripción VHDL de un multiplexor 2:1
![Page 29: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/29.jpg)
A
B
Sel
SMux
2:1
0
1
![Page 30: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/30.jpg)
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
![Page 31: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/31.jpg)
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
![Page 32: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/32.jpg)
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
![Page 33: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/33.jpg)
![Page 34: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/34.jpg)
0
65
4
3
2
1HEX [3:0] LED [6:0]Cod.
Hexa-
7 seg
Codificador hexadecimal-7 segmentos
![Page 35: VHDL Lenguaje de descripción de hardware · VHDL – Lenguaje de ... S ig n a l A : s td _ lo g ic _ v e c to r ( 3 d o w n to 0 ) Bus . Tipos de datos Tipo de datos escalares](https://reader030.vdocuments.net/reader030/viewer/2022013016/5b9c2f4409d3f2cb3b8c80da/html5/thumbnails/35.jpg)
0
65
4
3
2
1