7/21/2018
Dispositivos Lógicos
Programables (PLDs)
Pal, GAL, CPLDs y FPGAs
Debo agradecer los textos e imágenes que
fueron tomadas del libro Técnicas Digitales del
Ing. Jorge Sinderman, y del Ing. R. Tocci y a
los Ings. Rosa Corti y Roberto Martínez de la
Univ. Nacional de Rosario y al Dr. Mario A.
Reyes Barranca del Centro de Investigaciones
y Estudios Avanados del IPN
Ing. Daniel Acerbi – Febrero
2018_v2
Indice
Introducción a los PLDs.
Generalidades, Ventajas y Distintos tipos de PLDs.
PAL, Arreglos Lógicos Programables
– Esquema conceptual
– PAL 12H6
– Productos Programables
– PAL 4H4
PAL teórica PAL 6L3, esquema lógico
PAL 16L8, 16R8, GAL 16V8, GAL 16V8R, GAL 22V10
esquema lógico
Ejemplos de circuitos lógicos implementados con PAL.
Generalidades CPLD.
Generalidades FPGA.
Autor : Ing. Daniel Acerbi 2
1
7/21/2018
Que es un PLD ?
Es un circuito
integrado que
contiene una gran
cantidad de elementos
lógicos y atraves de la
programación se
interconectan para
que realice una
función específica.
Autor : Ing. Daniel Acerbi 3
Evolución de los PLDs Reconfigurables
Aumento
del nivel de
integración
Los dispositivos GAL, CPLD y FPGA son del tipo CMOS
y frecuentemente son reprogramables
Autor : Ing. Daniel Acerbi 4
2
7/21/2018
Clasificación
Hay una gran cantidad de siglas y existe comercialmente
una gran competencia entre los distintos fabricantes.
Clasificación de los PLDs :
– PROM: Programmable read only memory
– PLA: Programmable Logic Arrays–Arreglo lógico programable – hoy en
desuso
– PAL: Programmable Array Logic-Arreglo lógico programable, de
tecnología TTL. Hoy reemplazadas por las GAL .
– GAL: Generic Array Logic-Arreglo lógico genérico, de tecnología CMOS
reprogramables
– ASIC: Application-Specific Integrated Circuit
– CPLD: Complex PLD
– EPLD: Erasable PLD-PLD borrables por luz ultravioleta
– HCPLD: High Complexity PLD
– LCA: Logic Cell Array
– FPGA: Field Programmable Gate Array
En Técnicas Digitales I estudiaremos PROM (1er. Cuatrimestre),
PAL (combinacionales y secuenciales) y GAL (2do. Cuatrim.)
5
Autor : Ing. Daniel Acerbi
Descripción eléctrica de los PLDs mas comunes
PLA (Programmable Logic Array) hoy obsoletas como
dispositivos comerciales separados pero pueden formar
parte de PLD más complejos
PAL (Programmable Array Logic) hoy sustituidas con
ventajas por las GAL
GAL (Generic Array Logic) o PALCE (PAL CMOS Erasable)
borrables y reprogramables. Y muy versátiles gracias a su
macrocelda de salida (OLMC)
PROM (Programmable Read Only Memory) Memorias de
sólo lectura que pueden almacenar una tabla de verdad
completa
CPLD (Complex PLD) Múltiples bloques lógicos y de
entrada/salida, y una matriz programable de
interconexiones. Equivalentes a miles de compuertas
FPGA (Field Programmable Gate Array), los dispositivos
programables más grandes y complejos
Autor : Ing. Daniel Acerbi 6
3
7/21/2018
Memorias PROM
Se estudiaron en el
1er. cuatrimestre
PAL
Arreglos Lógicos Programables
(SPLDs)
Debo agradecer los textos e
imágenes que fueron tomadas
del libro Técnicas Digitales del
Ing. Jorge Sinderman
4
7/21/2018
Esquema conceptual de una PAL
La matriz de interconexión permite programar los productos
La programación es no volátil, es decir, no se pierde al quitar
la alimentación
Como alternativa, la compuerta OR puede reemplazarse con
una NOR para tener una salida activa en bajo.
Permiten generar funciones lógicas arbitrarias, aunque con la
limitación que impone la cantidad de productos existentes
matriz de
entradas salida
conexión
Autor : Ing. Daniel Acerbi 9
PAL12H6
Fue una de las 2 O1
primeras PAL que se
fabricaron I1
I2 2 O2
Tiene 12 entradas, 6
salidas y 16
productos. Las 2 O3
salidas son lógica MATRIZ
positiva (H)
AND 2 O4
Los productos hacen
referencia a la cantidad
total de entradas en las 4 O5
diferentes compuertas I12
OR o NOR
4 O6
Autor : Ing. Daniel Acerbi 10
5
7/21/2018
Producto programable
La figura muestra :
• La programación mediante fusibles
• La simbología usual (2 normas) para los
productos programables
I1
I2
Simbología mas utilizada
Autor : Ing. Daniel Acerbi 11
Hipotética PAL4H4
(a) (b) Nomenclatura
I1 2 O1
I1
I2 I2 2 O2 PAL4H4
MATRIZ
I3 I3 AND 2 O3 Número de
I4 I4
entradas
4 O4
H salidas activas
O1
en alto
L salidas activas en
O2 bajo
O3 Número de salidas
¡No informa el
O4 número de productos!
Autor : Ing. Daniel Acerbi 12
6
7/21/2018
I1
I2
I3
I4
Hipotética O1
PAL6L3
con salidas de 3
IO2
estados y
realimentaciones
(terminales
bidireccionales)
IO3
Autor : Ing. Daniel Acerbi 13
PAL16L8
• Permite generar 8 funciones
lógicas arbitrarias de 10
7 O1
variables de entrada.
I1
7 IO2 • Como no puede implementar
I2 una función que requiera más
I3 7 IO3 de 7 productos, necesita que un
I4
proceso de simplificación previa
alcance, al menos, este límite.
I5 7 IO4
I6
MATRIZ AND • Permite que las salidas
7 IO5 puedan ser función de otras
I7
salidas, además de serlo de las
I8
IO6
10 entradas.
7
I9
• Permite ampliar el número de
I10 7 IO7 entradas hasta 16, a expensas
de perder una salida por cada
entrada aumentada.
7 O8
Autor : Ing. Daniel Acerbi 14
7
7/21/2018
PAL16L8
La Frecuencia
Máxima de
Operación va
de 60 a 74 MHz
Autor : Ing. Daniel Acerbi 15
Conversión BCD natural a Aiken
D' = ( D + C)( D + B + A)
A
A´
C' = ( D + C)( D + B + A)
B BCD BCD B´
C natural Aiken C´ B' = ( C + B)( D + C + B)( D + B + A)
D D´
A' = A
IO3 = ( I 4 + I 3)(I 4 + I 2 + I1)
PAL6L3 IO2 = ( I 4 + I 3)(I 4 + I 2 + I1)
A´
A I1 O1 B´ O1 = ( I 3 + I 2)(I 4 + I 3 + I 2)(I 4 + I 2 + I1)
B I2 IO2 C´
C I3 IO3 D´
D I4
Autor : Ing. Daniel Acerbi 16
8
7/21/2018
I1
IO3 = ( I 4 + I 3)( I 4 + I 2 + I1)
I2
IO 2 = ( I 4 + I 3)( I 4 + I 2 + I1)
I3 O1 = ( I 3 + I 2)( I 4 + I 3 + I 2)( I 4 + I 2 + I1)
I4
O1
Conversión
IO2
BCD natural
a Aiken
usando la
PAL6L3
IO3
Autor : Ing. Daniel Acerbi 17
Alternativas para la programación
de los PLD
• Efectuar la programación en forma artesanal (no
recomendado, información insuficiente, muy
laborioso)
• Emplear un programador comercial (de
laboratorio o de producción; homologado por el
fabricante del PLD) y un archivo normalizado
JEDEC preparado por un software CAD apropiado
• Utilizar un sistema de desarrollo que incorpore un
programador
• Efectuar la programación directamente sin retirar
al PLD de donde está instalado; para ello el PLD
debe ser del tipo ISP (In System Programmable)
Autor : Ing. Daniel Acerbi 18
9
7/21/2018
PLDs Secuenciales
(SPLDs)
PAL-R
GAL
PAL bipolares estándar
Estas PAL de tecnología TTL .
Las que tienen en su característica L son
combinacionales, las que tienen R son secuenciales.
Autor : Ing. Daniel Acerbi 20
10
7/21/2018
Pinout típicos
Autor : Ing. Daniel Acerbi 21
Diagrama esquemático PAL16R8
La letra R indica que la PAL es sincrónica y por lo tanto
tiene FFs en su circuito interno .
Ideal para la implementación de máquinas de estado.
PAL 16R8 Tecnología TTL – No Reconfigurable
PALC 16R8 Tecnología CMOS Reconfigurable
Posee 4 FFs tipo D
Posee 16 entradas
– 8 convencionales
– 8 bidireccionales
Posee 8 salidas
– 4 salidas 3-estados 16R8
– 4 bidireccionales
Cantidad de salidas (8)
Cantidad de entradas (16)
Indica que es
sincrónica
Autor : Ing. Daniel Acerbi 22
11
7/21/2018
PAL16R8 Output Enable
clock
Habilitación
externa de 8 O3
D Q
salidas 3 estados
Q
Entrada de CLK, I1
8 O4
común a todos D Q
los FFs I2
Q Salidas
I3
3-estados
O5 y O6
I4
MATRIZ AND similares a O3 y O4
I5 O1 y O2
Matriz AND Salidas
similares a O7 y O8
programable I6 bidireccionales
7 O7
I7
I8
7 O8
PAL 16R8 – TTL
fmax = 60 MHz
Autor : Ing. Daniel Acerbi 23
PAL 16R8
PAL 16R8 – TTL
fmax = 60 MHz
Autor : Ing. Daniel Acerbi 24
12
7/21/2018
Dispositivo GAL
Son de tecnología CMOS y se pueden borrar y regrabar.
Cada una de las salidas es generada, a partir de las
salidas de la matriz AND, por una macrocelda lógica de
salida (OLMC o Output Logic Macro Cell), provista
también de “fusibles” para permitir cambiar su
configuración.
Por ejemplo:
– La GAL16V8 puede ser configurada de manera de
resultar equivalente a una PAL16L8
– PAL16R4, o una PAL16R6, o una PAL16R8, tienen
también tiene su equivalente (PALC XXXX).
– La GAL22V10 es la más popular de las GAL y es aún
más poderosa que la GAL16V8 (más entradas, más
productos, más salidas)
Autor : Ing. Daniel Acerbi 25
Notas:
Fusibles número 1) La numeración de cada fusible de la matriz AND es la suma
0 1 2 3 4 5 6 7 8 9 10 11 de los números que encabezan su fila y su columna.
2) Los únicos terminales de la GAL disponibles desde el
exterior son los marcados con el símbolo
3) De quemarse todos los fusibles correspondientes a una
compuerta AND, la salida de la misma va a 1
Fusible 168 Vcc
Multiplexor
de 2 vías
6V3
Ao
0
Vcc
I0
12 O
24 D Q I1
36
CL
48
Vcc
169 Ao
I0
60 O
D Q I1
72
84
CL
96
Vcc
170 Ao
I0
108 O
Q I1
120 D
132
CL
144
Autor : Ing. Daniel Acerbi 26
156
13
7/21/2018
GAL16V8
Esquema interno de
una GAL 16V8
Características :
Tecnología E2CMOS
(reconfigurable)
Tiempo de conmutación 3,5 ns
Frec. Max. de Oper.= 250 MHZ
VDD = 5V
Autor : Ing. Daniel Acerbi 27
GAL16V8
Para algunos fabricantes la GAL16V8 puede llamarse
PALCE16V8. y es combinacional
Tiene 16 entradas y 8 salidas, 6 de ellas son
bidireccionales.
La GAL16V8 es reemplazo de la PAL16L8.
Tiene, en su salida, estructura AND-NOR, pero agrega
en la línea de salida una compuerta OR-EXC
programable que hará que la salida puede variar.
Salida bidireccional
La compuerta
programable invierte
la salida de la matriz
OR fija
Autor : Ing. Daniel Acerbi 28
14
7/21/2018
GAL16V8R
Esta GAL agrega en su
salida un FF D en cada
una de las salidas.
Aparece su carácter
sincrónico.
La señal del reloj es
común a todos los FFs.
La señal del OE también
es común a todos los
buffer 3-estados.
Esquema interno de
una GAL 16V8R
Autor : Ing. Daniel Acerbi 29
GAL22V10
Macroceldas ( OLMC )
Características :
22 entradas, 10
salidas
Tecnología E2CMOS
(reconfigurable)
Tiempo de
conmutación 3,5 ns
Frec. Max. de Oper.=
250 MHZ
VDD = 5V
Autor : Ing. Daniel Acerbi 30
15
7/21/2018
Esquema interno de
una GAL22V10
Autor : Ing. Daniel Acerbi 31
OLMC de una GAL22V10
De un producto
de la matriz Vcc
multiplexor
AR (reset asincrónico) y de 4 vías
SP (preset sincrónico)
vienen de sendos A0
productos de la matriz,
comunes a todas las S0
macroceldas A1
S1
De n productos I3
de la matriz I2
IO
Q O
D I1
n
8≤n≤16 Q I0
CL
multiplexor
de 2 vías
AR SP Clock A0
O
El clock es una entrada I1
de la GAL, común a I0
todas las macroceldas
A la matriz
Autor : Ing. Daniel Acerbi 32
16
7/21/2018
Limitaciones de los SPLDs
Reducida Cantidad de macroceldas.
Cuando se utiliza un Flip Flop de una macrocelda
se desperdicia una terminal de entrada / salida.
La distribución de todas las señales por todo el
chip consume mucha superficie en el silicio y
genera retardos capacitivos.
En las primeras PAL el uso de fusibles afectaba la
confiabilidad del dispositivo.
Autor : Ing. Daniel Acerbi 33
CPLD – Complex PLDs - EPM7128S
CPLD perteneciente a la familia MAX7000S de Altera, dispositivo
basado en EEPROM de tecnología CMOS.
Encapsulado PQFP de 160 terminales.
Las principales estructuras internas son:
– LABs; Bloques de matrices lógicas. Bloque de 16 macroceldas.
– PIA; Matriz de interconexion programable. Los LABs se interconectan
a traves de la PIA que le suministra hasta 36 señales.
– E/S; Los terminales de entradas y salidas se conectan a los LABs
mediante un Bloque de E/S. Hay (según la versión) hasta 12 señales
que se interconectan con los LABs.
Características de dispositivos de la familia MAX7000S:
Autor : Ing. Daniel Acerbi 34
17
7/21/2018
CPLD – Complex PLDs
Diagrama en bloques:
Autor : Ing. Daniel Acerbi 35
Macrocelda de un EPM7128s
Los FFs pueden setearse como FF D, JK, T o RS y admiten mas
al de reloj en el diseño.
Autor : Ing. Daniel Acerbi 36
18
7/21/2018
Principal característica de un CPLD
(PIA)
Autor : Ing. Daniel Acerbi 37
Estructura interna de una FPGAs
Autor : Ing. Daniel Acerbi 38
19
7/21/2018
FPGA (Field Program Gate Arrays)
Hoy día, un arreglo es un conjunto de
elementos:
Autor : Ing. Daniel Acerbi 39
Arquitectura de una FPGAs
Autor : Ing. Daniel Acerbi 40
20
7/21/2018
FPGAs ideas básicas;.
Autor : Ing. Daniel Acerbi 41
FPGAs ideas básicas;.
Autor : Ing. Daniel Acerbi 42
21
7/21/2018
Celda Basica de una FPGA
Autor : Ing. Daniel Acerbi 43
Ventajas de una FPGA
Autor : Ing. Daniel Acerbi 44
22
7/21/2018
Comparando una FPGA y un CPLD
Autor : Ing. Daniel Acerbi 45
Resumen del curso
Para resumir lo visto en el curso analicemos los distintos dispositivos de hardware
disponibles, por los diseñadores, para el diseño de sistemas digitales.
A lo largo del curso hemos visto los dispositivos estandart y los distintos
dispositivos lógicos programables para desarrollar bloques funcionales.
Las decisiones de diseños de ingeniería deben tomar en cuenta varios factores,
como ser la velocidad de operación, el costo, el consumo, la confiabilidad, el
tamaño de la implementación, etc. etc..
De hecho un Sistema Digital complejo contempla la utilización de varias categorías
de hardware.
Un árbol familiar a los Sistemas Digitales es el siguiente:
ASIC: CI de
aplicaciones
específicas
SPLDs: SimplesPLDS
Autor : Ing. Daniel Acerbi 46
23
7/21/2018
Fin de la presentación
Dispositivos Lógicos
Programables (PLDs)
Les deseo unas muy Felices Fiestas y Vacaciones..!!!!
24