ARREGLO LOGICO GENERICO (GAL)

  JAVIER MICHEL FLORES COYOTL 

GAL 

GAL (Generic Array Logic), en español Arreglo Lógico Genérico, son un tipo de circuito integrado, de marca registrada por Lattice Semiconductor, que ha sido diseñados con el propósito de sustituir a la mayoría de las PAL, manteniendo la compatibilidad de sus terminales.
Utiliza una matriz de memoria EEPROM en lugar por lo que se puede programar varias veces.
Un GAL en su forma básica es un PLD con una matriz AND reprogramable, una matriz OR fija y una lógica de salida programable mediante una macrocelda. Esta estructura permite implementar cualquier función lógica como suma de productos con un número de términos definido.
En los PLDs no reprogramables la síntesis de las ecuaciones lógicas se realiza mediante quema de fusibles en cada punto de intersección de los pines de entrada con las compuertas. En el caso de un GAL es básicamente la misma idea pero en vez de estar formada por una red de conductores ordenados en filas y columnas en las que en cada punto de intersección hay un fusible, el fusible se reemplaza por una celda CMOS eléctricamente borrable (EECMOS). Mediante la programación se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operación producto que se desee. Una celda activada conecta su correspondiente intersección de fila y columna, y una celda desactivada desconecta la intersección. Las celdas se pueden borrar y reprogramar eléctricamente.

ESTRUCTURA

El GAL básicamente está formado por una matriz AND reprogramable y una matriz OR fija con configuración programable de salidas y/o entradas.



Las estructuras GAL son estructuras PAL construidas con tecnología CMOS, y fueron comercializadas por primera vez en 1984 por Lattice Semiconductor. Como se ha mencionado, son programables y borrables eléctricamente. Son reprogramables y más flexibles, a la salida de la matriz AND/OR hay un circuito más complejo con selectores y flip-flops que permiten implementar ecuaciones más complejas. Hay distintas arquitecturas según la versión del fabricante. La Figura 7 presenta un ejemplo de una GAL.

El circuito a la salida de la matriz se denomina macrocelda. Tienen integración baja/media. El Terminal puede funcionar como entrada o salida según la programación. Los términos productos se dibujan todos sobre una sola línea para simplificar el diagrama.

Un terminal en modo salida puede reflejar la salida Q y Q negada del flip-flop para circuitos secuenciales o la entrada D y negada para circuitos combinacionales.

De modo similar puede realimentar el terminal de salida o la salida Q negada del flip flop hacia otros términos. Las GAL se usan para circuitos lógicos sencillos y de complejidad media.

La macrocelda, en el idioma inglés es por sus siglas OLMC (OutputLogicMacrocells). Y son Macroceldas lógicas que contienen puertas OR y lógica programable, circuitos lógicos que se pueden programar como lógica combinacional o lógica secuencial (flip-flops, contadores y registros).


REFERENCIA ESTÁNDAR
De manera comercial las GALs están identificadas por un estándar que permite conocer sus características rápidamente. Por ejemplo a continuación describimos el dispositivo GAL16V8.

CONSTRUCCION
Basada en la estructura básica mostrada anteriormente, la construcción de los dispositivos GALs se diferencian por sus características de entradas, salidas y configuración interna de las macroceldas empleadas, por ejemplo detallemos el GAL 16V8, donde ciertas localidades en el arreglo de memoria son diseñadas para controlar las conexiones programables a la matriz de los términos de entrada, cada bit en esta matriz representa una conexión programable entre un renglón y una columna. Afortunadamente, no es necesario buscar dentro de las direcciones de cada localidad de bit en la matriz. El software de programación cuida de estos detalles en una manera amigable. El diagrama lógico completo del GAL 16V8 se muestra en la figura 8. Este dispositivo tiene ocho terminales de entrada dedicadas (terminales 2-9), dos con funciones especiales (1 y 11), y ocho (12-19) que pueden ser usadas como entradas o salidas.acterísticas rápidamente. Por ejemplo a continuación describimos el dispositivo GAL16V8.



La mayoría de los componentes de las GALs son; la matriz de los términos de entrada, las compuertas AND (las cuales generan los términos producto de entrada), y las macroceldas lógicas de salida (OLMCs, Output Logic Macro Cells). Hay que notar que las 8 terminales de entrada son conectados directamente a una columna de la matriz de términos de entrada, y así cada complemento de entrada es conectado a está. Estas terminales siempre serán especificadas como entradas cuando se programa el dispositivo. Un nivel lógico y su complemento son siempre retroalimentados de cada macro a una columna de la matriz de entrada. La fuente de estos niveles lógicos es determinada por la configuración de cada macro. Con esto, da un total de 32 variables de entrada (columnas en la matriz de entrada) que pueden ser programadas como conexiones a las 64 compuertas AND de entradas múltiples. En la matriz de entrada, cualquier columna puede ser conectada a un renglón de entrada durante el proceso de programación.
La flexibilidad del GAL 16V8 consiste en su macrocelda lógica de salida programable (ver figura 9). Ocho productos diferentes (salidas de las compuertas AND) son aplicadas como entradas a cada una de las ocho macroceldas. Dentro de cada macro los productos son enviados a una compuerta OR al mismo tiempo para generar la suma de productos (SOP, sum of products). Recordando, cualquier función puede ser expresada como una forma de SOP. Dentro de la macro, la salida del SOP puede ser enrutado a la terminal de salida para implementar un circuito combinacional, o como entrada a un flip-flop tipo D para implementar un circuito con salida registrada.


Como un ejemplo de las características ofrecidas por este tipo de dispositivos, a continuación se enlistan las especificaciones más relevantes del circuito GAL16V8 de marca Lattice Semiconductor.

• fmax = 250 Mhz.

• 3.5 ns máximo tiempo de propagación.

• 2.5 ns máximo tiempo de propagación de la entrada de reloj a el dato de salida.

• Celdas Reprogramables.

• Vcc = 5 Volts ± 5%

• Consumo de corriente 90 mA.

• Rapidez en el borrado < >

Las terminales de la 12 a 19 correspondientes al OLMC (Output Logic Macrocell) pueden programarse para trabajar como entradas y/o salidas, y en el caso de ser usadas como salidas estas pueden ser combi nacionales o registradas (Flip Flops), lo cual le da la versatilidad de ser programado de diferentes formas y para diferentes requerimientos.

La programación de los PLDs en general se lleva a cabo por medio de programas de aplicación especializados siendo las dos estrategias de programación más utilizadas la captura esquemática y la de lenguaje de descripción de hardware (HDL).

La gran ventaja de estas herramientas es el de hacer los diseños en la computadora, donde los errores son fácilmente detectables y corregibles.

FUNCIONAMIENTO
Una GAL permite implementar cualquier expresión en suma de productos con un número de variables definidas, por ejemplo este diagrama muestra la estructura básica de una GAL para dos variables de entrada y una salida.

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

La salida de compuertas AND se introducen en las macroceldas lógicas de salida OLMC que contienen compuertas OR y lógica programable.


PRINCIPALES FABRICANTES DE DISPOSITIVOS GALs

Altera
Cypress
Lattice
Philips
Texas Instruments
Xilinx

BIBLIOGRAÍA 








Comentarios

Entradas populares de este blog

Función "rising_edge" para VHDL

Señal del reloj en VHDL