Sei sulla pagina 1di 34

Benemrita Universidad

Autnoma de Puebla
Facultad de Ciencias de la
Computacin

Diseo Digital
VHDL
Otoo 2016
Introduccin
El estado del arte de los Sistemas Digitales se
encuentra reflejado en los lugares menos
sospechados, as es posible encontrar este tipo
de sistemas en las actuales lavadoras de ropa, los
hornos de microondas, video juegos, equipos de
audio, esto para ejemplificar sus aplicaciones
domsticas, otro ms que ha invadido sin pedir
ningn permiso son los sistemas de
comunicacin, como los telfonos celulares.

2
Dispositivos Lgicos Programables
(PLD)
CONCEPTOSFUNDAMENTALES
La fabricacin de dispositivos de lgica programable se basa
en los siguientes dos conceptos:

1 FUNCIONALIDAD COMPLETA
La cual se fundamenta en el hecho de que cualquier funcin
lgica se puede realizar mediante una suma de productos.

2 CELDAS DE FUNCIONES UNIVERSALES.


Tambin denominadas generadores de funciones, son bloques
lgicos configurados para procesar cualquier funcin lgica,
similares en su funcionamiento a una memoria. En estas celdas
se almacenan los datos de salida del circuito combinacional en
vez de implementar fsicamente la ecuacin booleana.

3
Dispositivos Lgicos
Programables
En la actualidad el diseo de ASIC (Circuitos
integrados diseados para aplicaciones
especficas) domina las tendencias en el
desarrollo de aplicaciones a nivel de
microelectrnica. Sin embargo, su diseo ahora
es slo adecuado para aplicaciones que requieren
un alto volumen de produccin; por ejemplo,
sistemas de telefona celular computadoras, etc.
Los FPGA y CPLD ofrecen las mimas ventajas de
un ASIC, slo que a un menor costo y que ambos
circuitos son reprogramables.

4
Dispositivos Lgicos
Programables
Dispositivo Descripcin
PROM Programmable read-Only
Memory: memoria programable
de slo lectura.
PLA Programmable Logic Array:
arreglo lgico programable.
PAL Programmable Array Logic :
lgica de arreglos programables.
GAL Gneric Logic Array: Arreglo
lgico programable
CPLD Complex PLD: dispositivo lgico
programable complejo
FPGA Field Program Gate Array:
Arreglos de compuertas
programables en campo.
5
Dispositivos Lgicos Programables
PAL
Un dispositivo lgico programable, o PLD
(Programmable Logic Device), es un dispositivo cuyas
caractersticas pueden ser modificadas y almacenadas
mediante programacin. El dispositivo programable
ms simple es el PAL (Programmable Array Logic).

El circuito interno de un PAL consiste en una matriz de


conexiones, un matriz de compuertas AND y un
arreglo de compuertas OR.

6
Dispositivos Lgicos Programables
PAL

7
PLDs
GAL
MATRIZ GENRICA PROGRAMABLE
Un GAL en su forma bsica es un PLD con una matriz AND
reprogramable, una matriz OR fija y una lgica de salida
programable mediante una macrocelda. Esta estructura
permite implementar cualquier funcin lgica en forma de
suma de productos con un numero de trminos definido.
En un GAL el fusible se reemplaza por una celda CMOS
elctricamente borrable (EECMOS) y mediante programacin
se activa o desactiva cada celda EECMOS. Una celda activada
conecta su correspondiente interseccin de fila y columna, y
una celda desactivada desconecta dicha interseccin. Con
esta estructura se puede aplicar cualquier combinacin de
variables de entrada, o sus complementos, a una compuerta
AND para generar cualquier operacin producto que se desee.

8
PLDs
GAL
A continuacin se muestran las estructuras
tpicas de un dispositivo GAL y la macrocelda de
salida del GAL22V10.

Estructura tpica de un GAL

9
Ambiente de desarrollo de la lgica
programable
Una de las grandes ventajas al disear sistemas
digitales mediante dispositivos lgicos
programables radica en el bajo costo de los
recursos requeridos para el desarrollo de estas
aplicaciones.

De manera general, el soporte bsico se encuentra


formado por una computadora personal, un
grabador de dispositivos lgicos programables y el
software de aplicacin que soportan diferentes
familias de circuitos integrados PLD

10
Lgica Programable y lenguajes de
descripcin en hardware (HDL)
Una de las principales caractersticas de estos
lenguajes radica en su capacidad para describir
en distintos niveles de abstraccin:
Algortmico: Se refiere a la relacin funcional entre
las entradas y salidas del circuito o sistema, sin hacer
referencia a la realizacin final.
Transferencia de Registros: Consiste en la particin
del sistema en bloques funcionales sin considerar a
detalle la realizacin final del bloque.
Lgico o de compuertas: El circuito se expresa en
trminos de ecuaciones lgicas o de compuertas.

11
Qu es VHDL?
VHDL es un lenguaje de
programacin que fue diseado y
optimizado para describir el
comportamiento de sistemas
digitales.
Estandarizado por la IEEE (1076-93)
VHSIC Very High Speed Integrated Circuit
VHDL VHSIC Hardware Description
Language
Lenguaje de alto nivel
Diseo estructural
Sentencias de control y manipulacin de
datos
Permite describir eventos concurrentes
Permite describir el comportamiento de
componentes electrnicos desde simples
compuertas hasta microprocesadores y
otros CI complejos
Descripcin del comportamiento elctrico
propio (Flancos de subida y bajada de
seales, tiempos de propagacin en
compuertas, operaciones funcionales)
VHDL
Lenguaje de descripcin de hardware
Notacin Formal.
Disponibilidad pblica .
Independencia tecnolgica de
diseo.
Independencia de la tecnologa y
proceso de fabricacin.
Capacidad descriptiva en distintos
niveles de abstraccin.
Independencia de proveedores.
14
Otros lenguajes de descripcin
Hardware
ABEL
Verilog (Cadence)
AHDL (Altera Hardware Description
Language)
Handel-C (Celoxica)
System-C (Synopsys)
Unidades bsicas de diseo en
VHDL
La estructura general de un
programa en VHDL est formada por
mdulos o unidades de diseo, cada
uno compuesto por un conjunto de
declaraciones e instrucciones que
definen, describen, estructuran,
analizan y evalan el
comportamiento de un sistema
electrnico digital
16
Unidades bsicas de diseo en
VHDL
Existen cinco tipos de unidades de diseo en
VHDL:

Declaracin de entidad
Arquitectura
Configuracin
Declaracin del paquete
Cuerpo del paquete.

Nota: En el desarrollo de programas en VHDL pueden utilizarse o


no tres de los cinco mdulos pero dos de ellos son
indispensables.

17
Unidades bsicas de diseo en
VHDL
Las declaraciones de entidad,
paquete y configuracin se
consideran unidades de diseo
primarias, mientras que la
arquitectura y el cuerpo del paquete
son unidades de diseo secundarias
porque dependen de una entidad
primaria que se debe analizar antes
de ellas.
18
Declaracin de entidades mediante
libreras y paquetes
Una parte importante en la
programacin con VHDL radica en el
uso de libreras y paquetes que
permiten declarar y almacenar
estructuras lgicas seleccionadas o
completas que faciliten el diseo.

library ieee;

19
Paquetes
El paquete std_logic_1164 (estndar lgico)
que se encuentra en la librera ieee contiene
todos los tipos de datos que suelen emplearse
en VHDL (std_logic_vector, std_logic, entre otros
)

El acceso a la informacin contenida en un


paquete es por medio de la sentencia use,
seguida del nombre de la lbreria y del paquete,
respectivamente:

use nombre_librera.nombre_paquete.all;

use ieee.std_logic_1164.all;
20
Entidad
Una entidad es el bloque elemental de diseo en VHDL.
Las entidades son todos los elementos electrnicos, que
forman de manera individual o en conjunto un sistema
digital.
La entidad se especifica por:
Un nombre nico
Puertos de entrada y salida (nombre, tipo y direccin)

A
B
Suma
Ci
C0

21
Puertos de entrada-salida
Cada una de las seales de entrada y
salida en una entidad son referidas
como puerto, el cual es similar a una
terminal (pin).
Todos los puertos que son
declarados deben tener un nombre,
un modo y un tipo de dato.
El nombre se utiliza como una forma
de llamar al puerto.
22
TIPOS DE DATOS
Data Type Values Example

Bit 1, 0 Q <= 1:

Bit_vector (array of bits) DataOut <=


00010101
Boolean True, False EQ <= True;

Integer -2, -1, 0, 1, 2, 3, 4 Count <= Count +2;

Real 1.0, -1.0E5 V1 = V2/5.3

Time 1 us, 7 ns, 100 ps Q <= 1 after 6 ns;

Character a, b, 2, $, etc. CharData <= X;


String (Array of characters) Msg <= MEM: &
Addr
Modos
Un modo permite definir la direccin en el cual el
dato es transferido a travs del puerto.
Un modo puede tener cuatro valores:
Modo in. Se refiere a las seales de entrada a la entidad.
Modo out. Indica las seales de salida de la entidad.
Modo inout. Permite declarar a un puerto de forma
bidireccional; adems permite la retroalimentacin de
seales dentro o fuera de la entidad.
Modo buffer. Permite hacer retroalimentaciones internas
dentro de la entidad, pero a diferencia del modo inout,
el puerto declarado se comporta como una terminal de
salida

24
Declaracin de entidades
La declaracin de una entidad
consiste en la descripcin de las
entradas y salidas de un circuito de
diseo identificado como entity.
A SUMA
B Entidad
Sumador C0
Ci

25
Identificadores
Los identificadores son simplemente los nombres
o etiquetas que se usan para referir variables,
constantes, seales, procesos, etc.

Regla Incorrecto Correcto


El primer carcter 4suma Suma4
siempre es una letra
mayscula o
minscula
El segundo carcter S_4bits S4_bits
no puede ser un
guin bajo
Dos guiones juntos Resta__4 Resta_4_
no permitidos
Un identificador no Clear#8 Clear_8
puede utilizar
smbolos 26
Diseo de entidades mediante
vectores
La entidad sumador mostrada, emplea bits
individuales, los cuales solo pueden representar
dos valores lgicos (0 o 1).
En VHDL se pueden utilizar conjuntos de bits,
conocidos como vectores de bits.
A[3:
SUMA
0]
B[3: Entidad [3:0]
0] Sumador C0
Ci

La manera de definir una configuracin que


utilice vectores es empleando la sentencia de
port(vector_A, vector_B: in bit _vector (3 downto
bit_vector
0);
27
vector_SUMA: out bit _vector (3 downto
Arquitecturas
Una arquitectura (architecture) se define como la
estructura que describe el funcionamiento de una
entidad, de tal forma que permita el desarrollo de
los procedimientos.
Debe estar asociada a una Entidad.
Puede haber mas de una arquitectura asociada a
cada Entidad.
La arquitectura se especifica por:
Declaraciones
Seales
Componentes
Funciones y procedimientos
Constantes
Cuerpo de la arquitectura
Estilos de programacin
De manera general , los estilos de programacin
utilizados en el diseo de arquitecturas se
clasifican de la siguiente manera:
Estilo funcional o comportamental
Se describe un circuito en trminos de su operacin en
funcin del tiempo
Estilo por flujo de datos
Se describe un circuito en trminos de cmo fluyen los
datos
Tambin llamado RTL (Register Transfer Logic)
Estilo estructural
Se describe un circuito en trminos de sus componentes
Metodologa Top-Down
Ejemplo de funcional
Arquitectura Funcional

a
Comparador c
b a=b entonces
c=1
Caso contrario
c=0
Ejemplo de Funcional
Ejemplo de Flujo de datos
Ejemplo de flujo de datos
Ejemplo
1

Ejemplo
2

Potrebbero piacerti anche