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
|