Upload
carlos-fernando
View
219
Download
8
Embed Size (px)
Citation preview
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
2013Memorias PAL, GAL y EEPROM
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.
Sistemas combinacionales
programables
Universales
Completos
Imcompletos
No universales
Completos
Incompletos
No universales
Memorias de acceso aleatorio activas (RAM).Memorias de acceso aleatorio pasivas (ROM, PROM, RPROM).
Matríces lógicas probgramables (programmable logic array (PLA))Memórias lógicas Y-programables (programmable array logic (PAL))
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.