Lógica Programada
Lógica Programada
Lógica Programada
Índice
[ocultar]
PAL[editar]
MMI introdujo un dispositivo revolucionario en 1978, la Programmable Array Logic (Matriz
lógica programable). La arquitectura era más sencilla que la FPLA de Signetics porque omitía
la matriz OR programable. Esto hizo los dispositivos más rápidos, más pequeños y más
baratos. Estaban disponibles en encapsulados de 20 pines y DIP de 300 milésimas de
pulgada, mientras que las FPLAs venían en encapsulados de 28 pines y DIP de 600 milésimas
de pulgada. Ciertas publicaciones sobre PALs desmitificaban el proceso de diseño. El
software de diseño PALASM (PAL Assembler,ensamblador PAL) convertía las ecuaciones
Booleanas de los ingenieros en el patrón de fusibles requerido para programar el dispositivo.
Los PAL de MMI pronto fueron distribuidos por National Semiconductor, Texas Instruments y
AMD.
Tras el éxito de MMI con los PAL de 20 pines, AMD introdujo los 22V10 de 24 pines con
características adicionales. Tras comprar a MMI (1987), AMD desarrolló una operación
consolidada como Vantis, adquirida por Lattice Semiconductor en 1999.
También hay PLAs : Programmable Logic Array.
PLA[editar]
Definido en inglés como: "Programmable Logic Array" forma parte de los PLD simples
(SPLDs). Estos dispositivos fueron los primeros chips desarrollados específicamente para
implementar circuitos lógicos. Como los PAL,anteriormente vistos, disponen de dos planos
diferenciados: AND y OR. En este caso, los PLA tienen ambos planos programables lo que
hace que su estructura sea ideal para implementar funciones lógicas como sumas de
productos, por el contrario hace que el dispositivo tenga mayor tamaño y menor velocidad. Por
último existen variantes de este tipo de estructura:
GALs[editar]
Artículo principal: Generic array logic
Una innovación del PAL fue la matriz lógica genérica (Generic array logic) o GAL. Ambas
fueron desarrolladas por Lattice Semiconductor en 1985. Este dispositivo tiene las mismas
propiedades lógicas que el PAL, pero puede ser borrado y reprogramado. La GAL es muy útil
en la fase de prototipado de un diseño, cuando un fallo en la lógica puede ser corregido por
reprogramación. Las GALs se programan y reprograman utilizando un programador OPAL, o
utilizando la técnica de programación circuital en chips secundarios.
Un dispositivo similar llamado PEEL (programmable electrically erasable logic ológica
programable eléctricamente borrable) fue introducido por la International CMOS
Funcionamiento del GAL[editar]
Una GAL permite implementar cualquier expresión en suma de productos con un número de
variables definidas. El proceso de programación consiste en activar o desactivar cada celda
E2CMOS con el objetivo de aplicar la combinación adecuada de variables a cada compuerta
AND y obtener la suma de productos.
Las celdas E2CMOS activadas conectan las variables deseadas o sus complementos con las
apropiadas entradas de las puertas AND. Las celdas E2CMOS están desactivadas cuando
una variable o su complemento no se utiliza en un determinado producto. La salida final de la
puerta OR es una suma de productos. Cada fila está conectada a la entrada de una puerta
AND, y cada columna a una variable de entrada o a su complemento. Mediante la
programación se activa o desactiva cada celda E2CMOS, y se puede aplicar cualquier
combinación de variables de entrada, o sus complementos, a una puerta AND para generar
cualquier operación producto que se desee. Una celda activada conecta de forma efectiva su
correspondiente fila y columna, y una celda desactivada desconecta la fila y la columna.
celdas se pueden borrar y reprogramar eléctricamente. Una celda E2CMOS típica puede
mantener el estado en que se ha programado durante 20 años o más. Las macroceldas
lógicas de salida (OLMCs) están formadas por circuitos lógicos que se pueden programar
como lógica combinacional o como lógica secuencial. Las OLMCs proporcionan mucha más
flexibilidad que la lógica de salida fija de una PAL.
CPLDs[editar]
Artículo principal: CPLD
Las PALs y GALs están disponibles sólo en tamaños pequeños, equivalentes a unos pocos
cientos de puertas lógicas. Para circuitos lógicos mayores, se pueden utilizar PLDs complejos
o CPLDs. Estos contienen el equivalente a varias PAL enlazadas por interconexiones
programables, todo ello en el mismo circuito integrado. Las CPLDs pueden reemplazar miles,
o incluso cientos de miles de puertas lógicas.
Algunas CPLDs se programan utilizando un programador PAL, pero este método no es
manejable para dispositivos con cientos de pines. Un segundo método de programación es
soldar el dispositivo en su circuito impreso. Las CPLDs contienen un circuito que descodifica la
entrada de datos y configura la CPLD para realizar su función lógica específica.
Cada fabricante tiene un nombre propietario para este sistema de programación. Por
ejemplo, Lattice Semiconductor la llama In-system programming (Programación en el sistema).
Sin embargo, estos sistemas propietarios están dejando paso al estándar del Joint Test Action
Group (JTAG).
FPGAs[editar]
Artículos principales: FPGA y Field programmable gate array.
Mientras el desarrollo de las PALs se enfocaba hacia las GALs y CPLDs (ver secciones
superiores), apareció una corriente de desarrollo distinta. Esta corriente de desarrollo
desembocó en un dispositivo basado en la tecnología de matriz de puertas y se le
denominó field-programmable gate array (FPGA). Algunos ejemplos de las primeras FPGAs
son la matriz 82s100 y el secuenciador 82S105 de Signetics, presentados a finales de los 70.
El 82S100 era una matriz de términosAND, y también tenía funciones de biestable.
Las FPGAs utilizan una rejilla de puertas lógicas, similar a la de una matriz de puertas
ordinarias, pero la programación en este caso la realiza el cliente, no el fabricante. El
término field-programmable (literamente programable en el campo) se refiere a que la matriz
se define fuera de la fábrica, o "en el campo".
Las FPGAs se programan normalmente tras ser soldadas en la placa, en una forma similar a
los CPLDs grandes. En las FPGAs más grandes, la configuración es volátil y debe ser
reescrita cada vez que se enciende o se necesita una funcionalidad diferente. La configuración
se guarda normalmente en una PROM o EEPROM. Las versiones EEPROM pueden ser
programadas mediante técnicas como el uso de cables JTAG.
Las FPGAs y los CPLDs son buenas opciones para una misma tarea. Algunas veces la
decisión sobre una u otra es más económica que técnica, o puede depender de la preferencia
personal o experiencia del ingeniero.
Otras variantes[editar]
Actualmente, existe bastante interés en sistemas reconfigurables. Estos sistemas se basan en
circuitos microprocesadores y contiene algunas funciones prefijadas y otras que pueden ser
alteradas por código en el procesador. Para diseñar sistemas que se auto-alteren, es
necesario que los ingenieros aprendan nuevos métodos y que nuevas herramientas de
software se desarrollen.
Las PLDs que se venden actualmente, contienen un microprocesador con una función
prefijada (el núcleo) rodeado con dispositivos de lógica programable. Estos dispositivos
permiten a los diseñadores concentrarse en añadir nuevas características a los diseños sin
tener que preocuparse de hacer que funcione el microprocesador.
antifusibles de silicio.
SRAMs.
Células EPROM o EEPROM.
Memoria flash.
Los antifusibles de silicio son elementos de almacenamiento utilizados en las PAL, el primer
tipo de PLD. Estos antifusibles se encargan de formar conexiones mediante la aplicación de
voltaje en un área modificada del chip. Se le llama antifusibles porque funcionan de manera
opuesta a los fusiles normales, los cuales permiten la conexión hasta que se rompen por
exceso de corriente eléctrica.
Las SRAM, o RAM estáticas, son un tipo volátil de memoria, lo que quiere decir que su
contenido se pierde cada vez que se desconectan. Las PLDs basadas en SRAM tíenen que
ser programadas cada vez que el circuito se enciende. Generalmente esto lo hace otra parte
del circuito.
Una célula EPROM es un transistor MOS (metal-óxido-semiconductor) que puede activarse
atrapando una carga eléctrica permanentemente en su puerta, cosa que realiza un
programador PAL. La carga permanece durante algunos años sólo puede ser eliminada
exponiendo al chip a una luz ultravioleta fuerte en un dispositivo llamado borrador EPROM.
Las memorias flash son no volátiles, por lo que retienen sus contenidos incluso cuando se les
corta la alimentación. Puede ser borradas y reprogramadas tanto como sea necesario, lo que
las hace útiles para las memorias PLD.
A partir de 2005, la mayoría de las CPLDs son del tipo EEPROM y no volátiles. Esto se debe a
que son demasiado pequeñas para justificar lo poco conveniente que es la programación
interna de celdas SRAM cada vez que se inician, y lo costoso de las células EPROM debido a
su encapsulado cerámico con una ventana de cuarzo.
Lenguajes de programación de PLDs[editar]
Varios dispositivos de programación de PALs admiten la entrada mediante un formato
estándar de archivo, denominados comúnmente como 'archivos JEDEC'. Son análogos a
los compiladores software. Los lenguajes utilizados como código fuente para compiladores
lógicos se denominan lenguajes de descripción de hardware (HDLs).
PALASM y ABEL se utilizan frecuentemente para dispositivos de baja complejidad, mientras
que Verilog y VHDL son lenguajes de descripción de hardware de alto nivel muy populares
para dispositivos más complejos.
El más limitado ABEL se usa normalmente por razones históricas, pero para nuevos diseños
es más popular VHDL, incluso para diseños de baja complejidad.