Dispositivos Clase3
Dispositivos Clase3
Dispositivos Clase3
VHDL
Es un lenguaje orientado a la descripción o modelado de sistemas digitales.
2
UNIDADES BÁSICAS DE DISEÑO
Estructura general de un programa en VHDL está formada por módulos o unidades
de diseño.
3
5 TIPOS DE UNIDADES BÁSICAS DE DISEÑO
1. Declaración de entidad (entity declaration)
2. Arquitectura (architecture)
3. Configuración (configuration)
4. Declaración del paquete (package declaration)
5. Cuerpo del paquete (package body)
4
UNIDADES BÁSICAS DE DISEÑO
Primarias
Entidad
Paquete
Configuración
Secundarias
Arquitectura
Cuerpo del paquete Dependen de una entidad primaria
que se analiza antes que ellas.
5
ENTIDAD (ENTITY)
Bloque elemental de diseño en VHDL
Son todos los elementos electrónicos (sumadores, contadores, compuertas, flip-flops,
memorias, multiplexores, etc.) que forman un sistema digital.
Símbolo funcional
7
MODOS
Permite definir la dirección en la cual el dato es transferido a
través de un puerto.
Puede tener 1 de 4 valores: in, out, inout y buffer.
In (entrada): se refiere a las señales de entrada a la entidad. Es
unidireccional.
Out (salida): indica las señales de salida de la entidad.
Inout (entrada/salida): permite declarar a un puerto de forma
bidireccional. Permite la retroalimentación de señales dentro o fuera de la
entidad.
Buffer: permite hacer retroalimentaciones internas dentro de la entidad. El
puerto se comporta como terminal de salida.
8
TIPOS DE DATOS
Son valores (datos) que el diseñador establece para los puertos de entrada y salida
dentro de una entidad.
Se asignan de acuerdo con las características del diseño en particular.
Tipos:
Bit, tienen valores 0 y 1 lógico
Boolean, define valores de verdadero o falso en una expresión
Bit_vector, representa un conjunto de bits para cada variable de entrada o salida.
Integer, representa un número entero.
9
DECLARACIÓN DE ENTIDADES
Consiste en la descripción de las entradas y salidas de un circuito de diseño identificado como
entity.
Señala las terminales o pines de entrada y salida con que cuenta la entidad de diseño.
10
EJEMPLO: DECLARACIÓN DE LA ENTIDAD
SUMADOR
12
SOLUCIÓN
13
IDENTIFICADORES
Son los nombres o etiquetas que se usan para referir variables, constantes, señales,
procesos, etc.
Regla Correcto Incorrecto
El primer carácter siempre es una letra Suma4 4suma
mayúscula o minúscula SUMA4
Ejemplos:
15
A y B son entradas tipo vector
Suma es salida tipo vector
Cin y Cout son entrada y salida tipo bit
16
DECLARACIÓN DE ENTRADAS/SALIDAS TIPO
VECTOR
port (vector_A, vector_B: in bit_vector (3 downto 0);
vector_SUMA: out bit_vector (3 downto 0));
entity sumador is
port (A, B: in bit_vector (3 downto 0);
Cin: in bit;
Cout: out bit;
SUMA: out bit_vector (3 downto 0));
end sumador
18
DECLARACIÓN DE ENTIDADES MEDIANTE
LIBRERÍAS Y PAQUETES
Una librería o biblioteca almacena las unidades de diseño predeterminadas por el
fabricante de la herramienta (paquete).
19
LIBRERÍA WORK
Almacena los programas que el usuario va generando.
Se encuentra siempre presente en la compilación del diseño y los díselos se guardan
en ella mientras no se especifique otra.
20
PAQUETE
Es una unidad de diseño que permite desarrollar un programa en VHDL.
Contiene algoritmos preestablecidos (sumadores, restadores, contadores, etc.) que ya
tiene optimizado ese comportamiento.
El diseñador no necesita caracterizar paso a paso una nueva unidad de diseño si ya
se encuentra almacenada en un paquete.
Es una unidad de diseño formada por declaraciones, programas, componentes y
subprogramas que incluyen diversos tipos de datos (bit, booleano, std_logic).
21
LIBRARY IEEE
Se utiliza la declaración library ieee; para mandar llamar los paquetes.
22
PAQUETE STD_LOGIC_1164
Contiene los tipos de datos que suelen emplearse en VHDL (std_logic_vector,
std_logic, entre otros).
23
OTROS PAQUETES…
numeric_std define funciones para realizar operaciones entre diferentes tipos de
datos, que pueden ser representados con signo o sin él.
std_arith define funciones y operadores artiméticos (=, >, <, entre otros).
24
EJEMPLO: DECLARE LA ENTIDAD DEL CIRCUITO,
INCLUYA LAS LIBRERÍAS Y PAQUETE
La multiplicación de (X1, X09 y (Y1, Y0) producen la salida Z3, Z2, Z1,
Z0.
25
SOLUCIÓN
1 library ieee;
2 use ieee.std_logic_1164.all;
3 entity multiplicador is
4 port (X0, X1, Y0, Y1: in std_logic;
5 Z3, Z2, Z1, Z0: out std_logic);
6 end multiplicador;
26
STD_LOGIC TYPE
This is a nine valued logic system.
It has 9 values: 'U', 'X', '0', '1', 'Z', 'W', 'L' ,'H' and '-'.
The meaning of each of these characters are:
U = uninitialized
X = unknown - a multisource line is driven '0' and '1' simultaneously (*)
0 = logic 0
1 = logic 1
Z = high impedance (tri state)
W = weak unknown
L = weak "0"
H = weak "1"
- = dont care
27
ARQUITECTURA (ARCHITECTURE)
Se define como la estructura que describe el funcionamiento de una entidad.
Estilo funcional
Estilo por flujo de datos
Estilo estructural
28
DESCRIPCIÓN FUNCIONAL
Expone la forma en que trabaja el sistema
Las descripciones consideran la relación que hay entre las entradas y salidas del circuito, sin
importar como esté organizado en su interior.
Si a = b entonces c = 1
Si a ≠ b entonces c = 0
29
1 --Ejemplo de arquitectura funcional
2 library ieee;
3 use ieee.std_logic_1164.all;
4 entity comp is
Entidad
5 port (a, b: in bit_vector (1 downto 0);
6 c: out bit);
7 end comp;
9 begin
11 begin
12 if a = b then
15 c <=‘0’;
16 end if;
18 end funcional; 30