Sei sulla pagina 1di 19

Funcionamiento de un CPLD

Un CPLD (del acrnimo ingls Complex Programmable Logic Device) es un


dispositivo electrnico que extiende el concepto de un PLD (del acrnimo ingls
Programmable Logic Device) a un mayor nivel de integracin ya que permite
implementar sistemas ms eficaces, porque utilizan menos espacio, mejoran la
fiabilidad del diseo, y reducen costos.
Un CPLD se forma con mltiples bloques lgicos, cada uno similar a un PLD.
Los bloques lgicos se comunican entre s utilizando una matriz programable
de interconexiones, lo cual hace ms eficiente el uso del silicio, conduciendo a
una mejor eficiencia a menor costo.
Matriz de Interconexiones Programables
La matriz de interconexiones programables (PIM) permiten unir los pines de
entrada/salida a las entradas del bloque lgico, o las salidas del bloque lgico a
las entradas de otro bloque lgico o inclusive a las entradas del mismo. La
mayora de los CPLDs usan una de dos configuraciones para esta matriz:
interconexin mediante bloques o interconexin mediante multiplexores.
El primero se basa en una matriz de filas y columnas con una celda
programable de conexin en cada interseccin. Al igual que en las GAL esta
celda puede ser activada para conectar/desconectar la correspondiente fila y
columna. Esta configuracin permite una total interconexin entre las entradas
y salidas del dispositivo o bloques lgicos. Sin embargo, estas ventajas
provocan que disminuya el rendimiento del dispositivo, adems de aumentar el
consumo de energa y el tamao del componente.
En la interconexin mediante multiplexores, existe un multiplexor por cada
entrada al bloque lgico. Las vas de interconexin programables son
conectadas a las entradas de un nmero de multiplexores por cada bloque
lgico. Las lneas de seleccin de estos multiplexores son programadas para
permitir que sea seleccionada nicamente una va de la matriz de interconexin
por cada multiplexor la cual se propagara a hacia el bloque lgico. Cabe
mencionar que no todas las vas son conectadas a las entradas de cada
multiplexor. La rutabilidad se incrementa usando multiplexores de mayor
tamao, permitiendo que cualquier combinacin de seales de la matriz de
interconexin pueda ser enlazada hacia cualquier bloque lgico. Sin embargo,
el uso de grandes multiplexores incrementa el tamao de dispositivo y reduce
su eficiencia.
Bloques Lgicos
Un bloque lgico es similar a un PLD, cada uno pose un bloque de compuertas
AND y OR en forma de suma de productos, una configuracin para la
distribucin de estas sumas de productos, y macroceldas. El tamao del bloque
lgico es una medida de la capacidad del CPLD, ya que de esto depende el

tamao de la funcin booleana que pueda ser implementada dentro del bloque.
Los bloques lgicos usualmente tienen de 4 a 20 macroceldas.
Macroceldas
Estas tambin estn 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, slo que esta no puede ser conectada directamente a un pin de
salida. La salida de una macrocelda interna va directamente a la matriz de
interconexin programable.
Celda de Entrada / Salida
La funcin de una celda de entrada/salida es permitir el paso de una seal
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 lgico.

Estructura de un CPLD
Los CPLD son dispositivo lgicos programables con una complejidad entre los
dispositivos PLA y FPGA. La caracterstica principal comun entre los CPLD y
PAL, es la configuracin de memoria no-volatil, y con respecto a los dispositivo
FPGA, la caracterstica comn de ste ltimo es que posee un desarrollo de
compuertas de grande densidades, con la diferencia que los FPGA, tienen
mayor densidad que los CPLD. A modo general un CPLD es como si se tuviera
varios PLD, tipo PAL, dentro de un slo chip. el tamao mas grande los CPLD
permite implementar ecuaciones lgicas o diseos mas complicados. la
programacin de estos dispositivos es generalmente en lenguajes de
descripcin de hardware , por ejemplo, VHDL o Verilog.

Matriz de Suma de Puntos


Se relacionan con un mayor nmero de interconexin de secciones de
compuertas programables, tales secciones pueden ser otros PLD, es decir el
CPLD puede contener similares PLD de baja densidad, "PAL", interconectados
entre s, en un solo chip.

Figura # 1: Diagrama de
Bloque de un CPLD (por ALTERA)

Figura # 2: Diagrama de
Bloque de un CPLD (por XILINX)
La estructura principal son los bloques de matriz lgicos (LAB) o bloques de
Funcin (Funtion Block), que se comunican en un bus interno con la matriz de
Interconexin Programable (PIA) o tambin llamado Fast CONNECT Switch
Matrix. Cada bloque es un grupo de 16 macroceldas; tienen entradas y salidas
similares a los PLD de baja densidad, con capacidad de programarse. El
nmero de pines de entrada y/o salida depender del dispositivo, para el caso
de la figura 1, corresponde al modelo MAX7000S, basados en celdas
EEPROM, del fabricante ALTERA, de 6 a 16 pines de entrada y salida, estas
ltimas se encuentran en el bloque de control de entrada y salida, la cual
tambin posee conexin con el PIA, y en la figura 2, el bloque de salida y
entrada I/O, poseen un bufer para los dispositivos de entrada y salida.

Cada bloque de funcin, para el caso de XILINX modelo de ejemplo "XC9500",


esta compuesto de 18 macroceldas independientes. Los bloques funcionales
tambin reciben una seal (reloj) de sincronismo global, una seal para
habilitar la salida y una seal para habilitar el reset/set. El bloque funcional
genera 18 salidas que maneja el FAST CONNECT. estas 18 salidas y su
correspondiente seales de habilitacin son gobernadas por el bloque I/O. la
lgica dentro de los bloques funcionales es implementada utilizando la
representacin de suma de producto .

Figura # 3: Bloque de
Funcin
Las macroceldas pueden ser configuradas individualmente por una funcin de
registro. 5 matriz de compuertas AND, directos al "product terms "(termino de
producto), son utilizados como entrada de datos primario (para las compuertas
OR y XOR) para implementar funciones combinacionales, o como entradas de
control incluyendo el reloj, seales set/reset, y seal de habilitacin de salida.
Los registros de las macroceldas pueden ser configurados como FLIP-FLOP
tipo D o FLIP-FLOP tipo T. o este puede ser omitido por una operacin
combinacinoal. Cada registro soporta operaciones set y reset asincronos.
durante el encendido del dispositivo, todos los registro son inicializados al
estado predefinido por el usuario.

Figura # 4: Macrocelda
con Bloque de Funcin

Las seales de contro global son desarrolladas individualmente en cada


macrocelda, incluyendo seal de reloj, seal de set/reset, y la seales de
habilitacin. la macrocelda registra seales de reloj de cada uno de los tres
relojes globales o del termino producto. La seal GSR, es una seal de
Reset/set, de entrada que permite que sea definido por el usuario.

Figura # 5: Reloj de
Macrocelda

El termino producto, controla que la matriz de las 5 AND sean asignadas a


cada macrocelda, un ejemplo pudiera ser que todas las AND sean manejadas
por una OR. El inconveniente de esto es que se evidencia el retardo de un
termino producto a otro como se observa en la siguiente figura.

Figura # 6: Lgica de
Macrocelda utilizando termino producto

Figura # 7: Lgica de un
termino producto

El FAST CONNECT Switch Matriz conecta las seales a la entrada del bloque
de funcin; tanto las salidas del bloque I/O como las salidas del bloque de
funcin las manejas el Fast Connect Switch Matrix, cualquiera de estas pueden
ser seleccionadas, a travs de la programacin del usuario, para poder manejar
cada bloque con un retardo uniforme.

Figura # 8: Fast Connect


Switch Matrix

El Bloque I/O es la interfaz entre la lgica interna y los pines de entrada y salida
del dispositivo CPLD. Cada bloque de I/O incluye un bufer de entrada y un
manejador de salida; un multiplexor que selecciona la salida habilitada, y
tambin incluye una seal de control de tierra para la programacin del usuario.
El bufer de entrada es compatible con tensin de 5 V CMOS, 5 V TTL, y
seales de voltaje de 3.3 V. El bufer de entrada usa internamente un suministro
de potencia de 5 V ( Vccint), para asegurarse que el umbral de entrada
permanezca constante y no varie con el voltaje Vccio. la seal de salida se
habilita de la siguiente formas: una seal puede ser generada por el termino
producto de la macrocelda, cualquiera de las seales globales de OE, o por
una seal de tercer estado GTS.

Figura # 9: Bloque I/O


Cada salida tiene un control independiente de "Slew Rate" (Mxima variacin
del voltaje de salida con respecto al tiempo); este control permite reducir o
controlar el ruido en el sistema, con slo modificar el Tslew.

Figura # 10: Slew Rate


Estos CPLD poseen circuito con memoria EEPROM; que permiten reescribirse
muchas veces, dependiendo del fabricante puede ser hasta 10.000 veces,
como es el caso del fabricante XILINX, los modelos de la serie XC9500.

Tabla de Datos (Look up Table)


Esta arquitectura se basa en la implementacin lgico de bus de interconexin
de filas y columnas, estas interconexiones tambin proveen conexin al bloque
de matriz lgicos (LAB). El LAB consiste de varios elementos lgicos (LE);
segn el modelo pueden ser 10 LE, por cada LAB. Los LE es una pequea
unidad lgica que proveen una eficiente implementacin de funciones lgicas
del usuario. El Multitrack Interconnect provee una rpida conexin entre los
LAB.

Figura # 11: Diagrama de


bloque de la arquitectura de tabla de datos
Look-Up Table (LUT), Es un circuito que implementa una funcin de lgica
combinacional para almacenar una lista de valores de salida que correspondan
a todas las posibles combinaciones de entradas, es decir un nmero de
elementos almacenados son usados; para resumir una funcin lgica,
almacenando cada funcin como una tabla de la verdad, esto se ilustra en la
figura 12.

Figura # 12: Look-Up


Table

Tomando como ejemplo la tabla de la verdad de la figura 12, como comparador


A1A0=B1B2 , hace que la salida lgica AEQB = 1 lgico. Una matriz de 16 flipflops (Q0 hasta Q15), contiene data de todas las posibles combinaciones
A1A0B1B0, por cada combinacin se necesita un flip-flop. La entrada de cada
LUT son decodificada por un decodificador de direcciones, cada salida del
decodificador activa una buffer de tres estados, que pasa por un bloque de
salida de flip-flop. Cuando se activa un buffer para pasar el contenido del flipflop, el resto de los buffer permanecen en estado de alta impedancia, de esta
manera se bloquea la data de los otros flip-flops. El contenido de los flip-flop
son cargados cuando el LUT es programado, con las funciones requeridas.
Continuando con el ejemplo de la figura 12, los 16 elementos almacenados en
dicha tabla, combinados , para seleccionar una salida combinacional y para
interconectar con otras partes del chip, es llamado Elemento Lgico (LE). La
funcin del desempeo del elemento lgico es similar a la de macroceldas en
los PLD de suma de producto. La estructura de un elemento lgico se muestra
en la figura 13.

Figura # 13: Elemento


Lgico
El circuito "Cascade Chain", permite al usuario programar la funcin boleana,
este circuito puede ser de compuertas AND o OR.

Figura # 14: Operacin


en Cascada
Bloque de Matriz Lgico (LAB), consiste en un nmero de elementos lgicos e
interconectados localmente; el bloque LAB, esta conectado con el resto del
dispositivo por medio de una serie de columnas y filas interconectadas, lo cual
para este caso el fabricante ALTERA ha llamado FastTrack Interconnect,
tambin se le conoce como Multitrack Interconnect.

Figura # 15: Bloque de


Matriz Lgicos
Embedded Array Block (EAB), este bloque es una matriz de 2048 elemento de
almacenaje que pueden ser usado eficientemente en la implementacin de
funciones lgicas complejas.

El FLEX10K es un dispositivo del fabricante ALTERA, tiene una matriz de 6 filas


por 24 columnas de bloque de matriz lgico (LAB), es decir que tendr 144

LAB, que a su ves son 8 x 144LAB= 1152 elementos lgicos, estos elementos
tambin tienen 6 EAB; 6X2048 = 12288 bits de almacenaje de EAB, note que
un EAB tiene mas capacidad de almacenaje que un LAB combinado.

Algunos los dispositivos basados en LUT, son de tecnologa de memoria de


acceso aleatorio esttica (SRAM), la ventaja de esta configuracin es que este
puede ser fabricado en densidades muy altas de celdas de almacenajes y
programar rpidamente, comparado con un dispositivo, (suma de producto,
SOP), basado en EEPROM. La desventaja es que las celdas SRAM, son
voltiles; es decir que deben reconfigurarse cada vez que se reinicia el sistema.

Figura # 16: Diagrama en


bloque de un dispositivo de estructura de datos como es el caso del FLEX10K del
fabricante ALTERA
El mismo fabricante ALTERA, posee el modelo MAXII, "tabla de datos LUT", tal
modelo contiene un bloque de memoria "falsh", dentro del dispositivo. La
mayora de estos almacenajes de memorias flash, son particionadas como un
bloque de programacin o configuracin de memoria flash (CFM); este provee
un almacenaje no voltil; la CFM descarga y configura la lgica. Una porcin
pequea de la memoria flash es utilizado para la data de usuario, este pequeo
bloque de memoria UFM, provee una almacenaje para el usuario de propsito
general, en este bloque se provee la conexin del puerto programable para el
arreglo lgico de lectura y escritura.

Figura # 17: Diagrama de


bloque del modelo MAXII

Figura # 18: Diagrama


del bloque de memoria UFM
El bloque UFM, puede ser utilizado como el EEPROM serial, para almacenar
informacin no voltil, este bloque se conecta al bloque de arreglo lgico a
travs del bus Multitrack interconectado, de esta manera se permite la interface
con el bloque de elemento lgico.

Construccin de un CPLD

Las vas estn compuesta de 100 porciento metal de aluminio diluido, aqu se
identificar como Metal 2, los contactos son 100 porciento metal de aluminio
diluido, identificado como Metal 1. Como caractersticas especiales posee
tecnologa "FLASH FAST". Las compuertas en el canal N son del orden de 0.45
micra, y el canal P son del orden de 0.5 micra. El dispositivo esta formado por
una capa de nitruro de silicio sobre otra capa de dixido de silicio. Posee dos
capas de polisilicio. El PLOY 1 fue utilizada exclusivamente en compuertas
flotantes, y POLY 2 (polisilicio y silicio de tusteno) fue utilizado para todas las
compuertas estndar, en la matrix de lineas de programas y de palabra. La
matrix de celdas programables son EEPROM (tecnologa FAST FLASH), el
Metal 2, ser utilizado para las lneas de programa y de la palabra de dato. El
Metal 1 distribuye la tierra GND y una lnea de un bit. El dieltrico se encuentra
entre las capas POLY es de ONO "xido-nitruro-xido". el color anaranjado es
Nitruro de Silicio, el color azul es Metal 1 y 2, el color amarillo es xido, el color
verde es polisilicio, color rojo difusin del canal P y N, y el color gris es el
substrato P. Ver figura 19.
Si el dispositivo es borrable elctricamente EEPROM, sus conexiones es a
base de transistores MOS de puerta flotante, que contiene una puerta adicional
embebida en el aislante entre la puerta normal (accesible desde el exterior) y el
substrato. esta puerta extra, sin conexin al exterior y completamente rodeada
de material aislante, es la puerta flotante. los transistores MOS, inicialmente no
tienen carga en la puerta flotante, de forma que actan como transistores
normales: en cada linea vertical se realiza la operacin lgica Y; es necesario
que todas las lneas horizontales estn bajas (a=b=c=d=L) para que las lneas
verticales sean altas (x=y=z=H), y basta que una de las entradas sea baja (a=L,
por ejemplo) para que su lnea correspondiente sea alta, y por tanto los
transistores cuyas puertas estn conectadas a esa lnea de entada pasan a
conduccin, y entonces las lneas verticales se hacen L. En otras palabras, los
transistores hacen el punto de conexin entre las lneas verticales y
horizontales. Para desconectar un punto de conexion (un transistor), en la fase
de programacin se aplica una tensin relativamente elevada (15 a 20)V en la
puerta del transistor a desconectar; esta tensin hace que, por un proceso
fsico conocido como efecto tnel, atraviesen electrones desde el substrato por
la fina capa de aislante y queden almacenados en la puerta flotante. En
definitiva la introduccin de electrones en la puerta flotante desconecta el
transistor del circuito, ya que siempre estar cortado (estado off).

Figura # 19:
Construccin de un CPLD

Figura # 20: Lnea de Productos

Diseo de un CPLD
Es importante tomar en cuenta la densidad de compuertas que se requiere, y
para ello es necesario determinar el nmero de macroceldas que debe poseer
el dispositivo; tambin es importante determinar el nmero de entradas y de
salida, segn la ecuacin lgica obtenida. los retardos de propagacin entre la
seal de entrada y de salida se debe de tomar en cuenta cuando se esta
trabajando con altas velocidades de procesamiento. hay sistemas que trabajan
con diferentes niveles de tensin por lo que es importante conocerlos tomarlo
en cuenta en el dispositivo CPLD. estos niveles de tensi pueden oscilar entre
1.5 V a 5 V.

En la metodologa modernas de diseos digitales, para sistemas de relativa


complejidad, en lugar de utilizar descripciones del comportamiento del sistema
en forma de tablas (tablas de la verdad, de transicin de estado, etc) se utilizan
lenguajes especficos, los lenguajes de descripcin de hardware o HDL
(Hardware Description Language), que pueden describir tanto el
comportamiento como la estructura de un sistema.

Diseo de un decodificador binario de 2 a 4


1. Se realiza la descripcin del sistema, de forma que el entorno de desarrollo
pueda generar una representacin interna del mismo. se puede optar entre una
descripcin estructural, con ayuda de un editor grfica de captura de esquemas, o
una descripcin del comportamiento con un lenguaje HDL.
2. Se realiza una compilacin funcional, con la que se verifican posibles errores en
el diseo (salidas cortocircuitadas, entradas flotantes...) y adems se genera una
representacin interna del sistema, con la que puede efectuarse una simulacin
funcional del mismo. en esta fase la simulacin es slo funcional y es
independiente de la tecnologa de implementacin, que es la que depende de los
retardo que se produzcan.
3. En el software (compilador) se especifica la tecnologa de implementacin. Se
proyecta el diseo al tipo de celdas lgicas, celdas de entradas y salida, y recurss
de conexin del CPLD seleccionado. tras la compilacin se obtiene una
representacin interna del sistema implementado y se genera un fichero
informativo donde se detalla el porcentaje de ocupacin del dispositivo, las
asignaciones de celdas y pines de entrada y salida, y otros.
4. Se hace una simulacin y anlisis temporal. con la informacin detallada de las
caractersticas tcnicas de cada uno de sus componentes de la biblioteca de
elementos se puede realizar una nueva simulacin mas real y se puede establecer
los tiempos de retardos.

5. Una vez compilado y simulado el circuito; se debe configurar fsicamente el


CPLD, lo que puede realizarse fsicamente con un programador de PLD o en el
propio sistema (ISP). Es preferible utilizar este ltimo para reducir los psibles
daos mecnicos en los pines del dispositivo, por lo tanto suelen configurarse
los CPLD en la propia tarjeta del sistema final, con una programacin ISP (InSystem Programming), esta opcin se utiliza en circuitos borrables
elctricamente EEPROM o configurables con celdas SRAM. Comnmente se
utiliza el protocolo JTAG (joint Test Action Group). que utiliza cuatro lineas
para transferir bit a bit entre el computador y la tarjeta del sistema la
informacin de configuracin.

Figura # 21: Descripcin del


decodificador: a) estructural; b) funcional

Figura # 22: Esquema de


conexin utilizando el programador CPLD

Figura # 23: Esquema de


conexin utilizando un cable de descarga

Fabricantes de un CPLD

ALTERA

Ha desarrollado tres familias de la categora CPLD. MAX5000, MAX7000 y


MAX9000. El MAX5000 representa la tecnologa mas antigua que ofrecen
soluciones de costo efectivo; el MAX7000 ofrece altas capacidades lgicas y
mayor desempeo en velocidad; el MAX9000 es similar al MAX7000, excepto
que el MAX9000 ofrece una mayor capacidad lgica. El MAX7000 contiene
bloques de matrix lgicos LAB, matrix de interconexin programable PIA, esta
serie fueron desarrollados en tecnologa EPROM y EEPROM, la desventaja de
esta serie es que se debe programar fuera del circuito de desarrollo; desde
1996 Altera, desarrollo el modelo MAX7000S, capaz de programarse en lnea,
es decir en el mismo circuito. Altera FlashLogic CPLDs, anteriormente conocido
como Intel`s FlEXlogic, caracterizado por programarse dentro del sistema y
provee bloques SRAM en el dispositivo. La configuracin de compuertas ANDOR, son por celdas SRAM, respaldadas por celdas EPROM o EEPROM. Al
realizar un suministro de potencia las celdas SRAM son cargadas con un copia
de la memoria EEPROM o EPROM, pero es la celda SRAM la que controla la
configuracin del dispositivo.

ATMEL

Ofrece el modelo ATF1500A, alto desempeo y alta densidad de compuertas,


construido con tecnologa FLASH, con un retardo de 7.5 ns de pin a pin.

AMD

Ofrece una familia de CPLD con 5 sub-familias llamadas Mach 1 a Mach 5.


Cada dispositivo Macth, contiene bloques con mltiplos PAL; Match 1 Y 2
consiste en el modelo 22V16PALs, Match 3 y 4 consiste en el modelo
34V16PALs y el Match 5 ofrece modelos parecidos a los anteriores pero con
mayor desempeo en velocidad. Todos los Match estn basados en tecnologa
EEPROM. El rango de capacidad lgicas estn cercas de 2000 a 5000
compuertas.

CYPRESS SEMICONDUCTOR

Son similares a los dispositivos AMD y Lattice en muchas maneras; el Cypress


CPLD, llamado FLASH370, esta basado en tecnologa FLASH EEPROM, y
ofrece un desempeo en el retardo de velocidad de 8.5 a 15 ns de pin a pin, la
desventaja es que no es programable en el sistema.

LATTICE SEMICONDUCTOR

Lattice ofrece un completo rango de CPLD; con dos lneas de productos


principales: Lattice pLSI que consiste en tres familias de EEPROM de CPLD; y
el ispLSI que son los mimos dispositivos pLSI, con la diferencia de los ispLSI
son programables en el sistema. Los rangos de capacidades lgicas estn
cercas de 1200 a 4000 compuertas y el retardo de pin a pin es de 10 ns. El
Lattice de la serie 3000 representa su desarrollo mas grande con 5000
compuertas y un retardo de 10 a 15 ns.

XILINX

Ofrecen el modelo XC7000 y el XC9500; hay dos familias principales en el


XC7000: la serie 7200 y 7300, el 7200 es un dispositivo moderadamente
pequeo con 600 a 1500 compuertas; y con un retardo de pin a pin de 25 ns. El
7300 ofrece 3000 compuertas y lo otro que diferencia al 7200 es que el 7300
incluye dos compuertas OR en cada macroceldas. Finalmente el XC9500
ofrece la programacin dentro del circuito, con una capacidad de 6200
compuertas y un retardo de 5 ns.

Potrebbero piacerti anche