Dispositivos digitales programables

 El PAL (Programmable Array Logic) es un caso especial del PLA en el que el arreglo de ANDs es programable y el de ORs es fijo. Sus estructuras son iguales, pero el hecho de que únicamente el arreglo de ANDs sea programable hace más barato y fácil de programar el PAL en comparación con el PLA. Cuando se diseña con PALs se deben simplificar las ecuaciones lógicas para que quepan en uno (o más) de los PALs existentes. Los términos AND no se pueden compartir entre dos o más compuertas OR, por lo tanto cada función puede ser simplificada por si misma sin importar los otros términos. En cualquier PAL el número de términos AND que alimentan cada compuerta OR es fijo y limitado. Los PALs también pueden contener flip flops D con sus entradas provenientes del arreglo combinacional. Estos se llaman PALs secuenciales. Los PALs fueron desapareciendo con el desarrollo de otros dispositivos, como GALs, CPLDs y FPGAs.

Conforme avanzaba la tecnología de circuitos integrados, una gran variedad de dispositivos lógicos programables aparecieron. Los PALs tradicionales no son reprogramables, sin embargo existen ahora PALs borrables y reprogramables con tecnología flash. A veces, a éstos se les llama PLDs.

El 22CEV10 es un PLD con tecnología CMOS borrable eléctricamente que puede ser usado para hacer tanto circuitos combinacionales como secuenciales. Además de los arreglos AND y OR, la mayoría te los PLDs tienen algún tipo de macrobloque que contiene multiplexores y otros bloques programables adicionales. Estos PLDs se llaman de acuerdo a sus capacidades de entrada/ salida. Por ejemplo, el 22CEV10 tiene 12 pines de entrada más 10 pines que se pueden programar como entrada o salida (22 en total). Contiene también 10 flop flops D y 10 compuertas OR. Cada compuerta OR dirige una macrocelda lógica de salida. Cada macrocelda contiene uno de los 10 flip flops D, los cuales comparten un reloj común, un reset asícrono de entrada, y un preset síncrono de entrada.

PAL

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:

  • Solo plano AND o plano OR
  • Plano AND con reglamentación
  • Plano AND y OR con reglamentación
  • Con registros o registros programables
  • Factores fundamentales de revisión
  • Aplicación de álgebra de Boole.

GAL

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 o ló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


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

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érminos AND, 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 (literalmente 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.


Comentarios

Entradas populares de este blog

Software Xilinx ISE

Calculara la capacidad de carga dinámica

Compuertas Lógicas y Algebra de Boole clase 13 de septiembre