vhdl lenguaje de descripción de hardware · vhdl – lenguaje de ... s ig n a l a : s td _ lo g ic...

Post on 15-Sep-2018

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related