Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VHDL-2 Conceptos Basicos PDF
VHDL-2 Conceptos Basicos PDF
EL LENGUAJE VHDL
CONCEPTOS BSICOS
Introduccin
Entidades y arquitecturas
Sentencias y procesos
Objetos
Tipos de datos y operadores
Autores: Luis Entrena Arrontes, Celia Lpez, Mario Garca,
Enrique San Milln, Marta Portela, Almudena Lindoso
2
Circuitos Integrados y Microelectrnica
El lenguaje VHDL
Es un estndar de IEEE
Caractersticas generales
Jerarqua
Diseo genrico
Concurrencia
Estilos de descripcin
Estructural
Comportamental (Behavioral)
Soporte para simulacin (modelado) y sntesis
VHDL sintetizable es un subconjunto del VHDL simulable
4
Circuitos Integrados y Microelectrnica
EL LENGUAJE VHDL
CONCEPTOS BSICOS
Introduccin
Entidades y arquitecturas
Sentencias y procesos
Objetos
Tipos de datos y operadores
6
Circuitos Integrados y Microelectrnica
Entidades y arquitecturas
Entidad de mayor nivel
Entidad 2
Entidad 1
Arquitectura 1
Arquitectura 2
Entidad 3
Entidades
ENTITY inversor IS
GENERIC (retraso: TIME := 5 NS);
PORT (i1: IN BIT; o1: OUT BIT);
END inversor;
8
Circuitos Integrados y Microelectrnica
Arquitecturas
Ejemplo: un semisumador
a s
Semisumador
b c
10
Circuitos Integrados y Microelectrnica
El semisumador en VHDL
ENTITY semisumador IS
PORT ( a: IN BIT; b: IN BIT; s: OUT BIT; c: OUT BIT);
END semisumador;
11
Un sumador total
x
s
y Sumador total
cin cout
s_parcial
x a s
Semisumador
y b c
a s s
Semisumador c_parcial2
cin b c
c_parcial1 cout
12
Circuitos Integrados y Microelectrnica
13
Asociacin de puertos
COMPONENT semisumador
PORT ( a: IN BIT; b: IN BIT; s: OUT BIT; c: OUT BIT);
END COMPONENT;
......
14
Circuitos Integrados y Microelectrnica
COMPONENT semisumador
PORT ( a: IN BIT; b: IN BIT; s: OUT BIT; c: OUT BIT);
END COMPONENT;
......
15
EL LENGUAJE VHDL
CONCEPTOS BSICOS
Introduccin
Entidades y arquitecturas
Sentencias y procesos
Objetos
Tipos de datos y operadores
16
Circuitos Integrados y Microelectrnica
Sentencias concurrentes
Se ejecutan a la vez!
17
Sentencias concurrentes
a g1
b
s
c
18
Circuitos Integrados y Microelectrnica
19
Sentencias secuenciales
20
Circuitos Integrados y Microelectrnica
Procesos
Sirve para describir el hardware mediante sentencias
secuenciales
Contienen
Declaraciones
Sentencias secuenciales
El proceso debe de tener una lista de sensibilidad explcita o al
menos una sentencia WAIT
Los procesos se ejecutan cuando
ocurre un evento en alguna de las seales de su lista de
sensibilidad, o
se cumplen las condiciones de disparo de la sentencia WAIT en la
que se par
Los procesos se ejecutan indefinidamente de forma cclica
21
22
Circuitos Integrados y Microelectrnica
23
24
Circuitos Integrados y Microelectrnica
EL LENGUAJE VHDL
CONCEPTOS BSICOS
Introduccin
Entidades y arquitecturas
Sentencias y procesos
Objetos
Tipos de datos y operadores
25
Clases de objetos
Constantes
Similares a las de los lenguajes
de programacin convencionales
Variables
26
Circuitos Integrados y Microelectrnica
Ejemplos
27
28
Circuitos Integrados y Microelectrnica
29
30
Circuitos Integrados y Microelectrnica
Asignaciones a seales
PROCESS (a)
BEGIN
z <= a; z siempre vale 1
z <= 1;
END PROCESS;
31
Asignaciones a seales
33
EL LENGUAJE VHDL
CONCEPTOS BSICOS
Introduccin
Entidades y arquitecturas
Sentencias y procesos
Objetos
Tipos de datos y operadores
34
Circuitos Integrados y Microelectrnica
ndice
Tipos de datos
Atributos
35
Tipos de datos
36
Circuitos Integrados y Microelectrnica
Tipos escalares
Enumerados
Los valores son identificadores o literales de un solo carcter
Pueden ser predefinidos o definidos por el usuario
Entero
Real
Fsicos
Un entero con unidades
Pueden ser predefinidos o definidos por el usuario
El tipo predefinido TIME es el nico que tiene inters
37
Declaracin de tipo
TYPE conjunto_de_letras IS (A, B, C, D);
TYPE semaforo IS (verde, amarillo, rojo);
TYPE estados IS (s0, s1, s2, s3, s4, s5);
Utilizacin
CONSTANT primera_letra: conjunto_de_letras := A;
SIGNAL semaforo1: semaforo;
SIGNAL estado_actual: estados;
...
estado_actual <= s0;
semaforo1 <= verde;
38
Circuitos Integrados y Microelectrnica
39
40
Circuitos Integrados y Microelectrnica
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY...
41
Tipo entero
Declaracin y utilizacin
CONSTANT n: INTEGER := 8;
SIGNAL i, j, k: INTEGER;
...
i <= 3;
42
Circuitos Integrados y Microelectrnica
Tipo REAL
Declaracin y utilizacin
SIGNAL d: REAL;
...
d <= 3.1416;
d <= 10E5;
d <= 2.01E-3;
No es sintetizable
No obstante, existen bibliotecas de componentes para operaciones
con nmeros reales
43
Tipos fsicos
Todos los elementos son del mismo tipo, que puede ser
cualquier tipo VHDL
TYPE byte IS ARRAY ( 7 DOWNTO 0 ) OF STD_LOGIC;
SIGNAL s: byte;
s <= 00000000;
s(2) <= 1;
s(4 downto 3) <= 00;
45
46
Circuitos Integrados y Microelectrnica
ARRAYS multidimensionales
Utilizacin
imagen(0,0) <= 1;
ram1(0)(0) <= 1;
ram1(0) <= 00000000;
imagen(0, 0 TO 7) <= 00000000; -- ERROR
47
TYPE tipo_opcode IS (sta, lda, add, sub, and, nop, jmp, jsr);
TYPE tipo_operando IS BIT_VECTOR (15 DOWNTO 0);
TYPE formato_de_instruccion IS RECORD
opcode : tipo_opcode;
operando: tipo_operando;
END RECORD;
48
Circuitos Integrados y Microelectrnica
Literales
49
Alias y subtipos
50
Circuitos Integrados y Microelectrnica
Operadores predefinidos
+, -, *, /,
Aritmticos INTEGER, REAL, INTEGER, REAL,
**, Fsico, Fsico,
MOD, REM, ABS STD_LOGIC_VECTOR STD_LOGIC_VECTOR
51
MOD y REM
Resto de la divisin:
MOD toma el signo del divisor
REM toma el signo del dividendo
5 rem 3 = 2
5 mod 3 = 2
(5) rem 3 = 2
(5) mod 3 = 1
(5) rem (3) = 2
(5) mod (3) = 2
5 rem (3) = 2
5 mod (3) = 1
52
Circuitos Integrados y Microelectrnica
53
54
Circuitos Integrados y Microelectrnica
-- sin signo
u1 >u2
UNSIGNED("1111") > UNSIGNED("0000")
-- con signo
s1 > s2
SIGNED("1111") > SIGNED("0000")
55
Funciones de conversin
USE IEEE.STD_LOGIC_ARITH.ALL;
...
SIGNAL s : STD_LOGIC_VECTOR ( 7 DOWNTO 0 );
SIGNAL i : INTEGER RANGE 0 TO 255;
...
i <= CONV_INTEGER(s);
s <= CONV_STD_LOGIC_VECTOR(i, 8)
56
Circuitos Integrados y Microelectrnica
Concatenacin y agregacin
57
Atributos
Denotan valores, funciones, tipos o rangos asociados con
varios elementos del lenguaje
Atributos predefinidos
Atributos de arrays: permiten acceder al rango, longitud o extremos
de un array
Atributos de tipos: permiten acceder a elementos de un tipo
Atributos de seales: permiten modelar propiedades de las seales
58
Circuitos Integrados y Microelectrnica
Atributos de arrays
59
Atributos de tipos
TYPE qit IS (0, 1, Z, X);
SUBTYPE tit IS qit RANGE 0 TO Z;
60
Circuitos Integrados y Microelectrnica
Atributos de seales
Atributo Tipo Descripcin
DELAYED(t) Seal Genera una seal exactamente igual, pero
retrasada t
STABLE(t) Seal Vale TRUE si la seal no ha cambiado de valor
BOOLEAN durante t
EVENT Valor Vale TRUE si la seal ha tenido un evento
BOOLEAN
LAST_EVENT Valor TIME Tiempo transcurrido desde el ltimo evento de
la seal
LAST_VALUE Valor El valor de la seal antes del ltimo evento
QUIET(t) Seal Vale TRUE si la seal no ha recibido ninguna
BOOLEAN transaccin durante t
ACTIVE Valor Vale TRUE si la seal ha tenido una
BOOLEAN transaccin
LAST_ACTIVE Valor TIME Tiempo transcurrido desde la ltimo
transaccin en la seal
TRANSACTION Seal BIT Cambia de valor cada vez que la seal recibe
una transaccin
61
Atributos de seales
62
Circuitos Integrados y Microelectrnica
63
Enumerados:
Se sintetizan como un nmero en binario natural, asignando un
cdigo binario a cada valor en orden de aparicin
64
Circuitos Integrados y Microelectrnica
65
Valores iniciales
Simulacin:
Para poder simular un diseo, todas las seales y variables deben
de tener un valor inicial. El valor inicial se puede aadir en la
declaracin del objeto
Si no se especifica un valor inicial, el lenguaje asume un valor por
defecto. En tipos enumerados es el primero por la izquierda
66
Circuitos Integrados y Microelectrnica
Valores iniciales
Sntesis
Los sintetizadores no tienen en cuenta los valores iniciales
La inicializacin debe de hacerse en el propio diseo (tal como
ocurre en el hardware real)
SIGNAL b: STD_LOGIC;
....
PROCESS (reset, ....)
BEGIN
IF reset = '1' THEN
b <= '0';
...
67