35
VHDL Lenguaje de descripción de hardware V ery High Speed Integrated Circuit H ardware D escription L anguage “Herramienta formal para describir el comportamiento y la estructura de un sistema usando un lenguaje textual”

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0

65

4

3

2

1