2013 Memorias PAL, GAL y EEPROM
Rosa
María
Regalado
Hernández,
Carlos Fernando Olmedo Rodríguez, Kevin Antonio Pérez Contreras. C. E. INSA Bachillerato Técnico Industrial 8-10-2013
Memorias PAL: Un Programmable Array Logic o matriz lógica programable o PAL, es un término utilizado para describir una familia de dispositivos programables usados para implementar funciones lógicas en circuitos digitales. Fue introducida por la compañía Monolithic Memories, Inc. (MMI) en marzo 1978. Los dispositivos PAL consisten de un núcleo pequeño PROM (memoria programable de solo lectura) y una lógica de salida adicional para implementar funciones lógicas deseadas con pocos componentes. Cada dispositivo PAL sólo podía programarse una vez (OTP, one-time programmable), no podían ser actualizados ni reusados luego de su programación inicial. La estructura de una PAL se basa en que cualquier función lógica puede ser descrita por sumas de productos lógicos.
Completos Universales Imcompletos
Sistemas combinacionales programables No universales
Completos
• Memorias de acceso aleatorio activas (RAM). • Memorias de acceso aleatorio pasivas (ROM, PROM, RPROM).
Incompletos
• Matríces lógicas probgramables (programmable logic array (PLA)) • Memórias lógicas Yprogramables (programmable array logic (PAL))
No universales
• Matrices programables de puertas Y (programmable gate array (PGA)) • Dectetores de identidad o comparadores programables (identy comparators)
Una memoria PAL es lo opuesto a una memoria ROM, tiene un arreglo AND programable y un arreglo OR fijo.
Matriz lógica programable (PAL): Es el dispositivo programable más común y se implementan con tecnología TTL y ECL.
Principios de funcionamiento PAL: Su estructura permite implementar cualquier suma de productos lógica con un número de variables definido. Cada punto de intersección de una fila y columna se llama celda y es el elemento programable de la PAL.
Implementación de una suma de productos: Durante el proceso de programación cuando se requiere la conexión entre una fila y una columna el fusible se deja intacto. Por lo contrario, cuando dicha unión no se requiere el fusible se abre.
Diagrama de bloques de una PAL:
Referencia estándar de una PAL:
Métodos de una programación de una PAL: Estos dispositivos al igual que las computadoras permiten que se trabaje programando en alto nivel, luego nos valemos de un compilador que traduzca todas las instrucciones en lenguaje máquina que pueda entender el dispositivo. Existen varios lenguajes de programación entre ellos están:
CULP utilizado por WinCULP, Protel.
PALASM (siglas de assembler para PAL).
ABEL.
Lenguaje PALASM: Para poder programar una memoria PAL nos centraremos en el lenguaje PALASM. Para empezar debemos de disponer de un archivo en código fuente tipo .PDS que es el que podemos escribir en el editor del PALASM; seguido se compilara para obtener el lenguaje tipo código máquina que en este caso es el diagrama de fusibles, este archivo contiene de la información de las conexiones que deben abrirse para que el dispositivo realice la función deseada, el mismo es de tipo .JED; este archivo debe ser entregado al programador de PAL para la programación del mismo, nótese que independientemente con que programa se realice el código fuente (PALASM o WinCULP) el archivo .JED que le entreguemos al programador deber ser idéntico. El lenguaje de programación se compone de operadores y palabras claves, entre los operadores están:
También hay palabras reservadas que solo pueden ser utilizadas por el lenguaje:
Memorias GAL: Los dispositivos GAL ’s, surgen como respuesta a la necesidad de incrementar las interconexiones internas de los dispositivos, teniendo sus salidas conectadas a macroceldas, las cuales pueden ser configuradas a sistemas combinatorios o de lógica con registros. Las estructuras GAL son, básicamente estructuras CMOS PAL, son básicamente la misma idea que la PAL 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 de la memoria GAL: 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. 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 (Output Logic MacroCells), 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).
Funcionamiento de la memoria GAL: 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. 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. Las 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 OLMC ’s proporcionan mucha más flexibilidad que la lógica de salida fija de una PAL.
Lenguaje de programación VHDL: VHDL significa very-high-speed
integrated
circuits
hardware
description
language o lenguaje de descripción de hardware de circuitos integrados de muy
alta
velocidad.
Como
indica
su
denominación
es
un
lenguaje
similar
a ADHL o Verilog usado para describir circuitos internos y la programación de FPGAs. Estos lenguajes presentan un mismo objetivo y se diferencia del clásico C (o cualquiera
parecido a este) por ser un lenguaje paralelo no
secuencial. Cada función que deseamos, es a nivel superior definida por una “entidad” donde se especifica las entradas y salidas del bloque. Por ej, una compuerta AND queda definida como:
Los bits del lenguaje se definen dentro de la entidad y se denomina “arquitectura”, la compuerta AND quedaría:
El lenguaje VHDL contiene otros comandos más complejos que pueden existir dentro de la arquitectura como Loops While, If y If-Else. Todos los tipos de cosas que se ven en la programación en C. Sin embargo, cuando se define un bucle en C el código da vueltas y vueltas, en VHDL que en realidad podríamos estar diciendo que genera múltiplos bloques idénticos de lógica y que todos ellos procesen los datos en un ciclo de clock – si así se requiere.
Memorias EEPROM: EEPROM responde a “Erasable Programmable Read Only Memory” que se puede traducir como Memoria programable borrable de solo lectura. También se la conoce como E-2-PROM. Como su nombre sugiere, una EEPROM puede ser borrada y programada con impulsos eléctricos. Al ser una pieza que se puede gestionar por estos impulsos eléctricos, podemos realizar todas estas operaciones de reprogramación sin tener que desconectarla de la placa a la cual va conectada. La EEPROM también se conoce como “non -volatile memory” o memoria no volátil y es debido a que cuando se desconecta la energía, los datos almacenados en la EEPROM no serán eliminados quedando intactos. Las EEPROM más nuevas no tiene datos almacenados en ellas y deben ser primero configuradas con un programador antes de ser usadas. La información almacenada dentro de este dispositivo puede permanecer durante años sin una fuente de energía eléctrica.
Características de las memorias EEPROM: 1. Se
pueden
conectar
fácilmente
con
microprocesadores
o
microcontroladores, algunas de estas memorias tienen pines para realizar esta labor.
2. Transferencia de datos de manera serial, lo que permite ahorro del micro para dedicarlo a otras funciones.
3. El consumo de corriente es mucho menor que en las memorias que trabajan en paralelo.
Función de la EEPROM: Son usadas para almacenar información programable de usuario, como por ejemplo: 1. Información de programación VCR.
2. Información de programación de CD.
3. Información de usuario de productos instalados en el equipo.
Estructura: El chip EEPROM es físicamente similar a la EPROM chip. También está compuesto de células con dos transistores. La puerta flotante se separa de la puerta de control por una delgada capa de óxido. A diferencia de la EPROM chip, sin embargo, el chip de EEPROM capa de óxido es mucho más delgada. En los chips de EEPROM, la capa de aislamiento es sólo alrededor de 1 nanómetro de espesor, mientras que en EPROM chips, la capa de óxido es de alrededor de 3 nanómetros de espesor. La delgada capa de óxido de medios más bajos requisitos de voltaje para iniciar los cambios de valor en la celda. Túnel de los electrones de la puerta flotante a la capa de óxido que separa la puerta flotante y el control de la puerta sigue siendo el método de cambiar un poco el valor de 1 a 0. Para borrar la programación EEPROM, la barrera de electrones todavía tiene que ser superado por la aplicación de suficiente tensión de programación.