Está en la página 1de 64

DISEÑO DE

SISTEMAS
DIGITALES
DISPOSITIVOS FPGA
CONTENIDO
 DISPOSITIVOS LÓGICOS PROGRAMABLES.

 INTRODUCCIÓN AL LENGUAJE DE DISEÑO DE HARDWARE


(VHDL).

 DISEÑO LÓGICO COMBINACIONAL UTILIZANDO VHDL

 DISEÑO LÓGICO SECUENCIAL UTILIZANDO VHDL

 DISEÑO DE SISTEMAS DIGITALES UTILIZANDO VHDL.


Dispositivos lógicos
programables
Objetivo
 Al termino de la sesión el alumno
conocerá los diversos dispositivos PLD en
el mercado, así como su arquitectura y
forma de funcionamiento.
ALGEBRA BOOLEANA
es una estructura algebraica que rigorizan
las operaciones lógicas AND, OR y NOT,
así como el conjunto de operaciones unión,
intersección y complemento.
ALGEBRA BOOLEANA
SE RIGE POR DIVERSAS LEYES Y
TEOREMAS Y PROPIEDADES. ENTRE
LOS QUE SE ENCUENTRAN:
1. Ley de idempotencia:
2. Ley de involución:
3. Ley conmutativa:
4. Ley asociativa:
5. Ley distributiva:
6. Ley de cancelación:
7. Leyes de De Morgan:
ALGEBRA BOOLEANA
Leyes que se aplican a un conjunto
booleano B={0,1} y cuyas operaciones
están definidas por lo que conocemos como
tablas de verdad.
ALGEBRA BOOLEANA
La electrónica digital se sirve del algebra
booleana en su carácter binario para
generar circuitos que utilizan solo dos
estados:
Relevadores.
Interruptores.
Transistores.
ELECTRÓNICA DIGITAL
Existen actualmente tres tipos de
electrónica digital:
• Combinacional
• Secuencial.
• Programable.

VEAMOS ALGUNOS EJEMPLOS


SIMPLES:
Ejemplo 1 :
Un proceso químico está monitoreado por tres sensores
T1, T2, T3, la salida de cada sensor adopta dos posibles
valores (encendido-apagado, 1-0, alto-bajo, etc.). Por
ejemplo, si la temperatura t del sensor T1 es menor a una
temperatura t1, la salida tendrá un nivel bajo pero si la
temperatura t es mayor-igual que t1 la salida tendrá nivel
alto.
Ejemplo 1 cont….
Lo mismo se considera para los otros dos sensores siendo
las temperaturas t2
y t3 para T2 y T3 respectivamente. Se considera que
siempre t1 < t2 < t3.

Se desea crear un sistema digital combinacional que


indique a través de un indicador luminoso (LED)
cuando la temperatura t este comprendida entre t1 y t2 o
sea superior o igual a t3.
Ejemplo 1 cont…

T1 T2 T3 Salida
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Ejemplo 2.
Crear un circuito lógico que controle una
bomba de agua que llena un tinaco de agua
cuando esté se vacía, y verifica que exista
agua en la cisterna de donde la saca…
Ejemplo 2. cont…
La solución a este circuito es
una máquina de estados.
Pudiendo tener solo dos
estados, se ha decidido
tener tres
para mostrar el trabajo que
debe realizarse con un
circuito de estas
características
Ejemplo 2. cont…
La teoría clásica nos lleva al diseño del circuito que se muestra
¿QUE SUCEDE SI CAMBIA LA LÓGICA
DE LOS CIRCUITOS, EL NUMERO DE
ENTRADAS O SALIDAS?

HAY QUE CAMBIAR TODO EL ANÁLISIS


DEL CIRCUITO CON EL RESPECTIVO
GASTO DE TIEMPO Y DINERO.
Dispositivos lógicos programables
básicos.

PLD
PAL
GAL
PROM
CPLD
PRINCIPIO DE
FUNCIONAMIENTO
 Una función binaria

f(x, y, z) = xy + yz
 Puede escribirse como una Suma de
Productos (Forma canónica SOP)

f(x, y, z) = xyz + xy z + x yz + x yz
f(x, y, z) =  1,5,6,7 
PRINCIPIO DE
FUNCIONAMIENTO
 Los minitérminos pueden realizarse
fácilmente como se observa en el
siguiente diagrama
PRINCIPIO DE
FUNCIONAMIENTO
 Una matriz programable es una red de
conductores distribuidos en filas y
columnas con un fusible en cada punto de
intersección. Las matrices pueden ser fijas
o programables.
PRINCIPIO DE
FUNCIONAMIENTO
 Conexiones fijas (Fabrica)

 Programado en Campo (OTP)


PRINCIPIO DE
FUNCIONAMIENTO
 Matriz borrable (reprogramable)
PRINCIPIO DE
FUNCIONAMIENTO
 Una vez obtenidos estos se “suman”
usando una compuerta OR
 Para este ejemplo se tiene:
PRINCIPIO DE
FUNCIONAMIENTO
 Esta representación esquemática se
realizó utilizando Matrices de compuertas
AND.
 Existen también Matrices de Compuertas
OR.
 El siguiente es un ejemplo de una matriz
AND conectada en cascada con una
matriz OR
EJEMPLO
Este ejemplo es un
Arreglo Lógico de
4 X3
DISPOSITIVOS LÓGICOS
PROGRAMABLES SIMPLES
 Los PLD´s por sus siglas en ingles,
utilizan arreglos de matrices AND y OR
para realizar las diversas ecuaciones
lógicas combinacionales y/o secuenciales.
 Los Arreglos lógicos pueden ser
programables o enmascarados de fábrica
(fijos)
PROM
 Programmable Read Only Memory
 Los dispositivos de memoria utilizan un
esquema PROM de matriz AND fijo, el
cual direcciona la memoria, y una matriz
OR programable, la cual representa el
espacio donde se guardan los datos,
PROM

Matriz AND
Direcciones
Bus de n Fija
bits (Decodificador)

Si la memoria tiene n bits


de
Direcciones
Entonces se tienen 2n Datos
Matriz OR
posibles direcciones de Bus de m
memoria Programable bits
(8,16,32)
PROM
 Tipos de PROM:
ROM (Memoria programada en fábrica)
PROM (Memoria Programable OTP)
EPROM (Memoria Reprogramable)
EEPROM (Borrable eléctricamente)
UVEPROM (Borrable por medio de luz UV)
Flash
PROM
 La memoria FLASH es similar a la EEPROM, es
decir que se puede programar y borrar
eléctricamente.
 Las celdas de memoria se encuentran
constituidas por un transistor MOS de puerta
apilada, el cual se forma con una puerta de
control y una puerta aislada,
Programable Logic Array (PLA)
 Estos dispositivos,
también llamados
FPLA, puesto que son
programables en
campo, poseen una
estructura similar a la
que se observa a
continuación:
Programable Logic Array (PLA)

Datos de Matriz AND


Entrada
Programable

Datos
Matriz OR
De Salida
Programable
Programmable Logic Array (PLA)

 Los PLA tienen a la entrada y salida del


circuito unos dispositivos conocidos como
macroceldas, de las cuales existen cuatro
tipos:
OLMC (macrocelda lógica de salida)
ILMC (macrocelda lógica de entrada)
IOLMC (macrocelda lógica de entrada /salida)
BLMC (macrocelda lógica fija)
PAL Programmable Array Logic
 Esta es la estructura
de una PAL 16L8
 Que datos nos da el
nombre de la PAL?
PAL Programmable Array Logic

Datos de Matriz AND


Entrada
fija

Datos
Matriz OR
De Salida
Programable
PAL Programmable Array Logic
DETALLE DEL PLD PALCE16L8

¿QUE ES ESTO?
GAL (Generic Array Logic)
®

 Este PLD funciona de la misma manera


que un PAL.El nombre es una marca
registrada por la empresa Lattice, el
diagrama lógico se presenta junto con el
de una PAL para observar las diferencias.
GAL (Generic Array Logic)
®
Encuentre las diferencias:

GAL datasheet
GAL (Generic Array Logic)
®

Estructura típica de una GAL


GAL (Generic Array Logic)
®

Detalle de una macrocelda lógica


Programación de PLD´s
La programación de los PLD´s PLA PAL y
GAL puede realizarse en usando diversos
lenguajes de programación, entre ellos
podemos utilizar:
CUPL
VHDL
CPLD (Complex Programmable
Logic Device)
 Un CPLD extiende el concepto de un PLD
a un mayor nivel de integración
 Permite implementar sistemas con un
mejor desempeño.
 Utilizan menor espacio, mejoran la
confiabilidad en el circuito.
 Reducen costos.
CPLD (Complex Programmable
Logic Device)
Un CPLD se forma con múltiples bloques
lógicos, cada uno similar a un PLD.

Los bloques lógicos se comunican entre sí


utilizando una matriz programable de
interconexiones PIM por sus siglas en Ingles
CPLD (Complex Programmable
Logic Device)

Arquitectura básica de un CPLD


CPLD (Complex Programmable
Logic Device)

La PIM permite las interconexiónes


siguientes:
 Entre los pines de entrada a las
entradas de los bloques lógicos
 Entre dos bloques lógicos.
 La retroalimentación de un bloque lógico
 Entre las salidas de los bloques lógicos
y los pines de salida
CPLD (Complex Programmable
Logic Device)

• Existen dos tipos de PIM :


– Interconexión por arreglo
– Interconexión por multiplexores
CPLD (Complex Programmable
Logic Device)
El primero se basa en una matriz de filas y
columnas con una celda programable de
conexión en cada intersección.
Al igual que en el GAL esta celda puede ser
activada para conectar/desconectar la
correspondiente fila y columna.
CPLD (Complex Programmable
Logic Device)
En la interconexión mediante multiplexores,
existe un multiplexor por cada entrada al
bloque lógico.

Las vías de interconexión programables son


conectadas a las entradas de un numero de
multiplexores por cada bloque lógico.
CPLD (Complex Programmable
Logic Device)

Un bloque lógico es similar a un PLD, es


decir, cada uno posee un arreglo de
compuertas AND y OR en forma de suma
de productos, una configuración para la
distribución de estas sumas de productos, y
macroceldas.
CPLD (Complex Programmable
Logic Device)
Estructura de un Bloque Lógico en dispositivos de

las familias MAX340 y MAX5000

Estructura de un Bloque Lógico en dispositivos de

las familias MAX340 y MAX5000 de la Empresa Cypress


FPGA (Field Programmable Gate
Array)

La arquitectura de un FPGA consiste en


arreglos de varias celdas lógicas las cuales
se comunican unas con otras mediante
canales de conexión verticales y
horizontales
FPGA (Field Programmable Gate
Array)
FPGA (Field Programmable Gate
Array)

Celdas lógicas
La estructura de las celdas lógicas se ve
fuertemente influida por la tecnología
utilizada por fabricante del FPGA
FPGA (Field Programmable Gate
Array)
Los diseñadores coinciden en afirmar que
desde el punto de vista usuario,
existen tres fabricantes mayoritarios en la
distribución de FPGA´s :
• Xilinx
• Altera
• Actel
FPGA (Field Programmable Gate
Array)
Las tecnologías actuales para la
construcción de FPGA´s son:

• Antifuse

• SRAM
FPGA (Field Programmable Gate
Array)
Estructuralmente la construcción de un
FPGA tiene dos posibles derivaciones:
Granularidad Gruesa (Coarse Grained –
CG)
Granularidad Fina. (Fine Grained – FG)
FPGA (Field Programmable Gate
Array)

En este curso se utilizarán los FPGA de la


Empresa Xilinx en particular los de la
Familia Spartan 3E
FPGA (Field Programmable Gate
Array)
Componente básicos de un FPGA de Xilinx
– CLBs (Bloques Lógicos Configurables)
– IOBs (Bloques de Entrada/Salida)
– Matriz de interconexiones

Recursos Extras:
– Memoria
– Multiplicadores dedicados
– Buffers
FPGA (Field Programmable Gate
Array)
A continuación se muestra un ejemplo de un
CLB formado por dos Slices
• Los Slices básicamente están
conformados por:
LUTs,
Flip-Flops
Multiplexores
FPGA (Field Programmable Gate
Array)
FPGA (Field Programmable Gate
Array)
Cada Slice contiene

• Look Up Table (LUT) de cuatro entradas


• Un bloque de Registro
• Y bloques de lógica dedicada
FPGA (Field Programmable Gate
Array)
Una Look Up Table es una estructura que
puede ser utilizada para generar funciones
lógicas o puede servir como un bloque de
memoria RAM o como registro de
corrimiento
FPGA (Field Programmable Gate
Array)
La LUT se utiliza para
generar funciones, es
un espacio de memoria
de un solo bit
FPGA (Field Programmable Gate
Array)
Recursos Extras:
DCM´s
Multiplicadores
Bloque RAM

También podría gustarte