INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS...

Post on 28-Sep-2018

224 views 1 download

Transcript of INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS...

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