Está en la página 1de 59

Universidad de Guadalajara

Departamento de Electrnica

Introduccin al lenguaje de descripcin de hardware


VHDL
ACADEMIA DE SISTEMAS DIGITALES AVANZADOS

Febrero 2008

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Porque me seria til usar el VHDL?


Si revisamos los dos mtodos
tradicionales de diseo lgico:
Solucin de ecuaciones lgicas.

El diseo esquemtico realizado en computadora.


Ambos mtodos son usados actualmente, y se ha
desarrollado hasta llegar a ser muy efectivos. Pero el
desarrollo de los sistemas computarizados a
favorecido a una herramienta que cubra ambas
necesidades e incremente su potencialidad en el
diseo. El Lenguaje HDL.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Para qu sirven los HDLs?

Los lenguajes de descripcin de


HW sirven para modelar circuitos.
Para Expresar Ideas

Los modelos se pueden


simular para comprobar
que se corresponden con la
funcionalidad deseada

O se puede sintetizar para


crear un circuito que
funciona como modelo

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Los HDLs como documentacin

Los modelos de los circuitos si


estn bien comentados sirvan
como documentacin.

La mejor
Documentacin
es el cdigo
fuente

Utilizar HDLs
para hacer las
especificaciones

Los HDLs se pueden


utilizar tambin para
crear
bancos
de
pruebas, o sea, para
crear estmulos y ver
resultados durante la
simulacin

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Los HDLs cuando el circuito ya existe

if A = 1 And B=1
then s<= ?1? After 5 ns;
else s<=0 after 4 ns;
end if;

Se puede crear un modelo


de un circuito que ya exista.

Simulacin
post Layout

En este caso el objetivo es simular


el circuito para comprobar que su
funcionalidad se ajusta a las
especificaciones iniciales.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Que es el VHDL?
VHDL es un acrnimo en donde la letra V se utiliza para (Very high
speed integrated circuit) los circuitos integrados de alta velocidad, y
las letras HDL provienen de (Hardware Description Language),
lenguaje de descripcin de HW.
Este nombre fue aceptado por primera ves por el departamento de
defensa de los EUA, el cual fue la primera institucin en entender la
importancia y los beneficios de contar con un lenguaje de diseo til
para la documentacin, modelado y simulacin de circuitos
electrnicos.
Bajo el patrocinio de sta, el VHDL fue introducido en el mundo de
las aplicaciones del diseo.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Historia

Lenguajes de Descripcin de Hardware VHDL

Alrededor
de
1981
el
Departamento de Defensa de los Estados Unidos desarrolla un
proyecto llamado VHSIC (Very High Speed Integrated Circuit ) su
objetivo era rentabilizar las inversiones en hardware haciendo
ms sencillo su mantenimiento. Se pretenda con ello resolver el
problema de modificar el hardware diseado en un proyecto
para utilizarlo en otro, lo que no era posible hasta entonces
porque no exista una herramienta adecuada que armonizase y
normalizase dicha tarea. ( HDL's )
En 1983, IBM, Intermetrics y Texas Instruments empezaron a
trabajar en el desarrollo de un lenguaje de diseo que permitiera
la estandarizacin, facilitando con ello, el mantenimiento de los
diseos y la depuracin de los algoritmos, para ello el IEEE
propuso su estndar en 1984.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Historia

Lenguajes de Descripcin de Hardware VHDL

Tras varias versiones llevadas a cabo con la colaboracin de la


industria y de las universidades, que constituyeron a posteriori etapas
intermedias en el desarrollo del lenguaje, el IEEE public en diciembre
de 1987 el estndar IEEE std 1076-1987 que constituy el punto firme
de partida de lo que despus de cinco aos sera ratificado como
VHDL.
Esta doble influencia, tanto de la empresa como de la universidad,
hizo que el estndar asumido fuera un compromiso intermedio entre
los lenguajes que ya haban desarrollado previamente los fabricantes,
de manera que ste qued como ensamblado y por consiguiente un
tanto limitado en su facilidad de utilizacin haciendo dificultosa su total
comprensin. Este hecho se ha visto incluso ahondado en su revisin
de 1993.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Historia

Lenguajes de Descripcin de Hardware VHDL

La independencia en la metodologa de diseo, su capacidad


descriptiva en mltiples dominios y niveles de abstraccin, su
versatilidad para la descripcin de sistemas complejos, su posibilidad
de reutilizacin y en definitiva la independencia de que goza con
respecto de los fabricantes, han hecho que VHDL se convierta con
el paso del tiempo en el lenguaje de descripcin de hardware por
excelencia

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Historia

Lenguajes de Descripcin de Hardware VHDL

El primer estndar VHDL apareci en 1987 como Std 1076 y desde


entonces la siguiente revisin fue en 1993, posteriormente la IEEE
organizo perodos de revisin cada cierto tiempo para revisar las
normas y reglas que mantenga al lenguaje actual al desarrollo
tecnolgico.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

VHDL: Evolucin

1980 El departamento de defensa de


los USA funda el proyecto para crear el
HDL estndar dentro del programa
VHSIC.
1981 Woods Hole Workshop,
reunin inicial entre el gobierno,
Universidades e industria.
1983 se concedi a Intermetrics, IBM
y Texas Instruments el contrato para
desarrollar VHDL.
1985 Versin 7.2 de dominio pblico.
1987 el IEEE lo ratifica como su
estndar 1076 (VHDL-87)
1993 El lenguaje VHDL fue revisado
y ampliado, pasando a ser estndar
1076 93 (VHDL-93)

1998 Las universidades de USA y UE,


incorporan este lenguaje a las
ingenieras.
2000 ltima modificacin de VHDL

CONCEPTOS
VHDL

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Interior del TV

Cmo se disea con


VHDL?
Cmo es el diseo
electrnico?

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Diseo con ecuaciones boolenas

Diseo ampliamente utilizado, y


que requiere del diseador de
conocimientos en las tcnicas
de minimizacin y reduccin de
trminos
para
encontrar
ecuaciones ms eficientes.
Actualmente
diversos
programas de computadoras
tiene sistemas de simulacin y
simplificacin automticos.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Diseo con esquemticos

Tradicionalmente estos son


mtodos extendidos de las
ecuaciones boolenas.
Ms
gente
prefiere
la
representacin
esquemtica
por que es ms clara de
observarse. Durante mucho
tiempo se considero como el
mtodo ms optimizado de
diseo.

Lenguajes de Descripcin de Hardware VHDL

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Diseo de alta densidad


Los diseos de alta densidad con los mtodos clsicos basados en
esquemticos han alcanzado niveles muy altos, que empiezan a
limitar la flexibilidad del diseo.
Circuitos de un alto nmero de elementos crea diagramas complejos y
difciles de analizar.
Este tipo de limitaciones dio paso al desarrollo de lenguajes de
descripcin de hardware HDLs.
Sin embargo un lenguaje de alto nivel abstraccin que no siempre
resulta fcil de aplicar por el diseador que no conoce sobre temas de
programacin.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Diseo de alta densidad


A pesar del fcil uso de las tradicionales ecuaciones boolenas y
los esquemticos tienen ciertas desventajas.
Con los diseos tradicionales y el uso de los mtodos
esquemticos circuitos con ms de seis mil compuertas lgicas
podra llegar a ser incomprensibles sin un mtodo y herramienta
de software adecuada.
Pero en la actualidad los nuevos integrados tienen del orden de
millones de compuertas disponibles para el diseo.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Generalmente un sistema se
describe como una red elementos
interconectados.
La especificacin de un sistema es
dado en funcin del comportamiento
esperado de ste.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Una de las desventajas de los


mtodos tradicionales son la
traduccin del diseo a las
ecuaciones lgicas.
Este
paso
puede
ser
simplificado con el uso del
HDL.
Por ejemplo este lenguaje
permite el uso de mquinas
finitas de estados para
sistemas
secuenciales
y
tablas
de
verdad
para
mdulos combinacionales.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

El HDL es utilizado principalmente para las apliciones de los circuitos


lgicos programables PLDs, los complex CPLDs y las Field
Programmable Gate Arrays FPGAs.
Existen varios lenguajes de descripcin de hardware HDL en uso
actualmente. Los ms difundidos son el VHDL, Verilog y el Abel.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

El HDL es utilizado principalmente para las apliciones de los circuitos


lgicos programables PLDs, los complex CPLDs y las Field
Programmable Gate Arrays FPGAs.
Existen varios lenguajes de descripcin de hardware HDL en uso
actualmente. Los ms difundidos son el VHDL, Verilog y el Abel.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

El HDL es utilizado principalmente para las apliciones de los circuitos


lgicos programables PLDs, los complex CPLDs y las Field
Programmable Gate Arrays FPGAs.
Existen varios lenguajes de descripcin de hardware HDL en uso
actualmente. Los ms difundidos son el VHDL, Verilog y el Abel.

Introduccin VHDL

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Introduccin al VHDL
La estructura de un programa en VHDL est formado por:
Mdulos / unidades.
Cada uno de ellos est compuesto por declaraciones e
instrucciones, los cuales definen, describen, estructuran,
analizan y evalan el comportamiento de un sistema digital.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Existen cinco tipos de unidades de diseo en VHDL:


Declaracin de entidad (entity declaration )
Arquitectura (architecture)
Configuracin (configuration)
Declaracin de paquete
Cuerpo del paquete

(package declaration)

(package body)

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Entidad ( entity )

La entidad es el bloque principal de un programa en VHDL, las


entidades son los todos los elementos electrnicos como:
Compuertas, contadores, sumadores, flip flops etc.
Que forman de manera individual el circuito digital que se disea.

Una entidad se puede representar a nivel :


Compuertas
Sistema, (declarando solo entradas y salidas)
Combinacin de ambos ( declarando In/out y compuertas )

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Nivel Sistema
Nivel Compuertas

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Una buena practica para realizar un buen diseo es analizar el


ambiente del sistema. Definir bien la entidad es importante, en esta
seccin del programa se describe la interconexin con los dems
elementos

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

La entidad es una parte del sistema que provee una interface y


generalmente esta compuesto de dos elementos:
Parmetros del sistema
que son los observados
desde el exterior del
sistema. Como ancho de
bus, mxima frecuencia.
Conexiones las cuales
son
transfirieren
la
informacin del sistema
(entradas y salidas)

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

La entidad provee una parte del sistema que provee una


interface y generalmente esta compuesto de dos elementos:
Parmetros del sistema
que son los observados
desde el exterior del
sistema. Como ancho de
bus, mxima frecuencia.
Conexiones las cuales
son
transfirieren
la
informacin del sistema
(entradas y salidas)

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Abstraccin: caja negra

Lenguajes de Descripcin de Hardware VHDL

Entidad y arquitectura

Una unidad de HW se visualiza


como una caja negra

El interfaz de la caja negra est


completamente definida.

El interior est oculto.


Interfaz: entradas y salidas

En VHDL la caja
denomina entidad

negra

se

La entity describe la E/S diseo.


Para describir su funcionamiento
se asocia una implementacin que
se denomina arquitectura

La architecture describe el
contenido del diseo.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

de Descripcin de Hardware VHDL


PORTS : Modos deLenguajes
un puerto

(1)

(2)
(3)
(4)

Modos de los puertos


Indican la direccin y si el puerto puede leerse
o escribirse dentro de la entidad.

IN una seal que entra en la entidad y no sale.


OUT una seal que sale fuera de la entidad.
BUFFER una seal que sale de la entidad y
tambin es realimentada dentro de la entidad
INOUT una seal que es bidireccional,
entrada/salida de la entidad.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL


Estructura de un diseo
VHDL

library ieee;
use ieee.std_logic_1164.all
Entity nombre_entity is

Declaraciones
de puertos

Nombre de
la entidad

Port (
);

End nombre_entity;
architecture nombre_Arq of nombre_entity is

Parte declarativa
de la arquitectura
begin

cuerpo de la
arquitectura

end nombre_Arq;

Nombre de la
arquitectura

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL


Entradas y Salidas

Las entradas y salidas son referidas en una entidad como


puertos, lo que sera equivalente en un circuito como una
terminal o pin.
En una Entidad todos los puertos deben tener
un nombre, un modo y un tipo de dato.

nombre

Modo
In

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Cuando declaramos un puerto este se puede definir por el tipo de


modo que es:
Modo in

entrada

Modo out

salida

Modo Inout bidireccional, utilizado para retroalimentaciones


Modo Buffer esta es similar que el inout, permite
retroalimentaciones internas dentro de la entidad, pero el
puerto es declarado como una terminal de salida.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Tipos bsicos predefinidos


Tipos IEEE - 1076

BIT : slo puede tomar los valores de 0 o 1. Para modelar


seales digitales.
BIT_VECTOR : una array unidimensional (vector) de bits. Para
modelar buses.
INTEGER : tipo entero, usado como valor ndice en lazos,
constantes o valores genricos.
BOOLEAN : Tipo lgico, puede tomar valores True o False.
REAL : tipo para nmeros en coma flotante.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

de Descripcin de Hardware VHDL


PORTS : Modos deLenguajes
un puerto

El objeto en VHDL es la seal, que se utiliza para modelar los hilos del
circuito.
Puesto que modela nodos fsicos, incluye informacin de tiempo.
No slo contiene unos valores ( 0, 1, Z etc..) sino tambin el tiempo en el
que se toman estos valores.

Se declaran antes del begin de la arquitectura (en la parte declarativa):


Architecture UdeG of prueba is
Signal s1 : std_logic;
Signal s2 : Integer;
Begin

Puede tener un valor inicial (no soportado en la sntesis)


Signal a : std_logic :=0;

Para asignar valores a una seal se utiliza <=

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL


Usando arrays para crear
buses

Los vectores se pueden definir tanto en rangos ascendentes como


descendentes:
SIGNAL a: std_logic_vector(0 to 3);

-- rango ascendente

SIGNAL b: std_logic_vector(3 downto 0);

-- rango descendente

a <= 0101;
b <= 0101;

Produce como resultado:


a(0) = 0; a(1) = 1; a(2) = 0; a(3) = 1;
b(0) = 1; b(1) = 0; b(2) = 1; b(3) = 0;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL


Asignacin de seales
en buses

Flexibilidad a la asignacin de valores de buses


SIGNAL tmp: std_logic_vector(7 downto 0);

Todos los bits:


tmp <= 10111000

Un solo bit:
tmp (7) <= 1;

Un rango de bits:
tmp(7 downto 4) <= 1011;

Notacin:
1 bit : comilla ( )
Mltiples Bits : comilla doble ( )

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Operadores definidos en VHDL


Lgicos:

and, or, nor, xor, xnor

Relacionales: = igual, /=distinto, < menor, <= menor o igual,


> mayor, >= mayor o igual
Miscelneos: abs valor absoluto, ** exponenciacin,
not negacin
Adicin: + suma, - resta & concatenacin de vectores
Multiplicativos: * multiplicacin, / divisin, rem resto,
mod mdulo
Signo: +,

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Ms sobre Operadores

No todos los operadores estn definidos para todos los tipos.


En particular, para los std_logic habr que obtenerlos de las
libreras estndar:
std_logic_signed
std_logic_unsigned
std_logic_arith

El operador de concatenacin se utiliza muy a menudo.


signal a: std_logic_vector (3 downto 0);

a <= 1010;

signal b: std_logic_vector (3 downto 0);

b <= 0011

signal c: std_logic_vector (7 downto 0);

c <= a & b;

Los operadores de desplazamiento bsicos slo funcionan con


bit_vector. Es mucho mejor usar concatenacin con std_logic.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Entrando en detalle en la arquitectura

architecture circuito of ejemplo is


Aqu se definen los

subtipos y las seales


que vamos a usar

begin

end

En el cuerpo de la arquitectura se
modela el comportamiento del
circuito con asignaciones,
architecture
circuito; y Procesos.
instanciaciones

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

El proceso: el elemento de diseo principal


Un proceso describe el comportamiento de un circuito.

Cuyo estado puede variar cuando cambian ciertas seales.


Utilizando construcciones muy expresivas: if..then..else
Bucles for y while etc..
process ( lista de seales)

Parte declarativa ( variables, procedimientos, tipos etc..)

Instrucciones que describen el comportamiento


..
end process;

Iniciando a programar
con VHDL
Cmo se declara
la entidad?
Cmo se
declara la
arquitectura?

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Declaracin de una Entidad

(1)

La declaracin de una entidad consiste en la descripcin de los


puertos o entradas y salidas del circuito que se va a disear.
En esta parte del programa declaramos todas las entradas y
salidas que requiere nuestro diseo para trabajar como
queremos.
Entity sumador is
Port (A,B,cin: in std_logic;
suma,cout:out std_logic);
End sumador;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Declaracin de una Entidad

(2)

Ejemplo de la entidad de un circuito andmltiple


-- declaracin de la entidad
Entity andmultiple is
Port (a,b,c,d,e,f,: in std_logic;
g:out std_logic);
End andmultiple;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Declaracin de una Entidad

(3)

Una entidad puede tener entradas compuestas de varios bits, las


cuales se pueden representar como vectores de bits.

-- declaracin de la entidad
Entity sumador is
Port(vector_A,vector_B:in std_logic_vector(10 downto 0);
Cin:in_std_logic;
Suma:out_std_logic_vector (10 downto 0);
Cout:out std_vector);
End andmultiple;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL


Declaracin de una
Entidad (4)

Ejercicio declare la
entidad del siguiente
circuito:

-- declaracin de la entidad
Entity multiplicador is
Port (A0,A1,A2: in std_logic;
B0,B1,B2: in std_logic;
Result:out std_logic_vector(5 downto 0));
End multiplicador;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL


Declaracin de una
Entidad (5)

Las libreras y los paquetes en la programacin en VHDL permiten


declarar y almacenar estructuras lgicas por mdulos
independientes o estructuras completas.
Las libreras o bibliotecas son implementadas por el fabricante y
pueden ser utilizadas con la herramienta de diseo.
Cuando en un diseo se utiliza algn paquete es necesario llamar a
la librera que lo contiene, de la siguiente manera.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Paquetes

Los paquetes que estn disponibles en la librera ieee son varios,


uno de los ms utilizados podemos mencionar:
Std_logic_1164 estndar lgico 1164 el cual contiene todos los
tipos de datos que ms comnmente se utilizan en VHDL.
Para poder utilizar este paquete se debe utilizar la sentencia use
seguida del nombre de la librera y del paquete:
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

La palabra ALL indica que se pueden utilizar


todos los componentes del paquete

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Arquitectura
La arquitectura es la parte del programa que describe el
funcionamiento de la entidad, es la que describe como funciona el
circuito representado por nuestra entidad.
El lenguaje de programacin VHDL permite definir una arquitectura
de diferentes formas. Por ejemplo se puede describe un circuito a
nivel de compuertas o mediante algn algoritmo de programacin.

Estilo comportamental
Estilo de flujo de datos
Estilo estructural

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Estilo comportamental

El estilo de programacin comportamental bsicamente consta de


realizar la descripcin del circuito en forma funcional, es decir
de acuerdo a las entradas y los resultados esperados en la salida,
el comportamiento del sistema deber ser realizado cumplido. Sin
importar que elementos componen al sistema en su interior.

Comportamiento

Si A = B entonces Salida = 1
Si A B entonces Salida = 0
If A = B then
salida <=1;
else salida <= 0;
end if

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Arquitectura comportamental

proceso

La arquitectura est compuesta por mdulos llamados procesos


process, cada bloque independiente realiza una operacin.
architecture comportamental of circuito is
begin
process (A,B,C,D)
begin
descripcin del sistema
end process circuito;
end comportamental;

lista de sensibilidad

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Ejercicio:

Lenguajes de Descripcin de Hardware VHDL

Implementar la arquitectura comportamental de un


comparador de 4 bits.

library ieee;
use ieee.std_logic_1164.all
entity comparador is
port (A,B in std_logic_vector (3 downto 0);
Salida out std_logic);
end comparador;
architecture comportamental of comparador is
begin
Process (A,B)
begin
If A = B then
Salida <=1;
else salida <= 0;
end if;
end process comparador;
end comportamental;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Descripcin por flujo de datos


La descripcin por flujo de datos indica la forma que los datos se
transfieren de una seal a otra, si la necesidad de declaraciones
secuenciales.
En este tipo de descripcin su utilizan dos tipos de instrucciones:
When else ( cuando si no)
Ecuaciones boolenas
architecture flujodatos of comparador is
begin

c toma el valor 1

c <= 1 when (a=b) else 0 ;

Cuando a=b

end flujodatos;

Si no el valor 0

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Ejercicio:

Lenguajes de Descripcin de Hardware VHDL

Implementar en VHDL un comparador con una


descripcin de flujo de datos

library ieee;
use ieee.std_logic_1164.all
entity comparador is
port (a,b in std_logic_vector (3 downto 0);
c out std_logic);
end comparador;

architecture flujodatos of comparador is


begin
c <= 1 when (a=b) else 0 ;
end flujodatos;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

Lenguajes de Descripcin de Hardware VHDL

Descripcin por flujo de datos


En VHDL se manejan declaraciones secuenciales y concurrentes:
Declaracin secuencial if - then - else
Esta debe seguir una ejecucin definida, para que la opercian sea
correcta.
Declaracin concurrente when - else
No requiere que se ejecute e un orden especifico, no importa cual se
ejecuta primero el resultado siempre sera el mismo, no afecta la
salida, como en el caso de las declaraciones secuenciales.

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin
Cursos de Actualizacin PICASA

1 Por ejemplo:

Lenguajes de Descripcin de Hardware VHDL

Con base en la tabla de verdad por medio de la instruccin


when - else describa el funcionamiento de la compuerta AND.
library ieee;
use ieee.std_logic_1164.all
entity comp_and is
port (a,b in std_logic;
x out std_logic);
end comp_and;

architecture compuerta of comp_and is


begin
x <= 1 when (a=1 and b= 1 ) else 0 ;
end compuerta;

Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenieras
Divisin de Electrnica y Computacin

Cursos de Actualizacin PICASA

Flujo de datos

Lenguajes de Descripcin de Hardware VHDL

( utilizando ecuaciones boolenas )

En las diferentes formas de describir un circuito en VHDL tenemos


aquella en la que utilizamos ecuaciones booleanas.

architecture booleana of comparador is


begin
c <= ( a(0) xor b(0)
end booleana;

and

a(1) xor b(1) );