Dispositivos digitales programables

 PAL 

La matriz lógica programable (PAL por sus siglas en inglés) fue introducida en 1978 por la empresa Monolithic Memories

Esta matriz remplaza los fusibles en el plano OR por ser difíciles de fabricar correctamente y reducir la velocidad de respuesta. De igual manera compensa la reducción en flexibilidad con su fabricación en distintos tamaños

Otro punto importante es que puede ofrecer características adicionales mediante las macro celdas 

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 un 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. 

GAL

Los arreglos lógicos genéricos (GALs por sus siglas en inglés) tienen las mismas propiedades que los PALs pero pueden ser borrados y reprogramados. En estos también se utilizan fusibles reprogramables implementados con tecnología EECMOS (electrically erasable complementarymetal-oxide semiconductor)

La compañía Lattice Semiconductor creó dispositivos similares que tienen la capacidad de ser programados dentro del circuito (in-circuit programming) y lo llamó Generic Array Logic (GAL). Las GALs son perferctas para implementar pequeñas cantidades de lógica de interfaz. La mayoría de los PLDs, como PALCE22V10, PALCE20V8 entre otros, tienen sus equivalentes en GAL, llamados GAL22V10, GAL20V8, etc. 

CPLD

Los dispositivos lógicos programables complejos (CPLDs por sus siglas en inglés) contienen varios bloques lógicos que se pueden conectar mediante fusibles programables. También incluyen macro celdas a las salidas del plano OR con buffers tri-estado que permiten que cada patilla se configure como entrada o salida y son programados con métodos ISP (del inglés In-system programming)

Los CPLD desperdician macro celdas cuando la patilla es usada como entrada.Los avances en tecnología han hecho posible la creación de circuitos integrados programables equivalentes a varios PLDs en el mismo chip. A estos circuitos integrados se les llaman dispositivos lógicos programables complejos (CPLDs por sus siglas en inglés).

Un CPLD es un circuito integrado que consiste en un número de bloques lógicos parecidos a un PAL, incluyendo además una matriz programable de interconexiones entre estos bloques.

Algunos CPLDs se basan en la arquitectura del PAL, en cuyo caso cada macro celda contiene un flip flop y una compuerta OR, cuyas entradas están asociadas a un arreglo de compuertas AND fijo, mientras que los CPLDs que se basan en PLAs cada salida de compuertas AND en un bloque se puede conectar a la entrada de cualquier compuerta OR en ese bloque. 

FPGA

Los arreglos de compuertas programables in-situ (FPGAs por sus siglas en inglés) tienen una densidad mayor que los CPLDs (>> 10, 000 compuertas). Estos no contienen compuertas, sino bloques lógicos que son interconectados mediante fusibles reconfigurables y manejan, en su mayoría, LUTs (del inglés Look-Up Tables) como bloque lógico, los cuales vienen en varios tamaños y son capaces de implementar funciones lógicas.

Los FPGAs son circuitos integrados que contienen un arreglo de bloques lógicos idénticos con interconexiones programables, en los que el usuario puede programar tanto las funciones realizadas por cada bloque lógico como las conexiones entre bloques.

Los FPGAs tienen varias ventajas con respecto a MPGAs. Un arreglo de compuertas tradicional puede ser usado para implementar cualquier circuito, pero sólo se puede programar en fábrica ya que se requiere hacer una máscara específica para un circuito en particular y el tiempo de diseño para un circuito integrado basado en arreglo de compuertas es de algunos meses. Por otro lado, los FPGAs son productos comerciales, el tiempo de manufactura se puede reducir de meses a algunas horas cambiando de MPGAs a FPGAs. De la misma forma, se vuelve más fácil y más barato corregir errores en los diseños. A volúmenes no tan altos, los FPGAs son más baratos que los MPGAs.

El interior de los FPGAs contiene típicamente tres elementos programables: los bloques lógicos, los bloques de entrada/ salida y las interconexiones. Se considera que los bloques de entrada/ salida se encuentran en la periferia del circuito integrado, éstos conectan las señales lógicas a los pines del chip. Los bloques lógicos se encuentran distribuidos dentro del FPGA y el espacio entre ellos se usa para mandar conexiones entre bloques.

La programabilidad de campo se logra por los elementos que pueden ser reconfigurables por el usuario. Los bloques lógicos se crean usando multiplexores, look-up tables y arreglos de compuertas AND-OR o NAND-NAND, y cualquiera de estas cosas puede ser programada (o configurada) por el usuario. 

REFERENCIAS

Rodríguez M. E. (s.f)"Tema 5 - Fundamentos de dispositivos lógicos" [Online] Available on:  programables" http://kali.azc.uam.mx/erm/Media/Tema_5.pdf

Microsoft Word - A8 (s.f) "Dispositivos Lógicos Programables" [Online] Available on: http://www.ptolomeo.unam.mx:8080/jspui/bitstream/132.248.52.100/658/8/A8.pdf

Ávila Alterach G. (2004) "Introducción a PLD (dispositivos lógicos programables)" [Online] Available on: https://gzalo.com/articles/pld/


Comentarios

Entradas populares de este blog

Software para programar amiba2 (INTegra)

Amiba 2

¿QUÉ ES UN USART?