Está en la página 1de 21

Instituto Tecnolgico de Culiacn Departamento de Ingeniera Elctrica-Electrnica DISEO DIGITAL CON VHDL

Unidad 1: Programacin VHDL


INSTRUCTOR: DR. MODESTO GPE. MEDINA MELENDREZ AGOSTO 2012.

CONTENIDO

VHDL: su organizacin y arquitectura. Diseo lgico combinacional mediante VHDL. Diseo lgico secuencial con VHDL. Integracin de entidades en VHDL.

1. VHDL: su organizacin y arquitectura

1.1. Unidades bsicas de diseo.


La estructura general de un programa est formada por mdulos o unidades. Existen cinco tipos:
Declaracin de entidad (entity declaration); Arquitectura (architecture); Configuracin (configuration); Declaracin del paquete (package declaration); Cuerpo del paquete (package body).

La entidad, el paquete y la configuracin son unidades de diseo primarias. La arquitectura y el cuerpo del paquete son unidades de diseo secundarias. La entidad y arquitectura son indispensables en la estructura de un programa.
4

1.2. Entidad.
Una entidad (entity) es el bloque elemental de diseo en VHDL. Las entidades son los elementos electrnicos que forman un sistema digital.
Descripcin a Nivel de compuertas Smbolo funcional de la entidad Diagrama a bloques representativo de la entidad.

Puertos de entrada-salida Un puerto es cada seal de entrada y/o salida en una entidad. La declaracin de los puertos debe tener un nombre, un modo y un tipo. El modo permite definir la direccin que tomar la informacin y el tipo define qu clase de informacin se transmitir por el puerto.

1.3. Declaracin de entidades.


Consiste en la descripcin de las entradas y las salidas de un circuito de diseo identificado como entity. Por ejemplo:

(-- ) indica que el texto a la derecha es un comentario. ( ; ) se utiliza al finalizar una declaracin. ( : ) se utiliza al asignar nombres a las entradas y salidas.
8

Identificadores son nombres o etiquetas utilizados para referir variables, constantes, seales, procesos, etc. Pueden contener nmeros, letras del alfabeto y guiones bajos que separen caracteres y no tienen restriccin por longitud.
Especificacin para la escritura de identificadores.

1.4. Diseo de entidades utilizando vectores.


Se pueden utilizar palabras de varios bits, a stas se les conoce como vectores de bits. Por ejemplo,

La parte del cdigo para declarar un vector dentro de los puertos es el siguiente.

Se especifica el orden descendente como 3 downto 0, y el orden ascendente como 0 to 3.


10

Declaracin de entidades mediante libreras y paquetes. Se encuentran definidas dos libreras llamadas ieee y work. En la librera ieee se encuentra el paquete std_logic_1164. En la librera work se encuentran numeric_std, std_arithm y gatespkg. La librera work es donde se almacenan los programas que se van generando. Un paquete es una unidad de diseo que contiene sistemas preestablecidos con comportamientos optimizados.

11

Las libreras se llaman como: library ieee; La librera work no requiere declaracin. El paquete std_logic_1164 en la librera ieee contiene todos los tipos de datos que suelen emplearse en VHDL (std_logic_vector, std_logic, entre otros). Para obtener la informacin de un paquete se tiene que accesar como: use nombre_libreria.nombre_paquete.all; Por ejemplo: use ieee.std_logic_1164.all;

12

La palabra reservada all indica que se pueden usar todos los componentes almacenados. El paquete numeric_std define funciones para realizar operaciones entre diferentes tipos de datos. El paquete numeric_bit define los tipos de datos binarios con o sin signo. El paquete std_arith define funciones y operadores aritmticos. Ejemplo:

13

1.5. Arquitecturas.

Una arquitectura se define como la estructura que describe el funcionamiento de una entidad. Los estilos de programacin que pueden utilizarse en VHDL son: Estilo funcional Estilo por flujo de datos Estilo estructural

14

Descripcin funcional La descripcin funcional se basa principalmente en el uso de procesos y de declaraciones secuenciales. La arquitectura se declara como:
architecture nombre_arquitectura of nombre_entidad is begin -end nombre_arquitectura;

La declaracin del proceso para la definicin del algoritmo se realiza como:


nombre_proceso: process (a0,a1,,an) begin -end process nombre_proceso;

15

El proceso se ejecuta mediante declaraciones secuenciales del tipo if-then-else. Ejemplo:

El smbolo <= se lee como se asigna a. El nombre del proceso es opcional.


16

Descripcin por flujo de datos sta describe el camino que los datos siguen al ser transferidos de las operaciones efectuadas entre las entradas a la salida. La diferencia entre la descripcin funcional y la descripcin por flujo de datos radica en la eliminacin del proceso y en la descripcin sin declaraciones secuenciales. Se pueden utilizar dos formatos:
1. mediante instrucciones when-else; 2. por medio de ecuaciones booleanas.

17

Ejemplo:
En base a la tabla de verdad y mediante la declaracin when-else, describa el funcionamiento de la siguiente compuerta AND.

18

Ejemplo:
Describa mediante ecuaciones booleanas el circuito mostrado a continuacin:

19

Descripcin estructural Una descripcin estructural basa su comportamiento en modelos lgicos establecidos. Estos modelos (componentes) se pueden tomar de los paquetes contenidos en las libreras. Los componentes se conectan internamente con seales (alambres) que son declaradas dentro de la arquitectura. Para programar una entidad de manera estructural, primero se tiene que descomponer el diseo en pequeos mdulos. Una jerarqua en VHDL se refiere al procedimiento de dividir bloques.

20

Ejemplo:
Realice el programa correspondiente en VHDL para el siguiente circuito. Utilice descripcin estructural.

21