Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 6
Unidad 6
2 - Fundamentos
del Lenguaje VHDL
Departamento de la Defensa
de los E.U.A.
Desarrollo de Lenguajes para
Descripción de Hardware
Programa: Very High Speed
Integrated Circuits (VHSIC)
1970’s
IDL/IBM, HDL/TI, ZEUS/GE 1983 VHDL Desarrollo:
Desarrollo en Área Industrial
IBM, Texas Instruments e
AHPL, DDL, CDL, ISPS Intermetrics
Desarrollo en Área Académica
1987 VHDL’87
1980’s
Estándar IEEE -1076
AHDL, ABEL, CUPL
VHDL y Verilog
1993 VHDL’93
Estándar IEEE -1164
Cap.2 - Fundamentos del Lenguaje VHDL
Símbolos especiales Existen caracteres especiales sencillos como (&, #, +, *, =) o dobles como ( :=, <=).
Identificadores Es lo que se usa para dar nombre a los diferentes objetos del lenguaje.
Números Se considera que se encuentra en base 10, se admite la notación científica convencional
es posible definir números en otras bases utilizando el símbolo # : 2#11000100#
Cadenas de bits Los tipos bit y bit_vector son en realidad tipo carácter y arreglo de caracteres
respectivamente, se coloca un prefijo para indicar la base : O”126”, X”FE”
Palabras reservadas Son las instrucciones, órdenes y elementos que permiten definir sentencias.
Cap.2 - Fundamentos del Lenguaje VHDL
Identificadores
Nombres o etiquetas que se usan para referirse a: Variables,
Constantes, Señales, Procesos, Entidades, etc.
Están formados por números, letras (mayúsculas o minúsculas) y
guión bajo “_” con las reglas especificadas en la tabla siguiente.
Longitud (Número de Caracteres): Sin restricciones
Palabras reservadas por VHDL no pueden ser identificadores
En VHDL, un identificador en mayúsculas es igual a su contraparte
en minúsculas
Mayor
Precedencia de operadores
** ABS NOT
* / MOD REM
+ (signo) - (signo)
+ - &
= /= < <= > <=
Menor
La
La precedencia
precedencia dede operadores
operadores sese encuentran
encuentran ordenados
ordenados de de mayor
mayor (arriba)
(arriba) aa
menor
menor (abajo),
(abajo), los
los operadores
operadores que
que sese encuentran
encuentran enen lala misma
misma fila
fila tienen
tienen lala
misma
mismaprecedencia
precedenciayyserán
seránevaluados
evaluadossiguiendo
siguiendoelelorden
ordende deizquierda
izquierdaaaderecha.
derecha.
Cap.2 - Fundamentos del Lenguaje VHDL Objetos y Tipos de Datos
Un
Un objeto
objeto de
de datos
datos en
en VHDL
VHDL eses unun elemento
elemento que
que toma
toma unun valor
valor de
de algún
algún tipo
tipo de
de dato
dato
determinado, según sea el tipo de dato, el objeto poseerá un conjunto de propiedades.
determinado, según sea el tipo de dato, el objeto poseerá un conjunto de propiedades.
En
EnVHDL
VHDLloslosobjetos
objetosdededatos
datosson
songeneralmente
generalmenteuna unadedelas
lastres
tresclases
clasessiguientes:
siguientes:
Constantes Variables
Una constante es un elemento que puede tomar un Las variables pueden ser modificadas cuando sea
único valor de un tipo dato, las constantes pueden necesario, pueden ser declaradas solamente dentro
ser declaradas dentro de entidades, arquitecturas, de los procesos y subprogramas.
procesos y paquetes.
Ejemplo-1: Sumador
Cin
Entidad Cout
Puertos de Entrada A Puertos de Salida
Sumador SUMA
B
¡Importante!
No se describe cómo será realizado o implementado el circuito, es decir, su Arquitectura
Cap.2 - Fundamentos del Lenguaje VHDL Entidad - ¿Cómo se describe a un Puerto?
Descripción de un Puerto
Arreglos de
std_logic_vector std_logic
(pkg.std_logic_1164)
Más tipos
Se irán introduciendo conforme avance el curso
Cap.2 - Fundamentos del Lenguaje VHDL Entidad - Ejemplo: Sumador Completo
Ejemplo-2: Sumador
Cin
Entidad Cout
Puertos de Entrada A Puertos de Salida
Sumador SUMA
B
Ejemplo-3 a3
b3
a2
b2 F
a1
b1
a0
b0
Ejemplo-4
Cin
vector_A = [A3, A2, A1, A0] Entidad
vector_B = [B3, B2, B1, B0] Sumador
Cout
vector_SUMA = [S3, S2, S1, S0]
Ejemplo-5 a3
b3
a2
b2 F
a1
b1
a0
b0
user work
Biblioteca (library)
comps_dsp
•Lugar donde se almacenan los Paquetes definidos por
el fabricante de la herramienta de desarrollo o el
usuario.
•Lugar donde se permite almacenar resultados de la
xc compilación de diseños, con el fin de utilizarlos en
otros.
Paquetes
•Un paquete contiene:
ieee
std_logic_arith
std_logic_1164
Paquetes
Bibliotecas
Cap.2 - Fundamentos del Lenguaje VHDL Entidad - Uso de Librerías y Paquetes
Ejemplo-6
X0 Z0
X1 Circuito Z1
Y0 Multiplicador Z2
Y1 Z3
arquitectura (architecture)
Unidad de Diseño Secundaria que describe el comportamiento interno de una entidad.
Estilo de descripción o
Niveles de Descripción utilizados Modelización
Ejemplo-7: MUX
--Entidad
ENTITY mux IS
PORT (a, b, sel: IN bit;
sal: out bit);
END mux;
--Arquitectura Estructural
ARCHITECTURE estructural OF mux IS
SIGNAL ax, bx, nosel :bit;
BEGIN
U0: ENTITY inv PORT MAP (e=>sel, y=>nosel);
U1: ENTITY and2 PORT MAP (e1=>a, e2=>nosel, y=>ax);
U2: ENTITY and2 PORT MAP (b, sel, bx);
U3: ENTITY or2 PORT MAP (e1=>ax, e2=>bx, y=>sal);
END estructural ;
Cap.2 - Fundamentos del Lenguaje VHDL Ejemplo general- MUX
Ejemplo-9
Línea Arquitectura - Compuerta OR de dos entradas
Nº
1 --Ejemplo de una descripción abstracta (funcional)
a
f1 2 library ieee;
b 3 use ieee.std_logic_1164.all;
4 entity com_or is
5 port (a,b: in std_logic;
a b f1
6 f1: out std_logic);
0 0 0 7 end com_or;
0 1 1 8 architecture funcional of com_or is
1 0 1 9 begin
1 1 1 10 process (a,b) begin
11 if (a = ‘0’ and b=‘0’) then
12 f1 <= ‘0’;
13 else
14 f1 <= ‘1’;
15 end if;
16 end process;
17 end funcional;
Cap.2 - Fundamentos del Lenguaje VHDL Estilo de Modelización – Flujo de Datos
Flujo de Datos - En este caso, se describe la forma en la que los datos se pueden transferir entre
los diferentes módulos operativos que constituyen la entidad (sistema o circuito)
La construcción when-else
Ejemplo-11
Comparador
(Ejemplo-8) Línea Arquitectura - Comparador de Igualdad de dos Datos
Nº de Long. = 2Bits
1 --Ejemplo de una arquitectura usando ecs. booleanas
a 2 library ieee;
c
b Comparador 3 use ieee.std_logic_1164.all;
4 entity comp is
5 port (a,b: in bit_vector (1 downto 0);
6 c: out bit);
a0 7 end comp;
b0 c 8 architecture booleana of comp is
a1 9 begin
b1
10 c <= (a(1) xnor b(1)) and (a(0) xnor b(0));
11 end booleana;
12
Cap.2 - Fundamentos del Lenguaje VHDL Estilo de Modelización – Estructural
Almacenados en Paquetes
contenidos en las bibliotecas de
la Herramienta de Desarrollo
Cap.2 - Fundamentos del Lenguaje VHDL Estilo de Modelización – Estructural
Ejemplo-12 a0
b0 U0 x0
Comparador U2 c
(Ejemplo-8) a1 U1 x1
b1