introducciÓn al lenguaje vhdl para circuitos...

22
INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen Téllez Anguiano

Upload: dinhdien

Post on 28-Sep-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

INTRODUCCIÓN AL LENGUAJE

VHDL PARA CIRCUITOS

COMBINACIONALES

UNIDAD VI

Diseño Digital

Dra. Adriana del Carmen Téllez Anguiano

Page 2: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 3: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 4: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 5: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 6: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 7: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

COMPAÑÍAS

Altera Corporation

Cypress semiconductor

Clear logic

Motorola

Xilinx

Dra. Adriana del Carmen Téllez Anguiano

Page 8: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 9: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 10: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 11: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

MODOS (PUERTOS)

Modo in

Modo out

Modo inout

Modo buffer

Comparador

In

Buffer

Out

Inout

OutIn

In

Dra. Adriana del Carmen Téllez Anguiano

Page 12: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 13: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 14: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 15: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 16: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 17: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 18: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 19: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 20: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 21: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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

Page 22: INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS COMBINACIONALESsagitario.itmorelia.edu.mx/actelleza/DD/VHDL.pdf · COMBINACIONALES UNIDAD VI Diseño Digital Dra. Adriana del Carmen

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