Indice

  • ¿Qué es la lógica programable?
  • ASIC
  • Estructura básica de un PLD
  • PROM
  • PAL
  • GAL
  • PLA
  • PLDs complejos
  • FPGA

¿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 permiten 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.

Este documento es un extracto y una traducción del original en inglés de Texas Instruments / Autor: Miguel Angel Montejo Ráez