introducciÓn al lenguaje vhdl para circuitos...
TRANSCRIPT
INTRODUCCIÓN AL LENGUAJE
VHDL PARA CIRCUITOS
COMBINACIONALES
UNIDAD VI
Diseño Digital
Dra. Adriana del Carmen Téllez Anguiano
HLD
Opción de diseño para sistemas
electrónicos elaborados.
Integrar más dispositivos en un circuito
integrado.
VHDL
Permiten abordar problemas lógicos a nivel
funcional
Dra. Adriana del Carmen Téllez Anguiano
NIVELES DE ABSTRACCIÓN
Algorítmico (funcional):
Relación funcional entre entradas y salidas,
sin referencia a realización final.
Transferencia de registros:
Partición del sistema en bloques funcionales,
sin detalles de la realización de cada bloque.
Lógico o de compuertas:
El circuito se expresa en términos de
ecuaciones lógicas o compuertas
Dra. Adriana del Carmen Téllez Anguiano
VHDL
Lenguaje más usado a nivel industrial
Década de los ochenta.
Creado por el Depto. de Defensa de EUA
“Very High Speed Integrated Circuits” (VHSIC)
Estándar de comunicación y documentación.
Publicado como estándar por el IEEE
IEEEstd 1076-1987
VHDL IEEE 1164 (1993)
Dra. Adriana del Carmen Téllez Anguiano
VENTAJAS (VHDL)
Notación formal.
Disponibilidad pública.
Independencia tecnológica del diseño.
Independencia de tecnología y proceso de fabricación.
Capacidad descriptiva en distintos niveles de abstracción.
Uso como formato de intercambio de información.
Independencia de los proveedores.
Reutilización del código.
Facilita participar en proyectos internacionales.
Dra. Adriana del Carmen Téllez Anguiano
DESVENTAJAS (VHDL)
Si tiene características especiales se
pierde libertad de diseño.
Lenguaje complejo
Difícil de aprender (novatos)
Dra. Adriana del Carmen Téllez Anguiano
COMPAÑÍAS
Altera Corporation
Cypress semiconductor
Clear logic
Motorola
Xilinx
Dra. Adriana del Carmen Téllez Anguiano
UNIDADES BÁSICAS DE DISEÑO
Declaración de entidad (entity declaration)*
Arquitectura (Architecture)
Configuración (Configuration)*
Declaración del paquete (Package
declaration)*
Cuerpo del paquete (Package body)
Dra. Adriana del Carmen Téllez Anguiano
ENTIDAD (ENTITY)
Bloque elemental de diseño en VHDL
Sumadores, contadores, compuertas, memorias…
Representaciones
Nivel compuertas
Funcional
Diagrama a bloques
Dra. Adriana del Carmen Téllez Anguiano
PUERTOS DE ENTRADA-SALIDA
Puerto:
Cada una de las señales de entrada – salida en
una entidad
Nombre
Modo
Tipo de dato
Similar a una terminal (pin)
Dra. Adriana del Carmen Téllez Anguiano
MODOS (PUERTOS)
Modo in
Modo out
Modo inout
Modo buffer
Comparador
In
Buffer
Out
Inout
OutIn
In
Dra. Adriana del Carmen Téllez Anguiano
TIPOS DE DATOS (PUERTOS)
Bit:
0 y 1 lógico
Boolean:
Verdadero o falso
Bit_vector:
Conjunto de bits
Integer
Número entero
Dra. Adriana del Carmen Téllez Anguiano
DECLARACIÓN DE ENTIDADES
Consiste en la descripción de las entradas y
salidas de un circuito de diseño
1 --Declaración de la entidad de un circuito sumador
2 entity sumador is
3 port (A, B, Cin: in bit;
4 Suma, Cout: out bit);
5 end sumador;
Entidad
sumadorA
Cin
B Suma
Cout
Dra. Adriana del Carmen Téllez Anguiano
IDENTIFICADORES
Nombres o etiquetas para referir variables,
constantes, señales …
Regla Incorrecto Correcto
Primer carácter debe ser letra
(Mayúscula o minúscula)
4suma Suma4
Segundo carácter no debe ser un guión bajo
S_4bits S4_bits
Dos guiones juntos no se permiten Resta__4 Resta_4_
No puede utilizar símbolos Clear#8 Clear_8
Dra. Adriana del Carmen Téllez Anguiano
DISEÑO DE ENTIDADES
MEDIANTE VECTORES
port (vector_A, vector_B: in bit_vector (3 downto 0);
vector_Suma: out bit_vector (3 downto 0));
vector_A(3)=A3 vector_B(3)=B3 vector_Suma(3)=S3
vector_A(2)=A2 vector_B(2)=B2 vector_Suma(2)=S2
vector_A(1)=A1 vector_B(1)=B1 vector_Suma(1)=S1
vector_A(0)=A0 vector_B(0)=B0 vector_Suma(0)=S0
3 downto 0 = descendente 0 to 3 = ascendente
Entidad
sumadorA[3:0]
Cin
B[3:0] Suma[3:0]
CoutVector_A = [A3, A2, A1, A0]
Vector_B = [B3, B2, B1, B0]
Vector_Suma = [S3, S2, S1, S0]
Dra. Adriana del Carmen Téllez Anguiano
DECLARACIÓN DE ENTIDADES
MEDIANTE LIBRERÍAS Y PAQUETES
Permiten declarar y almacenar estructuras lógicas Agilizan el diseño
VHDL
Librerías – Paquetes
IEEE std_logic_1164 (Tipos de datos empleados en VHDL)
Work numeric_std (Funciones para realizar operaciones, dif. datos)
std_arith (Funciones y operadores ariméticos)
gatespkg
1 library ieee;
2 use ieee.std_logic_1164.all;
3 entity multiplica is
4 port (X0, X1, Y0, Y1: in std_logic;
5 Z3, Z2, Z1, Z0: out std_logic);
6 end multiplica;
Dra. Adriana del Carmen Téllez Anguiano
ARQUITECTURAS
Estructura que describe el funcionamiento de una entidad. Se puede describir desde el nivel de compuertas hasta
sistemas complejos (Diseño)
Estilos de programación:
Funcional
Por flujo de datos
Estructural
Dra. Adriana del Carmen Téllez Anguiano
DESCRIPCIÓN FUNCIONAL
Si a = b c = 1
Si a b c = 0
1 -- Descripción funcional 10 compara: process (a, b)
2 library ieee 11 begin
3 use ieee.std_logic.1164.all 12 If a = b then
4 entity comp is 13 c<=´1´;
5 port (a, b: in bit_vector (1 downto 0); 14 else
6 c: out bit); 15 c<=´0´;
7 end comp; 16 end if;
8 architecture funcional of comp is 17 end process compara;
9 begin 18 end funcional;
Comparadora
c
b
2
2
Dra. Adriana del Carmen Téllez Anguiano
DESCRIPCIÓN POR FLUJO DE DATOS
Si a = b c = 1
Si a b c = 0
1 -- Descripción mediante when-else 7 end comp;
2 library ieee 8 architecture f_datos of comp is
3 use ieee.std_logic.1164.all 9 begin
4 entity comp is 10 c<=´1´ when (a=b) else ´0´;
5 port (a, b: in bit_vector (1 downto 0); 11 --Asigna el valor de comp
6 c: out bit); 12 end f_datos;
Mediante when-else
Dra. Adriana del Carmen Téllez Anguiano
DESCRIPCIÓN POR FLUJO DE DATOS
Si a = b c = 1
Si a b c = 0
1 -- Descripción mediante ec. booleanas 7 end comp;
2 library ieee 8 architecture booleana of comp is
3 use ieee.std_logic.1164.all 9 begin
4 entity comp is 10 c <= (a(1) xnor b(1)
5 port (a, b: in bit_vector (1 downto 0); 11 and a(0) xnor b(0));
6 c: out bit); 12 end booleana;
Mediante ecuaciones booleanas
Comparadora
c
b
2
2
a0
b1
a1
b0c
Dra. Adriana del Carmen Téllez Anguiano
DESCRIPCIÓN ESTRUCTURAL
Si a = b c = 1
Si a b c = 0
1 library ieee 8 architecure estructural of comp is
2 use ieee.std_logic_1164.all 9 signal x: bit_vector (0 to 1);
3 entity comp is 10 begin
4 port (a, b: in bit_vector (1 downto 0); 11 U0= xnor2 port map (a(0); b(0), x(0));
5 c: out bit); 12 U1= xnor2 port map (a(1); b(1), x(1));
6 end comp; 13 U2= and2 port map (x(0); x(1), c);
7 use work.compuerta.all 14 end estructural;
a0
b1
a1
b0
c
U0
U1
U2
a
bx0
x1
Dra. Adriana del Carmen Téllez Anguiano
DESCRIPCIÓN ESTRUCTURAL
1 library ieee 8 architecure estructural of comp is
2 use ieee.std_logic.1164.all 9 signal x: bit_vector (0 to 1);
3 entity comp is 10 begin
4 port (a, b: in bit_vector (1 downto 0); 11 U0= xnor2 port map (a(0); b(0), x(0));
5 c: out bit); 12 U1= xnor2 port map (a(1); b(1), x(1));
6 end comp; 13 U2= and2 port map (x(0); x(1), c);
7 use work.compuerta.all 14 end estructural;
• Basa su comportamiento en modelos lógicos establecidos• La conectividad se conoce como netlist (lista de componentes)• Permite jerarquía (División en bloques)• Ejemplo:
- xnor y and declaradas en gatespkg- x se declara como signal dentro de la estructura no en la
entidad ya que no representan una terminal interna de ésta.
Dra. Adriana del Carmen Téllez Anguiano