Está en la página 1de 15

UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO

INNOVACIN PARA EL DESARROLLO

Dispositivos Lgicos Programables

Las iniciales PLD vienen del ingls Programmable Logic Device, que traducido a nuestro idioma
significa Dispositivo Lgico Programable y son
circuitos integrados que ofrecen a los
diseadores en un solo chip, un arreglo de
compuertas lgicas y flip-flops, que se pueden
configurar por el usuario para implementar una
amplia variedad de funciones lgicas en
sistemas. Estos dispositivos tienen pines de
entrada, un arreglo lgico programable y pines de
entrada y salida. Muchos PLD's tienen salidas
programables que incrementan su flexibilidad
hacindolos tiles para una gran variedad de
aplicaciones.

Un dispositivo lgico programable, o PLD


(Programmable Logic Device), es un dispositivo
cuyas caractersticas pueden ser modificadas y
almacenadas mediante programacin. El principio de sntesis de cualquier dispositivo lgico
programable se fundamenta en el hecho de que cualquier funcin booleana puede ser expresada como
una suma de productos. El dispositivo programable ms simple es el PAL (Programmable Array
Logic). El circuito interno de un PAL consiste en un arreglo, o matriz, de compuertas AND y un
arreglo de compuertas OR. El arreglo AND es programable mientras que el OR generalmente es fijo.
Mediante una matriz de conexiones se seleccionan cuales entradas sern conectadas al arreglo AND,
cuyas salidas son conectadas al arreglo OR y de esta manera obtener una funcin lgica en forma de
suma de productos. Una matriz de conexiones es una red de conductores distribuidos en filas y
columnas con un fusible en cada punto de interseccin.

La mayora de los PLDs estn formados por una matriz de conexiones, una matriz de compuertas
AND, y una matriz de compuertas OR y algunos, adems, con registros. Con estos recursos se
implementan las funciones lgicas deseadas mediante un software especial y un programador. Las
matrices pueden ser fijas o programables. El tipo ms sencillo de matriz programable, que data de los
aos 60, era una matriz de diodos con un fusible en cada punto de interseccin de la misma. En la
figura 1.1 se muestran los circuitos bsicos para la mayora de los PLDs.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

Figura 1.1 Estructuras bsicas de un PLD

1 Matriz Genrica Programable


Una Matriz Genrica Programable (GAL, Generic Array Logic) es una denominacin que utilizaba
originalmente Lattice Semiconductor y que ms tarde se licenci a otros fabricantes. Una GAL en
su forma bsica es un PLD con una matriz AND reprogramable, una matriz OR fija y una lgica de
salida programable mediante una macrocelda. Esta estructura permite implementar cualquier
funcin lgica como suma de productos con un nmero de trminos definido.

En los PLDs no reprogramables la sntesis de las ecuaciones lgicas se realiza mediante quema de
fusibles en cada punto de interseccin de los pines de entrada con las compuertas.

En el caso de un GAL es bsicamente la misma idea pero en vez de estar formada por una red de
conductores ordenados en filas y columnas en las que en cada punto de interseccin hay un fusible, el
fusible se reemplaza por una celda CMOS elctricamente borrable (EECMOS). Mediante la
programacin se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinacin de
variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operacin
producto que se desee. Una celda activada conecta su correspondiente interseccin de fila y columna,
y una celda desactivada desconecta la interseccin. Las celdas se pueden borrar y reprogramar
elctricamente. A continuacin se muestran la estructura tpica de un GAL y la macrocelda de salida
del GAL22V10.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

FIGURA 1.3 Macrocelda de un GAL22V10


UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

2 CPLD

Un CPLD (Complex Programmable Logic Device) extiende el concepto de un PLD a un mayor nivel
de integracin ya que permite implementar sistemas con un mejor desempeo porque utilizan menor
espacio, mejoran la confiabilidad en el circuito, 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 un
mejor desempeo y un menor costo. A continuacin se explican brevemente las principales
caractersticas de la arquitectura de un CPLD.

Figura 1.4 Arquitectura Bsica de un CPLD

2.1 Matriz de Interconexiones Programables

La matriz de interconexiones programables (PIM) permite 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
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

inclusive a las entradas del mismo. La mayora de los CPLDs usan una de dos configuraciones para
esta matriz: interconexin mediante arreglo 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 el 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
desempeo 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 casa 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 desempeo.

2.2 Bloques Lgicos

Un bloque lgico es similar a un PLD, cada uno pose un arreglo 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.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

Figura 1.5 Estructura de un Bloque Lgico en dispositivos delas familias MAX340 y MAX5000

2.3 Distribucin de Productos

Existen pequeas diferencias en cuanto a las matrices de productos, esto depender del CPLD y del
fabricante. Obviamente el tamao de las sumas sigue siendo el factor ms importante para la
implementacin de funciones booleanas. Cada fabricante distribuye los productos de diferente forma.
La familia MAX de CPLDs fue desarrollada por Cypress Semiconductor junto con Altera Corporation,
siendo los primeros en sacar al mercado unan familia de CPLDs. Altera la llam MAX5000 y Cypress
por su parte la clasific como MAX340. En un dispositivo como el 22V10 tenemos que la suma de
productos es fija por cada macrocelda - 8, 10, 12, 14 o 16 -, en la familia MAX se colocan 4 productos
por macrocelda los cuales pueden ser compartidos con otras macroceldas. Cuando un producto puede
ser nicamente utilizado por una macrocelda se le conoce como termino - producto dirigido, y cuando
estos pueden ser utilizados por otras macroceldas se le llama termino - producto compartido. Mediante
estos productos compartidos se mejora la utilizacin del dispositivo, sin embargo, esto produce un
retardo adicional al tener que retroalimentar un producto hacia otra macrocelda y con esto disminuye
la velocidad de trabajo del circuito. La forma en que son distribuidos los productos repercute en la
flexibilidad que proporciona el dispositivo para el diseador. Adems, que estos esquemas
proporcionan tambin flexibilidad para los algoritmos del programa de sntesis que es el que
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

finalmente selecciona la mejor forma en que deben ser distribuidas las funciones booleanas en el
dispositivo.

Figura 1.6 Distribucin de Productos en dispositivos de las familias MAX340 y MAX5000

2.4 Macroceldas

Las macroceldas de un CPLD son similares a las de un PLD. 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. A continuacin se muestra la estructura bsica de las macroceldas de
entrada/salida y macroceldas ocultas para dispositivos de la familia FLASH 370 de Cypress
Semiconductors.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

Figura 1.7 Macroceldas de entrada/salida y macroceldas ocultas en dispositivos de la familia FLASH 370

Las macroceldas de entrada, como la que se muestra en la siguiente figura, son utilizadas para
proporcionar entradas adicionales para las funciones booleanas. En el diagrama se muestra la
macrocelda de entrada de la familia FLASH 370. En general las macroceldas de entrada incrementan
la eficiencia del dispositivo al ofrecer algunos registros adicionales con los que se pueden almacenar el
valor del pin de entrada, lo cual puede ser til al momento de obtener las funciones booleanas.

Figura 1.8 Macrocelda de entrada en dispositivos de la familia FLASH 370


UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

2.5 Celda de entrada/salida

En la figura 1.7 se puede apreciar una celda de entrada/salida, que bien podra considerarse parte del
bloque lgico, pero no necesariamente tienen que estar a la salida de un bloque lgico. 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 son pueden ser
consideradas o no consideradas parte del bloque lgico.

3 FPGA

La arquitectura de un FPGA (Field Programmable Gate Array) consiste en arreglos de varias


celdas lgicas las cuales se comunican unas con otras mediante canales de conexin verticales
y horizontales como se muestra en la siguiente figura.

Figura 1.9 Arquitectura bsica de un FPGA


Cada celda lgica es similar a los bloques lgicos de un CPLD. La estructura de las celdas
lgicas y las formas en que estas pueden ser interconectadas, tanto salidas como entradas
de la celda, varan de acuerdo al fabricante. En general una celda lgica tiene menos
funcionalidad que la combinacin de sumas de productos y macroceldas de un CPLD, pero
como cada FPGA tienen una gran cantidad de celdas lgicas es posible implementar
grandes funciones utilizando varias celdas lgicas en cascada.
Adems de las celdas lgicas tambin es importante la tecnologa utilizada para crear las
conexiones entre los canales, las ms importantes son las siguientes.

ANTIFUSE

Al igual que la tecnologa PROM son programables una sola vez y utilizan algo similar a un
fusible para realizar las conexiones, una vez que es programado ste ya no se puede recuperar.
Al contrario que un fusible normal, estos anti - fusibles cuando son programados producen
una conexin entre ellos por lo que normalmente se encuentran abiertos. La desventaja es que
no son reutilizables pero por el contrario disminuyen considerablemente el tamao y costo de
los dispositivos.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

SRAM

Celdas SRAM son implementadas como generadores de funciones para simular lgica
combinacional y, adems, son usadas para controlar multiplexores e interconectar las celdas
lgicas entre si (similar a un CPLD).

3.1 Celdas Lgicas

La estructura de las celdas lgicas se ve fuertemente influida por la tecnologa utilizada para
fabricar el FPGA. Un FPGA que tiene una gran cantidad de canales de interconexin tiende a
tener pequeas celdas lgicas con muchas entradas y salidas en comparacin con el nmero
de compuertas que tiene la celda, este tipo de FPGAs generalmente utilizan tecnologa
ANTIFUSE.

Un FPGA que tiene una estructura pequea en canales de interconexin tiende a tener grandes
celdas lgicas con pocas entradas y salidas en comparacin con el nmero de compuertas que
hay en la celda. Este tipo de FPGA generalmente est hecho con tecnologa SRAM.

Una arquitectura con celdas lgicas pequeas nos permite utilizar totalmente los recursos del
dispositivo. Sin embargo, si las celdas lgicas son demasiado pequeas entonces sucede que
tendremos que utilizar un gran numero de estas en cascada para poder implementar funciones
booleanas grandes, lo cual afecta porque cada celda lgica en cascada agrega un tiempo de
retardo en la funcin implementada.

Cuando el tamao de la celda lgica es grande sucede lo contrario. En este tipo de celdas
lgicas es posible utilizar un gran nmero de compuertas por lo que podemos implementar
funciones booleanas de varios trminos con pocas celdas lgicas. El que el tamao de la celda
sea grande no afecta la frecuencia mxima de trabajo porque estamos hablando de que existe
un gran nmero de compuertas que pueden ser usadas en la funcin al mismo tiempo, siendo
el mismo tiempo de retardo para todas. En cambio cuando la celda lgica tiene pocas
compuertas es necesario utilizar las compuertas de otra celda para poder implementar la
misma funcin y se acumula el tiempo de retardo de las compuertas de la otra celda. Sin
embargo, cuando las funciones son pequeas en comparacin con el tamao de la celda no es
necesario utilizar todas las compuertas de la celda, por lo que este tipo de celdas no son
precisamente las ms indicadas para desempear pequeas funciones.

La tecnologa SRAM y ANTIFUSE son comnmente utilizadas por la mayora de los


fabricantes. La tecnologa SRAM es utilizada por Altera, Lucent Technologies, Atmel, Xilinx
y otros. La tecnologa ANTIFUSE es utilizada por Cypress, Actel, QuickLogic, y Xilinx.

A continuacin se muestran varias celdas lgicas con diferentes nombres de acuerdo al


fabricante.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

(a) Bloque Lgico Configurable de la familia XC4000 de Xilinx, Inc

(b) Modulo Lgico de la familia ACT3 de Actel Corporation


UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

(c) Elemento Lgico de la familia APEX20K de Altera Corporation


Figura 1.10 Diferentes Celdas Lgicas
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

CRONOLOGIA DE LOS PLDS

1948 Se inventa el transistor de contacto puntual en los Laboratorios Bell Telephone en Estados
Unidos, resultado de una investigacin sobre semiconductores llevada a cabo por Walter Brattain,
John Bardeen y William Shockley, quienes recibiran el premio Nobel por su enorme contribucin en
1956.

1951 Se logra un transistor con una estructura como la que se conoce actualmente.

1957 John Wallmark de RCA patenta el FET ( Field Effect Transistor ).

1959 Se concibe el primer Circuito Integrado Digital en la compaa Texas Instruments y es Jack Kilby
quin desarrolla un Flip-Flop sobre una base de substrato de Germanio y contena solo cuatro
transistores.

1961 Se presenta la primera familia de Circuitos Integrados Digitales comerciales, denominada R.T.L.
( Resistor - Transistor - Logic ) y que fue introducida por Fairchild Semiconductor bajo la serie 900,
est familia operaba a 3.2 Voltios, poco tiempo despus nace otra familia denominada D.T.L. ( Diode
- Transistor - Logic ).

1962 Aparece la familia T.T.L. ( Transistor - Transistor - Logic ), con caractersticas como el de ser ms
rpida que sus predecesoras, los primeros trabajos hechos en TTL los realiz James Buie de Pacific
Semiconductor ( hoy subsidiaria de TRW ). En ese mismo ao Steven Hofstein y Frederick Heiman de
RCA, desarrollan el MOSFET y a finales del mismo, fabrican el primer Circuito Integrado MOS ( Metal -
Oxide - Silicon ) que contena 16 transistores sobre una pastilla de silicio de 0.063 mm por lado.

1963 La compaa RCA produca un Circuito Integrado con cientos de MOSFETS en un rea muy
reducida, al mismo tiempo nacan familias como la MOS de canal N y de canal P, NMOS y PMOS
respectivamente y as como la CMOS ( Complementary MOS ). La CMOS se impuso con el tiempo
bajo la serie 40XX lanzada por RCA. Y poco tiempo despus la 74CXX de National Semiconductor.

A mediados de los 60s surge el primer PLD, una matriz de diodos configurables y fusibles
desarrollado por Harris Semiconductor ( conocida en ese tiempo como Radiation, Inc. ).

1967 Fairchild lanza al mercado una ROM de 64 bits con tecnologa MOS.

1969 Nace el primer PLA, desarrollado por IBM y descrito como ROAM ( Read Only Associative -
Memory ).

1970 La compaa Harris crea la PROM, que combinaba la tecnologa de fusibles de nicromo con una
simplificacin en la estructura de la ROM. En este mismo ao Texas Instruments fabrica el TMS 200 y
era un Circuito Integrado de mscara programable basado en el ROAM de IBM, este manejaba
diecisiete entradas y ocho salidas, contena ocho Flip - Flops JK como elementos de memoria.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

1971 Collins Radio ofrece otro PLA de mscara programable denominado CRC 3506/7, similar al TMS
200. Intel hace una innovacin tecnolgica al introducir la EPROM borrable con rayos UV. General
Electric abre una puerta ms con una nueva tecnologa PROM, desarrollada por David Greer, donde
la estructura consista de un Plano-Or y seales que van hacia un Plano-And; permitiendo el uso de
lgica de multinivel sin desperdicio de pines I/O.

1971 Al mismo tiempo General Electric hace experimentos con PLDs de tecnologa MOS, usando las
caractersticas de los PLA y con la tecnologa de borrado con rayos UV. En junio Intel ofrece al
mercado el primer microprocesador MOS ( el 4004, de 4 bits ) que contena 2300 transistores.

1972 MOSTEK Corporation lanza la primera Memoria de Alta Densidad ( una RAM dinmica de 1024
bits e Intel ofrece los primeros microprocesadores de 8 bits ( el 8008 y el 8080 ).

1973 National Semiconductor crea su propio PLA de mscara programable similar al TMS 200 pero
con catorce entradas y ocho salidas sin elementos de memoria. El mrito a este dispositivo consisti
en su menor complejidad en el diseo, mostrando as un avance en la nueva tecnologa. Este
dispositivo fue conocido como DM7575/DM8575.

1974 Monolithic Memories fabrica un dispositivo denominado PALA ( Programable Associative Logic
Array ) bajo el nmero de parte MMT 5760/6760 implementaba multiniveles y circuitos secuenciales
de ms de 100 compuertas e incorpor bajo acuerdo de General Electric innovaciones en el
dispositivo de mscara programable.

1975 Intersil anuncia el IM5200 un FPLA; poco despus, Signetics hace lo mismo con el 82S100 que
logr encabezar la carrera de los PLDs durante un tiempo.

1978 En el verano de este ao nace el dispositivo PAL, como un proyecto de MMI encabezado por
John Birkner, en el que se pretendan satisfacer varias necesidades del mercado, entre ellas las de
reemplazar la lgica estndar, mejorar los tamaos y la velocidad de los ya existentes; bajo esta idea
los PAL invaden el mercado. El PAL que conocemos actualmente se basa en un diseo de H.T. Chua.
MMI ofrece soporte para el manejo de los nuevos dispositivos en el PAL Handbook escrito por John
Birkner y que en el mismo se acompaaba de un programa hecho en Fortran para ayudar a
programar los dispositivos.

1980 Se propone y presenta el primer formato JEDEC para los PLDs.

1981 Signetics registra FPLAs con aplicaciones para mquinas de estados.

1982 En el verano de este ao Bill Wiley Smith de Signetics crea una muestra de lo que sera el
soporte para la programacin de PLDs, llamado BEE ( Boolean Equation Entry ); cuyas caractersticas
eran las Ecuaciones Booleanas, notacin de estados, tablas de verdad, minimizacin lgica en forma
automtica as como la simulacin de los diseos.
UNIVERSIDAD TECNOLGICA DE SAN JUAN DEL RO
INNOVACIN PARA EL DESARROLLO

En diciembre de este ao se anuncia el proyecto ABEL ( Advanced Boolean Expression Language )


para un nmero limitado de PLDs de diferentes manufacturas y que fue un Software muy bien
recibido por el mercado. Se crea otra herramienta denominada CUPL ( Common Universal tool for
Programable Logic ) desarrollado por Bob Osann de Assited Technology.

1983 En Marzo se crea una segunda versin de CUPL soportando a todos los PALs soportados por
PALASM y un nmero limitado de FPLAS combinacionales de Signetics con caractersticas similares al
BEE. Poco despus surge la segunda versin de ABEL que soportaba virtualmente a todos los PLDs
de esa poca y esto toma por sorpresa a los diseadores de otras herramientas de Software. En
seguida National Semiconductor lanza el Software llamado PLAN (Programable Logic Analysis by
National ). Cypress Semiconductor crea un PAL que se hace popular por su alta velocidad. Lattice
Semiconductor compaa especializada en tecnologa borrable CMOS crea un PAL borrable
elctricamente al que llamaron Generic Array Logic o GAL, pero esta compaa tuvo problemas
legales con MMI hoy parte de AMD quin obtuvo el derecho de producir el GAL pero bajo otro
nombre, en seguida Lattice crea el GAL 39V18 conocido hoy como Lattice 6001.

1983 International CMOS Technology ( I.C.T. ) desarrolla un dispositivo llamado PEEL


(Programable Electrically Erasable Logic ) con tecnologa de Lattice y fue llevado a primera
produccin en 1986.

1984 Se anuncia un nuevo concepto en cuanto a la tecnologa de los PLDs y es encabezado por
Xilinix Corporation, el dispositivo desarrollado es el LCA ( Logic Cell Array ) compuesto de pequeas
celdas lgicas, similares a la arquitectura de una PROM, donde cada celda es capaz de crear cuatro o
cinco funciones de entrada y dos de salida. Poco despus Exel Microelectronics crece el XL78C800
Erasic, este dispositivo creado bajo arreglo de multiniveles de lgica y tardo an ms el diseo del
Software y programacin en estar disponible.

1988 Actel Corporation introduce un FPGA diferente al de los dispositivos de Xilinix. El Act 1 de
densidad comparable al arreglo de compuertas de mscara programable al igual que el LCA requiere
de el trazado de rutas de funciones lgicas para ser usado efectivamente.

1989 Plessey Semiconductor introduce un FPGA con caractersticas similares, pero con una mejor
arquitectura.

1995 Lattice Semiconductor Corporation, anuncia el 7 de Agosto, la introduccin de World fastest


3.3 Volt 22V10, cuya mxima velocidad de operacin es de 7.5 ns ( 133.33 Mhz ). Que permite la
utilizacin del dispositivo con bateras. Lattice Semiconductor Corporation, anuncia una actualizacin
para los Programadores Universales en septiembre de ese ao. La actualizacin responde a que sus
nuevos productos, el GAL16LV8D-3LJ y el GAL16V8D-5LJ son lanzados al mercado. Las nuevas
cualidades de estos dispositivos son : velocidades desde 3.5 ns ( 286 Mhz ); adems de operar a un
voltaje de alimentacin de 3.3 Volts.