Está en la página 1de 8

CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

II DISPOSITIVOS LÓGICOS
PROGRAMABLES

IEC FRANCISCO JAVIER TORRES VALLE 9


CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

2.1 CONCEPTOS muestran los circuitos básicos para la mayoría de


FUNDAMENTALES los PLDs.

La fabricación de dispositivos de lógica


programable se basa en los siguientes dos
conceptos.
• FUNCIONALIDAD COMPLETA
La cual se fundamenta en el hecho de que
cualquier función lógica se puede realizar
mediante una suma de productos.
• CELDAS DE FUNCIONES UNIVERSALES.
También denominadas generadores de
funciones, son bloques lógicos configurados para
procesar cualquier función lógica, similares en su
funcionamiento a una memoria. En estas celdas se Figura 2.1 Estructuras comúnmente utilizadas en
almacenan los datos de salida del circuito PLDs
combinacional en vez de implementar físicamente
la ecuación booleana.
2.2.1 MATRIZ GENÉRICA PROGRAMABLE
2.2 DISPOSITIVOS LÓGICOS Una Matriz Genérica Programable, GAL
PROGRAMABLES (Generic Array Logic), es una denominación que
utilizaba originalmente Lattice Semiconductor y
Un dispositivo lógico programable, o PLD que más tarde se licenció a otros fabricantes. Un
(Programmable Logic Device), es un dispositivo GAL en su forma básica es un PLD con una matriz
cuyas características pueden ser modificadas y AND reprogramable, una matriz OR fija y una
almacenadas mediante programación. El lógica de salida programable mediante una
dispositivo programable más simple es el PAL macrocelda. Esta estructura permite implementar
(Programmable Array Logic). El circuito interno cualquier función lógica en forma de suma de
de un PAL consiste en una matriz de conexiones, productos con un numero de términos definido. En
un matriz de compuertas AND y un arreglo de los PLDs no reprogramables la síntesis de las
compuertas OR. Una matriz de conexiones es una ecuaciones lógicas se realiza mediante la quema de
red de conductores distribuidos en filas y columnas fusibles en cada punto de intersección de los pines
con un fusible en cada punto de intersección, de entrada con las compuertas. En un GAL el
mediante la cual se seleccionan cuales entradas del fusible se reemplaza por una celda CMOS
dispositivo serán conectadas al arreglo AND cuyas eléctricamente borrable (EECMOS) y mediante
salidas son conectadas al arreglo OR y de esta programación se activa o desactiva cada celda
manera obtener una función lógica en forma de EECMOS. Una celda activada conecta su
suma de productos. correspondiente intersección de fila y columna, y
La mayoría de los PLDs están formados por una una celda desactivada desconecta dicha
matriz de conexiones, una matriz de compuertas intersección. Con esta estructura se puede aplicar
AND, y una matriz de compuertas OR y algunos, cualquier combinación de variables de entrada, o
además, con registros. Las matrices pueden ser sus complementos, a una compuerta AND para
fijas o programables. Con estos recursos se generar cualquier operación producto que se desee.
implementan las funciones lógicas deseadas A continuación se muestran las estructuras típicas
mediante un software especial y un programador de un dispositivo GAL y la macrocelda de salida
de dispositivos. El tipo más sencillo de matriz del GAL22V10.
programable, que data de los años 60, era una
matriz de diodos con un fusible en cada punto de
intersección de la misma. En la figura 2.1 se

IEC FRANCISCO JAVIER TORRES VALLE 10


CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

multiplexores. La primera se basa en una matriz


de filas y columnas con una celda EECMOS en
cada intersección. Al igual que en el GAL esta
celda puede ser activada para conectar/desconectar
la correspondiente fila y columna. Esta
configuración permite una total interconexión
Figura 2.2 Estructura típica de un GAL entre las entradas y salidas de los bloques lógicos.
Sin embargo, estas ventajas provocan que
disminuya el desempeño 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
numero fijo de multiplexores por cada bloque
lógico. Las entradas de selección de estos
multiplexores son programadas para permitir que
sea seleccionada únicamente una vía de la matriz
de interconexiones por cada multiplexor, la cual se
propaga hacia el bloque lógico. Cabe mencionar
que estos multiplexores no tienen acceso a todas
FIGURA 2.3 Macrocelda de un GAL22V10 las vías de la matriz por lo que la rutabilidad se
incrementa usando multiplexores de mayor
tamaño, permitiendo así que cualquier
2.3 CPLD combinación de señales de la matriz de
Un CPLD (Complex Programmable Logic interconexión pueda ser enlazada hacia cualquier
Device) extiende el concepto de un PLD a un bloque lógico. Sin embargo, el uso de grandes
mayor nivel de integración ya que permite multiplexores incrementa el tamaño de dispositivo
implementar sistemas más eficientes porque y reduce su desempeño.
utilizan menos espacio, mejoran la confiabilidad
en el circuito, 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 y conduce a un mejor
desempeño. A continuación se explican
brevemente las principales características de la
arquitectura de un CPLD.

2.3.1 MATRIZ DE INTERCONEXIONES


PROGRAMABLES
La matriz de interconexiones programables,
PIM Programmable Interconect Matrix (véase la Figura 2.4 Arquitectura Básica de un CPLD
figura 2.4), permite 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, 2.3.2 BLOQUES LÓGICOS
o inclusive a las entradas del mismo bloque. La Un bloque lógico es muy similar a un PLD, cada
mayoría de los CPLDs usan una de dos uno de ellos poseen generalmente una matriz de
configuraciones para esta matriz: interconexión compuertas AND, una matriz de compuertas OR y
mediante arreglo o interconexión mediante una configuración para la distribución de los

IEC FRANCISCO JAVIER TORRES VALLE 11


CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

productos en las diferentes macroceldas del boque. familia MAX se colocan 4 productos por
El tamaño del bloque lógico es una medida de la macrocelda los cuales pueden ser compartidos con
capacidad del CPLD, ya que de esto depende el otras macroceldas. Cuando un producto puede ser
tamaño de la función booleana que pueda ser únicamente utilizado por una macrocelda se le
implementada dentro del bloque. Los bloques conoce como termino - producto dirigido, y
lógicos usualmente tienen de cuatro a veinte cuando estos pueden ser utilizados por otras
macroceldas. La cantidad de bloques lógicos que macroceldas se le llama termino - producto
puede poseer un CPLD depende de la familia y compartido. Mediante estos productos
fabricante del dispositivo. compartidos se mejora la utilización 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
diseñador. Además, que estos esquemas
proporcionan también flexibilidad para los
algoritmos del programa de síntesis que es el que
finalmente selecciona la mejor forma en que deben
ser distribuidas las ecuaciones lógicas en el
componente.

Figura 2.5 Estructura de un Bloque Lógico en


dispositivos de las familias MAX340 y MAX5000

2.3.3 DISTRIBUCIÓN DE PRODUCTOS


Existen pequeñas diferencias en cuanto a la
distribución de los productos en un CPLD, esto
Figura 2.6 Distribución de Productos en
dependerá de la familia del dispositivo y del
dispositivos de las familias MAX340 y MAX5000
fabricante. Obviamente el tamaño de las sumas
sigue siendo el factor más importante para la
implementación de funciones lógicas. Pero cada 2.3.4 MACROCELDAS
fabricante distribuye los productos de diferente
forma. Las macroceldas de un CPLD son similares a las
de un PLD. Estas también están provistas con
La familia MAX de CPLDs que fue registros, control de polaridad, y buffers para
desarrollada por Cypress Semiconductor utilizar salidas con alta impedancia. Por lo general
conjuntamente con Altera Corporation, siendo un CPLD tiene macroceldas de entrada/salida,
los primeros en sacar al mercado unan familia de macroceldas de entrada y macroceldas internas
CPLDs, Altera la llamó MAX5000 y Cypress por u ocultas (buried macrocells), en tanto que un
su parte la clasificó como MAX340, la 22V10 tiene solamente macroceldas de
distribución de productos no es igual a la de un entrada/salida. Una macrocelda interna es similar a
PLD. En un dispositivo como el 22V10 tenemos una macrocelda de entrada/salida, sólo que esta no
que la suma de productos es fija por cada puede ser conectada directamente a una terminal
macrocelda -8, 10, 12, 14 o 16 productos-, en la del dispositivo. La salida de una macrocelda
IEC FRANCISCO JAVIER TORRES VALLE 12
CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

interna va conectada directamente a la matriz de En la figura 2.7 se muestran la arquitectura


interconexiones programable. Por lo que es posible interna de un CPLD de la familia FLASH 370 de
manejar ecuaciones y almacenar el valor de salida Cypress Semiconductors. En esta podemos
de estas internamente utilizando los registros de apreciar las macroceldas de entrada/salida,
estas macroceldas. macroceldas ocultas y celdas de entrada/salida con
las que cuenta el dispositivo.

Figura 2.7 Macroceldas de entrada/salida, macroceldas ocultas y celdas de entrada/saliad en dispositivos


de la familia FLASH 370

Las macroceldas de entrada, como la que se


muestra en la figura 2.8, son utilizadas para 2.3.5 CELDA DE ENTRADA/SALIDA
proporcionar entradas adicionales para las
funciones lógicas. En el diagrama se muestra la En la figura 2.7 se puede apreciar una celda de
macrocelda de entrada de la familia FLASH 370. entrada/salida, que bien podría considerarse parte
En general las macroceldas de entrada incrementan del bloque lógico, pero no necesariamente tienen
la eficiencia del dispositivo al ofrecer algunos que estar a la salida de un bloque lógico. La
registros adicionales con los que se pueden función de una celda de entrada/salida es permitir
almacenar el valor de la terminal de entrada. 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 son pueden ser consideradas o no parte del
bloque lógico.

2.4 FPGA
La arquitectura de un FPGA (Field
Figura 2.8 Macrocelda de entrada en dispositivos Programmable Gate Array) consiste en arreglos de
de la familia FLASH 370 varias celdas lógicas las cuales se comunican unas
con otras mediante canales de conexión verticales

IEC FRANCISCO JAVIER TORRES VALLE 13


CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

y horizontales tal y como se muestra en la figura éste es programado ya no se puede recuperar. La


2.9. diferencia radica en que en un fusible normal se
desactiva deshabilitando la conexión, en tanto que
en estos anti - fusibles cuando son programados se
produce una conexión por lo que normalmente se
encuentran abiertos. La desventaja obvia es que no
son reutilizables, pero por el contrario disminuyen
considerablemente el tamaño y costo de los
dispositivos.
• SRAM
Las celdas SRAM son implementadas como
generadores de funciones para remplazar la lógica
combinacional mediante compuertas y, además,
Figura 2.9 Arquitectura básica de un FPGA son usadas para controlar multiplexores e
interconectar las celdas lógicas entre ellas. En estas
2.4.1 CELDAS LÓGICAS el contenido se almacena mediante un proceso de
Cada celda lógica es funcionalmente similar a configuración en el momento de encendido del
los bloques lógicos de un CPLD. La diferencia circuito que contiene al FPGA. Ya que al ser
está en que un FPGA normalmente utiliza SRAM, el contenido de estos bloques de memoria
generadores de funciones en vez de compuertas. se pierde cuando se deja de suministrar la energía.
Cada uno de estos generadores es como una La información binaria de las celdas SRAM
memoria en donde en vez de implementar la generalmente se almacena en memorias seriales
función lógica mediante compuertas, se precalcula EEPROM conocidas como memorias de
el resultado y se almacena en el generador. Las configuración. En el momento de encendido del
entradas al generador funcionan como un bus de circuito toda la información binaria es transferida a
direcciones, y mediante las diferentes las celdas del FPGA mediante el proceso de
combinaciones de las entradas al generador se configuración el cual es generalmente automático
selecciona el resultado correcto. Esto le da una y el propio FPGA contiene un circuito interno que
gran densidad al dispositivo ya que se maneja un se encarga de hacer todo el proceso.
gran número de generadores, pero el tiempo de Un FPGA que tiene una gran cantidad de
propagación al implementar una función lógica en canales de interconexión tiende a tener pequeñas
estos generadores es menor al que se necesitaría si celdas lógicas con muchas entradas y salidas en
utilizáramos compuertas. La estructura de las comparación con el número de compuertas que
celdas lógicas y las formas en que estas pueden ser tiene la celda, este tipo de FPGAs generalmente
interconectadas, tanto salidas como entradas de la utilizan tecnología ANTIFUSE. Un FPGA que
celda, varían de acuerdo al fabricante. En general tiene una estructura pequeña en canales de
una celda lógica tiene menos funcionalidad que la interconexión tiende a tener grandes celdas lógicas
combinación de sumas de productos y macroceldas con pocas entradas y salidas en comparación con el
de un CPLD, pero como cada FPGA tienen una número de compuertas que hay en la celda. Este
gran cantidad de celdas lógicas es posible tipo de FPGA generalmente está fabricado con
implementar grandes funciones utilizando varias tecnología SRAM. Una arquitectura con celdas
celdas lógicas en cascada. Además de las celdas lógicas pequeñas permite utilizar todos los
lógicas también es importante la tecnología recursos del dispositivo. Sin embargo, si las celdas
utilizada para crear las conexiones entre los lógicas son muy pequeñas entonces tendremos que
canales, las más importantes son las siguientes. utilizar un gran número de estas para poder
• ANTIFUSE implementar funciones lógicas de varios términos,
lo cual agrega un tiempo de retardo por cada celda
Al igual que la tecnología PROM, un FPGA que lógica implementada. Cuando el tamaño de la
utiliza este tipo de tecnología sólo se puede celda lógica es grande sucede lo contrario, en este
programar una sola vez y utilizan algo similar a un tipo de celdas lógicas es posible utilizar un gran
fusible para realizar las conexiones. Una vez que número de compuertas por lo que podemos

IEC FRANCISCO JAVIER TORRES VALLE 14


CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

implementar funciones lógicas de varios términos las compuertas de la celda, por lo que este tipo de
con pocas celdas lógicas. El que el tamaño de la celdas no son precisamente las más indicadas para
celda sea grande no afecta la frecuencia máxima de desempeñar pequeñas funciones. La tecnología
trabajo porque estamos hablando de que existe un SRAM es utilizada por Altera, Lucent
gran numero de compuertas que pueden ser usadas Technologies, Atmel, Xilinx y otros. La tecnología
en la función paralelamente, siendo el mismo ANTIFUSE es utilizada por Cypress, Actel,
tiempo de retardo para todas. Sin embargo, cuando QuickLogic, y Xilinx. A continuación se muestran
las funciones son pequeñas en comparación con el algunas celdas lógicas de distintos fabricantes.
tamaño de la celda no es necesario utilizar todas

Figura 2.10 Bloque Lógico Configurable de la familia XC4000 de Xilinx, Inc.

IEC FRANCISCO JAVIER TORRES VALLE 15


CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES

Figura 2.11 Elemento Lógico de la familia APEX20K de Altera Corporation

Figura 2.12Modulo Lógico de la familia ACT3 de Actel Corporation

IEC FRANCISCO JAVIER TORRES VALLE 16

También podría gustarte