¿Qué es la lógica
programable?
La lógica programable, como el nombre
implica, es una familia de componentes que contienen conjuntos de
elementos lógicos (AND, OR, NOT, LATCH, FLIP-FLOP) que pueden
configurarse en cualquier función lógica que el usuario desee y
que el componente soporte. Hay varias clases de dispositivos lógicos
programables: ASICs, FPGAs, PLAs, PROMs, PALs, GALs, y PLDs
complejos.
ASIC
ASIC significa Circuitos Integrados de
Aplicación Específica y son dispositivos definibles por el
usuario. Los ASICs, al contrario que otros dispositivos, pueden
contener funciones analógicas, digitales, y combinaciones de
ambas. En general, son programables mediante máscara y no
programables por el usuario. Esto significa que los fabricantes
configurarán el dispositivo según las especificaciones del
usuario. Se usan para combinar una gran cantidad de funciones lógicas
en un dispositivo. Sin embargo, estos dispositivos tienen un costo
inicial alto, por lo tanto se usan principalmente cuando es
necesario una gran cantidad.
Estructura básica
de un PLD
Un dispositivo programable por el usuario
es aquel que contiene una arquitectura general pre-definida en la
que el usuario puede programar el diseño final del dispositivo
empleando un conjunto de herramientas de desarrollo. Las
arquitecturas generales pueden variar pero normalmente consisten
en una o más matrices de puertas AND y OR para implementar
funciones lógicas. Muchos dispositivos también contienen
combinaciones de flip-flops y latches que pueden usarse como
elementos de almacenaje para entrada y salida de un dispositivo.
Los dispositivos más complejos contienen macrocélulas. Las
macrocélulas permite al usuario configurar el tipo de entradas y
salidas necesarias en el diseño
PROM

Las PROM son memorias programables de sólo lectura. Aunque el
nombre no implica la lógica programable, las PROM, son de hecho lógicas.
La arquitectura de la mayoría de las PROM consiste generalmente
en un número fijo de términos AND que alimenta una matriz
programable OR. Se usan principalmente para decodificar las
combinaciones de entrada en funciones de salida.
PAL

Las PAL son dispositivos de matriz programable. La arquitectura
interna consiste en términos AND programables que alimentan términos
OR fijos. Todas las entradas a la matriz pueden ser combinadas
mediante AND entre si, pero los términos AND específicos se
dedican a términos OR específicos. Las PAL tienen una
arquitectura muy popular y son probablemente el tipo de
dispositivo programable por usuario más empleado. Si un
dispositivo contiene macrocélulas, comúnmente tendrá una
arquitectura PAL. Las macrocélulas típicas pueden programarse
como entradas, salidas, o entrada/salida (e/s) usando una
habilitación tri-estado. Normalmente tienen registros de salida
que pueden usarse o no conjuntamente con el pin de e/s asociado.
Otras macrocélulas tiene más de un registro, varios tipos de
retroalimentación en las matrices, y ocasionalmente realimentación
entre macrocélulas.
GAL
Las GAL son dispositivos de matriz lógica
genérica. Están diseñados para emular muchas PAL pensadas para
el uso de macrocélulas. Si un usuario tiene un diseño que se
implementa usando varias PAL comunes, puede configurar varias de
las mismas GAL para emular cada de uno de los otros dispositivos.
Esto reducirá el número de dispositivos diferentes en existencia
y aumenta la cantidad comprada. Comúnmente, una cantidad grande
del mismo dispositivo debería rebajar el costo individual del
dispositivo. Estos dispositivos también son eléctricamente
borrables, lo que los hace muy útiles para los ingenieros de diseño.
PLA

Las PLA son matrices lógicas programables. Estos dispositivos
contienen ambos términos AND y OR programables lo que permite a
cualquier término AND alimentar cualquier término OR. Las PLA
probablemente tienen la mayor flexibilidad frente a otros
dispositivos con respecto a la lógica funcional. Normalmente
poseen realimentación desde la matriz OR hacia la matriz AND que
puede usarse para implementar máquinas de estado asíncronas. La
mayoría de las máquinas de estado, sin embargo, se implementan
como máquinas sincrónas. Con esta perspectiva, los fabricantes
crearon un tipo de PLA denominado Secuencial (Sequencer) que posee
registros de realimentación desde la salida de la matriz OR hacia
la matriz AND.
PLDs complejos
Los PLDs complejos son lo que el nombre
implica, Dispositivos Complejos de Lógica Programable. Se
consideran PAL muy grandes que tienen algunas características de
las PLA. La arquitectura básica es muy parecida a la PAL con la
capacidad para aumentar la cantidad de términos AND para
cualquier término OR fijo. Esto se puede realizar quitando términos
AND adyacentes o empleando términos AND desde una matriz
expandida. Esto permite que cualquier diseño pueda ser
implementado dentro de estos dispositivos.
FPGA

Las FPGA son Campos de Matrices de Puertas Programables.
Simplemente son matrices de puertas eléctricamente programables
que contienen múltiples niveles de lógica. Las FPGA se
caracterizan por altas densidades de puerta, alto rendimiento, un
número grande de entradas y salidas definibles por el usuario, un
esquema de interconexión flexible, y un entorno de diseño
similar al de matriz de puertas. No están limitadas a la típica
matriz AND-OR. Por contra, contienen una matriz interna
configurable de relojes lógicos (CLBs) y un anillo de
circunvalación de bloques de e/s (IOBs).
Cada CLB contiene lógica programable
combinacional y registros de almacenamiento. La sección de lógica
combinacional es capaz de implementar cualquier función booleana
de sus variables de entrada.
Cada IOB puede programarse
independientemente para ser una entrada, y salida con control tri-estado
o un pin bidireccional. También contiene flip-flops que pueden
usarse como buffers de entrada y salida. Los recursos de
interconexión son una red de líneas que corren horizontalmente y
verticalmente las filas y columnas entre el CLBS.
Los interruptores programables conectan
las entradas y salidas de IOBS y CLBS a líneas cercanas. Las líneas
largas recorren la anchura o longitud entera del dispositivo,
estableciendo intercambios para proporcionar una distribución de
señales críticas con la mínima demora o distorsión.
Los diseñadores que usan FPGAs pueden
definir funciones lógicas en un circuito y revisar estas
funciones como sea necesario. Así, las FPGAs pueden diseñarse y
verificarse en unos días, a diferencia de las varias semanas
necesarias para las matrices de puerta programables.
Original de