Sunteți pe pagina 1din 32

Fundamentos del

Lenguaje VHDL
VHDL (VHSIC Hardware Description
Language)
VHSIC Very High Speed
Integrated Circuit

Departamento de la Defensa
de los E.U.A.
Desarrollo de Lenguajes para
Descripcin de Hardware
Programa: Very High Speed
Integrated Circuits (VHSIC)
1970s
IDL/IBM, HDL/TI, ZEUS/GE
Desarrollo en rea Industrial
AHPL, DDL, CDL, ISPS
Desarrollo en rea Acadmica
1980s
AHDL, ABEL, CUPL

1983  VHDL Desarrollo:


IBM, Texas Instruments e
Intermetrics
1987  VHDL87
Estndar IEEE -1076

VHDL y Verilog
1993  VHDL93
Estndar IEEE -1164

 VHDL

es un enguaje de descripcin
de Hardware.
 Diferencias con lenguajes de
programacin:
describe procesos que ocurren en
paralelo.
Una descripcin VHDL, representa el
comportamiento o la estructura de un
sistema.
Permite describir un sistema como la
interconexin de componentes.

 Usado

en ASIC, CPLD, FPGA, etc.


 Combina:
Documentacin
Simulacin
Sntesis
 Modelado

segn:

Comportamiento (Behavioural)
Estructura (Structural)

Caractersticas fundamentales
 No

hay diferencia entre mayscula y


minscula (case sensitivity):
VARIABLE = VaRiAbLe

 Espacios

blancos no influyen:
d1 <= a1 AND b1;
Es equivalente a
d1 <= a1
AND b1;

Palabras Reservadas en VHDL

Tipos de datos
SIGNAL a: BIT_VECTOR(0 DOWNTO 3);
a <= 0111; --datos para
--vectores
Esto significa que
a(0)=1
a(1)=1
a(2)=1
a(3)=0

Tipos de datos
A veces usado para
ndices de loops,
constantes, etc.
 BOOLEAN:
Pueden tomar los
valores true o false
 ENUMERATED:
Definido por usuario,
p.ej.:


INTEGER:

TYPE estado IS (start, lento, rapido, stop);

Operadores
 Lgicos:

AND, NAND, OR, NOR, XOR, XNOR, NOT


 Relacionales:

= (igual), /= (no igual), < (menor que),


<= (menor igual), > (mayor), >=
(mayor igual)
 Aritmticos

+ (ms), - (menos)
 Aritmticos

Unarios

- (negacin aritmtica)

10

Operadores
 Concatenacin

& (concatenar)
 Operadores

sobrecargados:

Se pueden extender (sobrecargar)


operadores para aceptar virtualmente
cualquier tipo seal. As, el paquete
std_logic_1164 hace vlido lo siguiente:
SIGNAL pc IS std_logic_vector(15 DOWNTO 0);
pc <= pc + 3;

11

Semntica
 Lgica

Concurrente

Operaciones fuera de procesos se


evalan simultneamente -> No es un
lenguaje como C++! Es una forma
disear un circuito digital.
 Lgica

Secuencial

Operaciones dentro de un proceso se


procesan secuencialmente. Procesos se
evalan simultneamente.

12

Lgica Concurrente
Asignacin simple
x <= a XOR b;
Para SIGNALS (y con ello PORTS)
se tiene que <= es el operador, el
lado izquierdo el destino y el lado
derecho la fuente. Ojo: Destino y
fuente deben ser del mismo tipo.
Para VARIABLES se tiene que el
operador es :=
Ojo, que son
secuenciales!
var := c AND d;

13

Lgica Concurrente
Asignacin condicional, un
ejemplo

WHEN/ELSE
a <= b AND c WHEN c=1 ELSE b OR d;
d
a

b
c
c

14

Lgica Concurrente
 WITH/SELECT

WITH sel
z <= A
B
C
D

SELECT
when 00,
when 01,
when 10,
when others;

A
B
C
D

sel[1:0]

15

Tipos de datos IEEE 1164


 std_ulogic
 std_ulogic_vector
 std_logic
 std_logic_vector

16

std_logic TYPE
Se encuentra en la librera ieee y contiene
todos los tipos de datos empleados en
VHDL







0
1
Z
L
H
-

-------

Forzando 0
Forzando 1
Alta Impedancia
0 dbil
1 dbil
Dont care

Con esto ahora queda lo siguiente:

17

Declaracin ENTITY
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY caja_negra IS PORT(
clk,rst:IN
std_logic;
d:
IN
std_logic_vector(7 DOWNTO 0);
q:
OUT std_logic_vector(7 DOWNTO 0);
co:
OUT std_logic);
END caja_negra
Modo

Tipo

18

Estructura bsica
 Un

sistema digital en VHDL consiste


en el diseo de una entidad


entity declaration: define las


entradas y salidas de la entidad.
architectural body: contiene la
descripcin de la entidad (lo que
hace o contiene), interconeccin
de componentes y otras
entidades, procesos, etc.

19

ENTITY
 Ejemplo

de una caja negra:


CAJA_NEGRA
rst
q[7:0]
d[7:0]
clk

co

20

ENTITY
ENTITY caja_negra IS
PORT( clk,rst:
IN
std_logic;
d:
IN
std_logic_vector(7 DOWNTO 0);
q:
OUT std_logic_vector(7 DOWNTO 0);
co:
OUT std_logic);
END caja_negra

21

PORTS
 Puntos

de comunicacin
 Tienen asociados un pin de I/O
 Clase especial de SIGNAL
 Tienen asociados un nombre, modo y
tipo de SIGNAL

22

Modos de PORT
 Modos

de PORT

IN
OUT

Datos entran, pero no salen


Datos salen y no son usados
internamente
INOUT
Datos son bidireccionales
BUFFER
Datos salen y son
realimentados hacia el sistema

23

ARCHITECTURE
 Descrpicin

de que hay dentro de la

caja negra
 Behavioural (Comportamiento)
Abstracto (Alto nivel)


IF a = b THEN state <= state5;

Ecuaciones Booleanas


x <= (a OR b) AND c;

 Structural

(Estructura)

Uso de bloques (componentes) ya


hechos

24

Declaracin de ARCHITECTURE
ARCHITECTURE arch_name OF ent_name IS
-- Definicin opcional de seales
BEGIN

cdigo

END arch_name

25

Lgica Secuencial
 PROCESS

nombre: PROCESS (sensitivity list)


--Declaracin de variables
BEGIN
cdigo
END PROCESS nombre;

26

Lgica Secuencial
 Ejemplo:

ARCHITECTURE arch_ej OF ej IS
BEGIN
nand: PROCESS (a,b)
BEGIN
c <= NOT (a AND b);
END PROCESS nand;
END arch_ej;

27

28

29

30

31

32

S-ar putea să vă placă și