Está en la página 1de 6

Dispositivos Programables Complejo (CPLD)

INTRODUCCION

Un CPLD (del acrónimo inglés Complex Programmable Logic Device) es un dispositivo


electrónico. Extienden el concepto de un PLD (del acrónimo inglés Programmable Logic
Device) a un mayor nivel de integración ya que permite implementar sistemas más eficaces, ya
que utilizan menor espacio, mejoran la fiabilidad del diseño, y reducen costos. 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, lo cual hace más
eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor costo.

Las PAL y PLA son útiles para implementar una gran variedad de pequeños/medianos circuitos
digitales (Entradas más salidas que no superen el numero de 32). Cuando se requiere mayor
cantidad de entradas/salidas se recurre a un CPLD (Complex Programmable Logic Devices)

¿Qué es un PAL y PLA?


Basada en la idea de que una función lógica puede ser realizada como una suma de productos,
una PLA, comprende un conjunto (arreglo – array) de compuertas AND que alimentan un
arreglo de compuertas OR – Un esquema circuital se muestra en la Fig.3. En esta figura se
observa que cada entrada a la compuerta AND se puede programar (conectar o nó).
Como hemos visto en las PLAs ambos arreglos (planos AND y OR) son programables. Esto
tiene dos dificultades para el fabricante. En primer lugar, es de fabricación compleja por la
cantidad de llaves, por otro lado, son poco veloces. Este problema los llevo a mejorar el diseño
y desarrollaron un dispositivo de arreglo AND programable y OR fijo. Esta estructura se
denomina Programmable Array Logic. La PAL ofrece menos flexibilidad que la PLA debido a
que tiene un arreglo fijo (OR). La PLA permite hasta 4 términos producto por compuerta OR,
mientras que la PAL solo 2.
¿Cómo funciona un CPLD?
Un CPLD en el fondo no es más que una versión mejorada y por tanto más compleja de un
dispositivo PLD. ¿Qué son los dispositivos PLD? Los hemos dicho antes y son los que en su
día eran conocidos como PLA.
Un CPLD no es más que una serie de PLA como función de entrada, pero sus puertas OR no
generan una salida, sino que su salida es distribuida a través de una matriz que conecta con
otra serie de funciones PLA, las cuales pueden dar un resultado de salida o retroalimentar en
dirección contraria.
En un CPLD por tanto, todas las funciones lógicas posibles se encuentran codificadas en los
diferentes PLA que se van combinando para conseguir así la función final que se quiere
obtener. En general en diseño de nuevos procesadores los CPLD se utilizan tanto para simular
la lógica combinacional como la función fija, mientras que los FPGA se utilizan para la lógica
secuencial y elementos más complejos como son por ejemplo las ALUs. Como curiosidad, las
unidades de descodificación instrucciones de CPUs y GPU se suelen implementar primero en
CPLD, dado que en el fondo no son más que circuitos combinacionales.
¿Qué es un CPLD y cómo se compara con un FPGA?
 Los FPGA están mejor preparados para simular hardware que depende del tiempo,
ciclos de reloj, mientras que un CPLD está más pensado para lo que con circuitos
combinacionales y que por tanto no dependen de una secuencia de pasos por ciclo.
 En un CPLD el tiempo que tarda una función sintetizada en el mismo será siempre el
mismo, en un FPGA no. De ahí a que se utilicen los CPLD para diseñar circuitería
combinacional.
 Los FPGA están pensados como productos de muy alta gama y por tanto con un alto
coste. Los CPLD al contrario.
 Los FPGA pueden funcionar a velocidades de reloj mucho más altas que un CPLD.
 Un FPGA necesita ser reprogramado cada vez que es encendido, ya que se
desprograma al apagarse, un CPLD funciona como una ROM y no va a perder su
configuración al apagarse el dispositivo. Esto significa que los FPGA se basan en
memoria RAM en su arquitectura y los CPLD en memoria ROM.
Por lo que nunca vamos a ver algo complejo como una CPU implementado en un CPLD, dado
que no están pensados para ello. A día de hoy los CPLD se suelen integrar dentro de placas de
desarrollo FPGA, por lo que es común combinar ambos tipos de circuitería programable.

Caracteristicas

 CPLDS contiene el equivalente de varios PALs/ GALs


connectados por interconnecciones programmables.
 CPLDs pueden reemplazar miles o cientos de miles compuertas lógicas.
 El tiempo de E/S del CPLD es predecible debido a su simple
estructura de interconecciones
 CPLDs contienen 16-1024 macroceldas
 cada macrocelda equivale a unas 20/40 compuertas (incluyendo un Flip/Flop
programable)
 puede tener desde 20 hasta 381 I/Os
 hay un trade-off entre el espacio para las macroceldas y el
espacio para las interconecciones

Programación de los CPLDs


Opciones de Programación:
one-time programmable:

 el dispositivo es programado una vez y mantiene su


programación para siempre

 usualmente usa fusible para crear/romper una unión de


interconección

 no se puede re-programar, pero normalmente es muy


barato

 si se debe hacer alguna modificación a la lógica interna


del CPLD, el dispositivo se descarta y se usa uno nuevo
(no programado)

Borrable por UV:

 la programación del CPLD es borrada por emisión UV


 tiene un encapsulado cerámico con una ventana arriba del área del chip
 este encapsulado especial es bastante caro
 normalmente se debe remover el CPLD del zócalo para borrarlo/reprogramarlo
 programación es retenida después de cortar Vcc (no-volatile)
 programación/borrado es limitada a unos 1000s ciclos

Borrable eléctricamente:

 borrado y programado del CPLD se hace con una corriente eléctrica


 el CPLD puede ser programado/borrado en el PCB, no es necesario encapsulado
especial o zócalo
 tiempo de borrado es mucho menor que el borrado UV
 no-volatile
 programación/borrado es limitada a unos 1000s ciclos

CLASIFICACIÓN DE LOS PLD (ARQUITECTURA) :


 PROM (Memoria programable de sólo
lectura)
 PLA (Arreglo lógico programable)
 PAL (Lógica de arreglos programables)
 GAL (Arreglo lógico genérico)
 CPLD (Dispositivo lógico programable
complejo)
 FPGA (Arreglos de compuertas
programables mediante campos)

Arquitectura
Matriz de Interconexiones Programables[editar]

Procesador de un CPLD de la marca Altera.


La matriz de interconexiones programables (PIM) permiten unir los pines de entrada/salida a
las entradas del bloque lógico, o las salidas del bloque lógico a las entradas de otro bloque
lógico o inclusive a las entradas del mismo. La mayoría de los CPLDs usan una de dos
configuraciones para esta matriz: interconexión mediante bloques o interconexión
mediante multiplexores.
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 las GAL esta celda puede ser activada para
conectar/desconectar la correspondiente fila y columna. Esta configuración permite una total
interconexión entre las entradas y salidas del dispositivo o bloques lógicos. Sin embargo, estas
ventajas provocan que disminuya el rendimiento del dispositivo, además de aumentar el
consumo de energía y el tamaño del componente.
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 número
de multiplexores por cada bloque lógico. Las líneas de selección de estos multiplexores son
programadas para permitir que sea seleccionada únicamente una vía de la matriz de
interconexión por cada multiplexor la cual se propagara a hacia el bloque lógico. Cabe
mencionar que no todas las vías son conectadas a las entradas de cada multiplexor. La
rutabilidad se incrementa usando multiplexores de mayor tamaño, permitiendo que cualquier
combinación de señales de la matriz de interconexión pueda ser enlazada hacia cualquier
bloque lógico. Sin embargo, el uso de grandes multiplexores incrementa el tamaño de
dispositivo y reduce su eficiencia.
Bloques Lógicos
Un bloque lógico es similar a un PLD, cada uno pose un bloque 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. El tamaño del bloque lógico es una medida de la capacidad del
CPLD, ya que de esto depende el tamaño de la función booleana que pueda ser implementada
dentro del bloque. Los bloques lógicos usualmente tienen de 4 a 20 macroceldas.
Macroceldas
Las macroceldas de un CPLD son similares a las de un PLD. Estas también están provistas
con registros, control de polaridad, y buffers para salidas en alta impedancia. Por lo general un
CPLD tiene macroceldas de entrada/salida, macroceldas de entrada y macroceldas internas u
ocultas (buried macrocells), en tanto que un 22V10 tiene solamente macroceldas de
entrada/salida. Una macrocelda interna es similar a una macrocelda de entrada/salida, solo que
esta no puede ser conectada directamente a un pin de salida. La salida de una macrocelda
interna va directamente a la matriz de interconexión programable.
Celda de entrada/salida
La función de una celda de entrada/salida es permitir el paso de una señal hacia dentro o hacia
el exterior del dispositivo. Dependiendo del fabricante y de la arquitectura del CPLD estas
celdas pueden o no ser consideradas parte del bloque lógico.
ARQUITECTURA DE LOS CPLDS DE ALTERA
CPLD MAX 7000
Su Arquitectura de un CPLD es la forma en que están organizados y a la disposición a los
elementos internos del dispositivo. Son similares al diagrama de bloque de un CPLD genérico,
Teniendo la estructura clásica PAL/GAL que nos permite generar las funciones suma de
producto. Su densidad varía entre dos bloques LAB y 16 bloques LAB, dependiendo del
dispositivo concreto de la serie que se vaya a utilizar.1
Un bloque LAB es similar a un SPLD y que el tamaño de los encapsulados varía entre 44 y 208
pines, cabe mencionar que utilizan una tecnología de proceso basada en EEPROM. Las
versiones que se pueden programar dentro del sistema para ello se utilizan la interfaz estándar
JTAG.

*EJEMPLOD DEL PDF CPLDS

También podría gustarte