Está en la página 1de 33

PLA, PAL, CPLD,

FPGA
SEBASTIAN ESLAVA G. MS. C.
- PH. D.

UNIVERSIDAD NACIONAL DE COLOMBIA


2010-1
DIVISIÓN DE PLDs [1]
Programmable Logic Array – PLA [6]

Solución a limitaciones de
velocidad y entradas de
las PROMs.
Consisten:
 Arreglo AND: Las
entradas se conectan
adecuadamente para
realizar las operaciones
AND necesarias. Las
salidas de las compuertas M-Inputs *
AND son llevadas al arreglo
OR mediante “Implicants”. N-Implicants *
Programable P-Outputs
Programmable Logic Array – PLA [6]

Consisten:
 Arreglo OR: A las salidas
del plano AND se les aplica
la operación OR y se
consigue finalmente la suma
de productos requerida.
Programable
Tanto en las entradas
como en las salidas se
disponía de compuertas
NOT para obtener mayor SOP
versatilidad. Sum-of-Products
Programmable Logic Array – PLA [6]

PLAs pueden ser


conectadas externamente
a Flip-Flops para formar
máquinas de estado

Cada conexión dentro del


plano AND y plano OR
pueden ser programada Ejemplo de una
mediante la conexión o
desconexión implementación
en PLA [3]
Programmable Array Logic – PAL [6]

Variación de los PLAs


Consisten:
 Arreglo AND: Programable
 Arreglo OR: Fija
 XOR: Inversores de las
salidas
Ley de Morgan que
fundamenta el correcto
funcionamiento de las PALs
 Al incluir inversores, se reduce el
a | b = !(!a & !b)
arreglo OR y se ahorra área para
Un gran arreglo AND o un ubicar más lógica. Uso de Flip-
gran arreglo OR, pero no Flops (salida de estos al arreglo
ambos grandes. AND y a pines)
Programmable Array Logic – PAL [6]
Tecnología de switches programables por usuario [5]
Tecnología de switches programables por usuario [5]
Complex Programmable Logic Device CPLD [6]
Gran número de PALs en
un solo chip y una matriz
de conexiones.

Consisten de:
 Matriz de conexión
(Interconnect Matrix)
 Bloques Funcionales
(Function Blocks)
 Bloques de entrada-salida
(Input/Output Block)
Complex Programmable Logic Device CPLD [6]

 Son ISP (In System


Programmable), es decir,
tienen la capacidad de
reconfigurar su lógica y
funcionalidad durante o
después del proceso de
manufactura.
Al ser reprogramable es
muy sencillo modificar su
configuración en terreno y
permite actualizar el
funcionamiento a través de
la red. MAX 7000E – Cortesía ALTERA [2]
Complex Programmable Logic Device CPLD [6]

BLOQUES FUNCIONALES
Similar a una PAL. Entradas:
I/O Block, otros bloques
funcionales y realimentación
del mismo bloque.
Salida directa del bloque o al
Flip-Flop del Bloque.
Es posible configurar el Flip-
Flop como T, JK, RS o D.
Multiplexores con su
respectivo transistor FET, que
permite la programación del
mux según la línea de control. CPLD function block (courtesy of
Altera Corporation)
Complex Programmable Logic Device CPLD [6]

CPLD complex macrocell (courtesy of Altera Corporation)


Complex Programmable Logic Device CPLD [6]
BLOQUES ENTRADAS/SALIDAS
Dirige las señales a los pines del
CPLD en el nivel de voltaje
adecuado (maneja diferentes
niveles).
Configuración: Entrada, Salida y
Bidireccional. Los pines I/O
tienen buffers tri-estado
controlados por señales de
habilitación de salida glogal o
llevando a GND o a VCC. Pueden
configurarse como open drain.
Control slew-rate, que controlan
el ruido, reflexiones y niveles
fuera del estándar a alta
velocidad.
Complex Programmable Logic Device CPLD [6]

MATRIZ DE CONEXIÓN
Permite conectar
cualquier bloque
funcional o bloque E/S
con cualquier otro.
Los retardos a través del
CPLD son
determinísticos (fijos).
Complex Programmable Logic Device CPLD [5]
Complex Programmable Logic Device CPLD [5]
Complex Programmable Logic Device CPLD [5]
Complex Programmable Logic Device CPLD [5]
Field Programmable Gate Array FPGA [6]

 Estan mucho más cerca a los


ASIC que los CPLDs.
 Es díficil predecir los retardos
que se producen al rutear ciertas
Logic Blocks.
 Se constituyen básicamente de:
Bloque lógico Configurable
(Configurable Logic Block),
Bloque configurable
Entrada/Salida (Configurable
I/O Block) y Recursos de
interconexión (Interconnection
Resources)
 Poseen un arbol especial para el
Diagrama básico constitutivo de
reloj, para minimizar el retardo
una FPGA
en esta importante señal
Field Programmable Gate Array FPGA [6]

También contienen una


circuitería especial de
reloj y lógica (ALU,
decodificadores, …)
Tipos mas comunes:
Antifusible y SRAM.
Su arquitectura es
regular, lo cual la hace
una mejor opción para
diseños lógicos.
Diagrama básico constitutivo de
una FPGA
Field Programmable Gate Array FPGA [6]

Los mux también permiten el


reset, el clear y la polaridad.
BLOQUES LÓGICOS
Manejan 2 LUTs de 4 entradas
CONFIGURABLES (CLBs)
Contiene
(generadores de lógica
la lógica combinacional) y 1 LUT de 3
programable de la FPGA. entradas donde interviene la
Además, posee una RAM información de los LUTs de 4
para generar lógica entradas e información
combinacional arbitraria. procedente de otro CLB (4
Cuenta con Flip-Flops para entradas de la parte superior)
almacenar información y un Los mux tambien permiten
conjunto de multiplexores escoger que los Flip-Flops se
para escoger llevar los datos activen por flanco de subida o
al mismo bloque o a otro o de bajada.
poder adquirir los mismo.
Field Programmable Gate Array FPGA [6]
Field Programmable Gate Array FPGA [6]

BLOQUES CONFIGURABLES
ENTRADA/SALIDA
Pueden ser usados como:
entrada, salida o
bidireccional.
Manejan diferentes voltajes
de threshold: TTL o CMOS
Control slew-rate, que
controlan el ruido,
reflexiones y niveles fuera
del estándar a alta velocidad.
Cuentan con resistencias de
pull-up.
Field Programmable Gate Array FPGA [6]

INTERCONEXIÓN
PROGRAMABLE
Existe una jerarquía entre las
conexiones dependiendo de la
cercanía entre los CLBs. Lineas
Cortas.
Para las conexiones entre CLBs
lejanos se utilizan las Matrices
de Switches, el problema de esto
es el retardo que se genera que
es mucho mayor al de la lógica.
Para las conexiones más lejanas
se utilizan las Lineas Largas, las
cuales minimizan el retardo de
las señales
Field Programmable Gate Array FPGA [5]
Field Programmable Gate Array FPGA [5]
Field Programmable Gate Array FPGA [5]
DIFERENCIAS ENTRE CPLD y FPGA

• Arquitectura Interna del Dispositivo y


como la arquitectura implementa las
funciones

• Tecnología del semiconductor que


permite al dispositivo ser programado y
ser conectado internamente
DIFERENCIAS ENTRE CPLD y FPGA
Tiempo de diseño en ASICs y FPGAs [4]
Joint Test Action Group - JTAG

IEEE 1149.1: Comprobar


funcionalidad de un
dispositivo y las conexiones a
otros CI.
Desplazar datos a través de
las celdas “boundary scan”
BIST (built-in self-test):
Modo en el que se genera un
conjunto de vectores de test
pseudo-aleatorio como
vectores de estímulo. Se
comparan los resultados y se
presentan los posibles
errores.
BIBLIOGRAFÍA
[1] Borromeo L., Susana. Diseño con FPGAs.
Universidad Rey Juan Carlos.
[2] Campos, J. C. Dispositivos Programables
Básicos. Universidad de Oviedo.
[3] Harris, D.; Harris, S. Digital Design and
Computer Architecture. Editorial Morgan Kaufmann.
[4] MIT. Introductory Digital Systems Laboratory.
[5] Rose, J. FPGA AND CPLD ARCHITECTURES: A
TUTORIAL
[6] Zeidman, B. Designing with FPGAs and CPLDs.
CMP Books.

También podría gustarte