www.monografias.com
Memorias Programables 1. 2. 3. 4.
Introducción. Memorias programables. Resumen. Bibliografía
1.- INTRODUCCIÓN Las computadoras y otros tipos de sistemas requieren el almacenamiento permanente o semipermanente de un gran número de datos binarios. Los sistemas basados en microprocesadores necesitan de la memoria para almacenar los programas y datos generados durante el procesamiento y disponer de ellos cuando sea necesario. Las modernas técnicas de circuitos integrados permiten combinar miles e incluso millones de puertas dentro de un solo encapsulado. Esto ha llevado a la fabricación de diseños más complejos como los dispositivos lógicos programables, memorias y microprocesadores, que proporcionan dentro de un solo chip circuitos que requieren gran cantidad de componentes discretos. Las memorias son dispositivos de almacenamiento de datos binarios de largo o corto plazo .La memoria es un componente fundamental de las computadoras digitales y está presente en gran parte de los sistemas digitales. La memoria de acceso aleatorio (RAM, random access memory) almacena datos temporalmente, la memoria de sólo lectura (ROM, Read only memory) los guarda de manera permanente. La ROM forma parte del grupo de componentes llamados dispositivos lógicos programables (PLD, programmable logic devices), que emplean la información almacenada para definir circuitos lógicos. Dispositivos que son capaces de proveer el medio físico para almacenar esta información. Y aunque esta es su tarea fundamental (más del 90 % de las memorias se dedican a este fin) también se pueden utilizar para la implementación de circuitos combinacionales y pueden sustituir la mayor parte de la lógica de un sistema. Los chips LSI pueden programarse para realizar funciones específicas. Un dispositivo lógico programable (PLD) es un chip LSI que contiene una estructura de circuito “regular”, pero que
permite al diseñador adecuarlo para una aplicación específica. Cuando un PLD típico deja la fábrica de IC, aún no está listo para una función específica, sino que debe ser programado por el usuario para que realice la función requerida en una aplicación particular. Los chips con la mayor funcionalidad por unidad de área han sido los chips de memoria, que contienen arreglos rectangulares de celdas de memoria. Uno de los PLD es el chi p “de memoria de sólo lectura”.
En una primera clasificación, se puede distinguir entre memorias de almacenamiento masivo, caracterizadas por ser memorias baratas y lentas, y memorias semiconductoras o memorias de estado sólido, más caras y rápidas. En las primeras, la prioridad es disponer de una gran capacidad de almacenamiento, como ocurre en los discos duros, en tanto que en las segundas, la prioridad es disponer de velocidades de acceso rápidas compatibles con la mayor capacidad de almacenamiento posible Que son las habitualmente utilizadas como memorias de almacenamiento de programa y de datos en la mayoría de las aplicaciones. Que ofrece cada tipo de memoria así como las tecnologías de fabricación, que han permitido un espectacular avance en las velocidades y escalas de integración en los últimos años. Podemos considerar una memoria como un conjunto de M registros de N bits cada uno de ellos. Estos registros ocupan las posiciones desde el valor 0 hasta M-1. Para acceder a cada registro es necesaria una lógica de selección. En general, para cada registro se pueden realizar procesos de lectura y de escritura. Para realizar todas estas operaciones son nuestro caso son necesarios N terminales: permiten especificar si se desa realizar una operación de escritura o de lectura, seleccionar el dispositivo. bajo.
1 Las primeras son las relacionadas con nuestros conocidos discos de ordenador, y las últimas están abriendo en la actualidad un atractivo abanico de posibilidades: desde los discos magnetoópticos hasta las memorias holográficas. sobre la memoria. habitualmente con valor bajo es activo el modo de escritura. dispositivo.
2.- MEMORIAS PROGRAMABLES 2.1.- MEMORIA ROM (READ ONLY MEMORY) Es una memoria de sólo lectura que se programan mediante máscaras. Es decir, el contenido de las celdas de memoria se almacena durante el proceso de fabricación para mantenerse después de forma irrevocable. Desde el instante en que el fabricante grabo las instrucciones en el Chip, por lo tanto la escritura de este tipo de memorias ocurre una sola vez y queda grabado su contenido aunque se le retire la energía. Se usa para almacenar información vital para el funcionamiento del sistema: en la gestión del proceso de arranque, el chequeo inicial del sistema, carga del sistema operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las tareas encargadas a los programas grabados en ROM. Estos programas forman la llamada BIOS (Basic Input Output System). Junto a la BIOS se encuentra el chip de CMOS donde se almacenan los valores que determinan la configuración hardware del sistema, como tipos de unidades, parámetros de los discos duros, fecha y hora del sistema... esta información no se pierde al apagar la computadora. Estos valores se pueden modificar por medio del SETUP. La memoria ROM constituye lo que se ha venido llamando Firmware, es decir, el software metido físicamente en hardware. De cara a los fines del usuario es una memoria que no sirve para la operación de su programa, sólo le aporta mayores funcionalidades (información) del equipo. Si tenemos idea de cómo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas (placas de silicio) que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una mascara con agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios procesos similares pero más complicados se consigue fabricar los transistores y diodos micrométricos que componen un chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. Los PCs vienen con una cantidad de ROM, donde se encuentras los programas de BIOS (Basic Input Output System), que contienen los programas y los datos necesarios para activar y hacer funcionar el computador y sus periféricos. La ventaja de tener los programas fundamentales del computador almacenados en la ROM es que están allí implementados en el interior del computador y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma en que se carga el DOS. Debido a que están siempre residentes, los programas en ROM son muy a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS). Estas memorias, cuyo nombre procede de las iniciales de Read Only Memory son solo de lectura. Dentro de un proceso de elaboración de datos de una computadora, no es posible grabar ningún dato en las memorias ROM. Son memorias perfectas para guardar microprogramas, sistemas operativos, tablas de conversión, generación de caracteres etc. Las características fundamentales de las memorias ROM son: 1. Alta densidad : la estructura de la celda básica es muy sencilla y permite altas integraciones. 2. No volátiles: el contenido de la memoria permanece si se quita la alimentación. 3. Coste: dado que la programación se realiza a nivel de máscaras durante el proceso de fabricación, resultan baratas en grandes tiradas, de modo que el coste de fabricación se reparte en muchas unidades y el coste unitario es baja.
1 Las primeras son las relacionadas con nuestros conocidos discos de ordenador, y las últimas están abriendo en la actualidad un atractivo abanico de posibilidades: desde los discos magnetoópticos hasta las memorias holográficas. sobre la memoria. habitualmente con valor bajo es activo el modo de escritura. dispositivo.
2.- MEMORIAS PROGRAMABLES 2.1.- MEMORIA ROM (READ ONLY MEMORY) Es una memoria de sólo lectura que se programan mediante máscaras. Es decir, el contenido de las celdas de memoria se almacena durante el proceso de fabricación para mantenerse después de forma irrevocable. Desde el instante en que el fabricante grabo las instrucciones en el Chip, por lo tanto la escritura de este tipo de memorias ocurre una sola vez y queda grabado su contenido aunque se le retire la energía. Se usa para almacenar información vital para el funcionamiento del sistema: en la gestión del proceso de arranque, el chequeo inicial del sistema, carga del sistema operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las tareas encargadas a los programas grabados en ROM. Estos programas forman la llamada BIOS (Basic Input Output System). Junto a la BIOS se encuentra el chip de CMOS donde se almacenan los valores que determinan la configuración hardware del sistema, como tipos de unidades, parámetros de los discos duros, fecha y hora del sistema... esta información no se pierde al apagar la computadora. Estos valores se pueden modificar por medio del SETUP. La memoria ROM constituye lo que se ha venido llamando Firmware, es decir, el software metido físicamente en hardware. De cara a los fines del usuario es una memoria que no sirve para la operación de su programa, sólo le aporta mayores funcionalidades (información) del equipo. Si tenemos idea de cómo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas (placas de silicio) que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una mascara con agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios procesos similares pero más complicados se consigue fabricar los transistores y diodos micrométricos que componen un chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. Los PCs vienen con una cantidad de ROM, donde se encuentras los programas de BIOS (Basic Input Output System), que contienen los programas y los datos necesarios para activar y hacer funcionar el computador y sus periféricos. La ventaja de tener los programas fundamentales del computador almacenados en la ROM es que están allí implementados en el interior del computador y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma en que se carga el DOS. Debido a que están siempre residentes, los programas en ROM son muy a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS). Estas memorias, cuyo nombre procede de las iniciales de Read Only Memory son solo de lectura. Dentro de un proceso de elaboración de datos de una computadora, no es posible grabar ningún dato en las memorias ROM. Son memorias perfectas para guardar microprogramas, sistemas operativos, tablas de conversión, generación de caracteres etc. Las características fundamentales de las memorias ROM son: 1. Alta densidad : la estructura de la celda básica es muy sencilla y permite altas integraciones. 2. No volátiles: el contenido de la memoria permanece si se quita la alimentación. 3. Coste: dado que la programación se realiza a nivel de máscaras durante el proceso de fabricación, resultan baratas en grandes tiradas, de modo que el coste de fabricación se reparte en muchas unidades y el coste unitario es baja.
4. Sólo lectura: únicamente son programables a nivel de máscara durante su fabricación. Su contenido, una vez fabricada, no se puede modificar. Hay muchos tipos de ROM:
Una ROM puede estar fabricada tanto en tecnología bipolar como MOS. La figura muestra celdas ROM bipolar. La presencia de una unión desde una línea de fila a la base de un transistor representa un „1‟ en esa posición. En las uniones
fila/columna en las que no existe conexión de base, las líneas de la columna permanecerán a nivel bajo („0‟) cuando se direccione la fila.
La figura 5.15 muestra celdas ROM con transistores MOS. Básicamente son iguales que las anteriores, excepto que están fabricadas con MOSFETs.
2.2.- MEMORIA PROM (PROGRAMMABLE READ ONLY MEMORIES) Una alternativa para proyectos pequeños es el uso de una de las memorias de sólo lectura programables o PROM ( programmable programmable rea d only memories), memoria basada en semiconductores que contiene instrucciones o datos. Éstas existen en muchas variantes, pero todas permiten que el usuario programe el dispositivo por si mismo, ahorrándose el alto costo de la producción de la máscara. En la PROM (programable ROM), o memoria programable de sólo lectura los contenidos pueden ser leídos pero no modificados por un programa de usuario. Sus contenidos no se construyen, como la ROM, directamente en el procesador cuando éste se fabrica, sino que se crean por medio de un tipo especial “programación”, ya sea por el fabricante, o por especia listas técnicos de programación del usuario. El proceso de programación es destructivo: una vez grabada, es como si fuese una ROM normal. Las operaciones muy importantes o largas que se habían estado ejecutando mediante programas, se pueden convertir en microprogramas y grabarse permanentemente en una pastilla de memoria programable sólo de lectura. Una vez que están en forma de circuitos electrónicos, estas tareas se pueden realizar casi siempre en una fracción del tiempo que
requerían antes. La flexibilidad adicional que se obtiene con la PROM puede convertirse en una desventaja si en la unidad PROM se programa un error que no se puede corregir. Para superar esta desventaja, se desarrolló la EPROM, o memoria de solo lectura reprográmale. Las prestaciones de las memorias PROM son similares a las anteriores, con la única salvedad del proceso de programación. La escritura de la memoria PROM tiene lugar fundiendo los fusibles necesarios por lo que la memoria PROM solo puede ser programada una vez. Ahora la hace el usuario usando un equipo programador y, además, se rompe con la dependencia de la fábrica y los enormes costes de las máscaras.
MÉTODO DE PROGRAMACIÓN DE LA MEMORIA PROM Para conseguir que la información que se desea grabar sea inalterable, se utilizan dos técnicas: por destrucción de fusible o por destrucción de unión. La idea es básicamente la misma que las ideas ROM convencionales, pero en este caso todas las celdas tienen diodos, por lo cual la memoria viene programada de fábrica con todos 1. Cada diodo tiene conectado un fusible, cuya funcionalidad es similar a la que podemos ver en fuentes de alimentación o estabilizadores de tensión: cuando se produce una sobretensión, el fusible se quema y, por lo tanto, el circuito se abre. De esta manera, el diodo pierde contacto con el mundo exterior y el lector de memoria nunca sabe de su existencia, así que a esa celda la interpreta como un cero. Por lo tanto para programar un chip de memoria PROM; con un dispositivo llamado programador (por cierto, un nombre muy original xD), se les aplica a las celdas correspondientes una tensión superior a la que son capaces de soportar los fusibles, y así quedan definidos todos los bits de la memoria en cuestión. Como podemos ver, este tipo de memorias tiene una falencia: no pueden ser reprogramadas.
La pastilla es insertada en un dispositivo que genera en las salidas de la ROM (usadas como entradas) los valores lógicos de cada palabra. Para cada posición, se genera un pulso de hasta 30V por la entrada Vpp=Vcc, que produce una circulación de corrientes que funden delgadas conexiones fusibles en serie con diodos o transistores que se quiere desconectar. Así se obtienen los ceros que deben resultar en las salidas, dado que el chip “virgen” viene
con todos los diodos conectados. Este proceso dura pocos minutos. El proceso de programación de una PROM generalmente se realiza con un equipo especial llamado quemador. Este equipo emplea un mecanismo de interruptores electrónicos controlados por software que permiten cargar las direcciones, los datos y genera los pulsos para fundir los fusibles del arreglo interno de la memoria. En la figura se indica de forma esquemática la función del programador.
Programación de un PROM
ARQUITECTURA DE LA PROM Estructura básica de un PLD Un dispositivo programable por el usuario es aquel que contiene una arquitectura general predefinida en la que el usuario puede programar el diseño final del dispositivo empleando un conjunto de herramientas de desarrollo. Las arquitecturas generales pueden variar pero normalmente consisten en una o más matrices de puertas AND y OR para implementar funciones lógicas. Muchos dispositivos también contienen combinaciones de flip-flops y latches que pueden usarse como elementos de almacenaje para entrada y salida de un dispositivo. Los dispositivos más complejos contienen m acrocélulas. Las macrocélulas permiten al usuario configurar el tipo de entradas y salidas necesarias en el diseño
Las PROM son memorias programables de sólo lectura. Aunque el nombre no implica la lógica programable, las PROM, son de hecho lógicas. La arquitectura de la mayoría de las PROM consiste generalmente en un número fijo de términos AND que alimenta una matriz programable OR. Se usan principalmente para decodificar las combinaciones de entrada en funciones de salida. a) Las Aplicaciones más importantes: b) Microprogramación c) Librería de subrutinas d) Programas de sistema e) Tablas de función 2.3.- MEMORIA EPROM Las EPROM, o Memorias sólo de Lectura Reprogramables, se programan mediante impulsos eléctricos y su contenido se borra exponiéndolas a la luz ultravioleta (de ahí la ventanita que suelen incorporar este tipo de circuitos), de manera tal que estos rayos atraen los elementos fotosensibles, modificando su estado.
- Vista de la Ventanita de una EPROM -
PROGRAMACIÓN DE UNA MEMORIA EPROM Las EPROM se programan insertando el chip en un programador de EPROM. y aplicando en un pin especial de la memoria una tensión entre 10 y 25 Voltios durante aproximadamente 50 ms, según el dispositivo, al mismo tiempo se direcciona la posición de memoria y se pone la información a las entradas de datos. Este proceso puede tardar varios minutos dependiendo de la capacidad de memoria.
La memoria EPROM , se compone de un arreglo de transistores MOSFET de Canal N de compuerta aislada. En la figura se observa el transistor funcionando como celda de memoria en una EPROM .
Celda de memoria de una EPROM Cada transistor tiene una compuerta flotante de SiO2 (sin conexión eléctrica) que en estado normal se encuentra apagado y almacena un 1 lógico. Durante la programación, al aplicar una tensión (10 a 25V) la región de la compuerta queda cargada eléctricamente, haciendo que el transistor se encienda, almacenando de esta forma un 0 lógico. Este dato queda almacenado de forma permanente, sin necesidad de mantener la tensión en la compuerta ya que la carga eléctrica en la compuerta puede permanecer por un período aproximado de 10 años. Las EPROMs también emplean transistores de puerta dual o FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) de cargas almacenadas. Estos transistores son similares a los transistores de efecto de campo (FETs) canal-P, pero tienen dos compuertas. La compuerta interior o flotante esta completamente rodeada por una capa aislante de dióxido de silicio; la compuerta superior o compuerta de control es la efectivamente conectada a la circuitería externa. Inicialmente, la puerta flotante esta descargada, y el transistor se comporta como un transistor MOS normal. No obstante, mediante un equipo programador, se puede acumular carga en la puerta flotante aplicando una sobre tensión a la puerta y al drenador del transistor. Esta acumulación de electrones en la segunda puerta tiene el efecto de aumentar la umbral del transistor a un valor tal que no conduce aunque se direccione la celda. Así pues la cantidad de carga eléctrica almacenada sobre la compuerta flotante determina que el bit de la celda contenga un 1 o un 0; las celdas cargadas son leídas como un 0, mientras que las que no lo están son leídas como un 1. Tal como las EPROMs salen de la fábrica, todas las celdas se encuentran descargadas, por lo cual el bit asociado es un 1; de ahí que una EPROM virgen presente el valor hexadecimal FF en todas sus direcciones.
Cuando un dado bit de una celda debe ser cambiado o programado de un 1 a un 0, se hace pasar una corriente a través del canal de transistor desde la fuente hacia la compuerta (obviamente, los electrones siguen el camino inverso). Al mismo tiempo se aplica una relativamente alta tensión sobre la compuerta superior o de control del transistor, creándose de esta manera un campo eléctrico fuerte dentro de las capas del material semiconductor. Ante la presencia de este campo eléctrico fuerte, algunos de los electrones que pasan el canal fuente-compuerta ganan suficiente energía como para formar un túnel y atravesar la capa aislante que normalmente aísla la compuerta flotante. En la medida que estos electrones se acumulan en la compuerta flotante, dicha compuerta toma carga negativa, lo que finalmente produce que la celda tenga un 0.
Funcionamiento de una EPROM Recordemos que son memorias de acceso aleatorio, generalmente leídas y eventualmente borradas y reescritas. Una vez grabada una EPROM con la información pertinente, por medio de un dispositivo especial que se explicará luego, la misma es instalada en el sistema correspondiente donde efectivamente será utilizada como dispositivo de lectura solamente. Eventualmente, ante la necesidad de realizar alguna modificación en la información contenida o bien para ser utilizada en otra aplicación, la EPROM es retirada del sistema, borrada mediante la exposición a luz ultravioleta con una longitud de onda de 2537 Angstroms (unidad de longitud por la cual 1 A = 10-10 m), programada con los nuevos datos, y vuelta a instalar para volver a comportarse como una memoria de lectura solamente. Por esa exposición para su borrado es que es encapsulada con una ventana transparente de cuarzo sobre la pastilla o "die" de la EPROM. Es atinente aclarar que una EPROM no puede ser borrada parcial o selectivamente; de ahí que por más pequeña que fuese la eventual modificación a realizar en su contenido, inevitablemente se deberá borrar y reprogramar en su totalidad. Los tiempos medios de borrado de una EPROM, por exposición a la luz ultravioleta, oscilan entre 10 y 30 minutos. Con el advenimiento de las nuevas tecnologías para la fabricación de circuitos integrados, se pueden emplear métodos eléctricos de borrado. Estas ROM pueden ser borradas sin necesidad de extraerlas de la tarjeta del circuito. Además de EAPROM suelen ser denominadas RMM (Read Mostly Memories), memorias de casi-siempre lectura, ya que no suelen modificarse casi nunca, pues los tiempos de escritura son significativamente mayores que los de lectura.
Las memorias de sólo lectura presentan un esquema de direccionamiento similar al de las memorias RAM. El microprocesador no puede cambiar el contenido de la memoria ROM. Entre las aplicaciones generales que involucran a las EPROM debemos destacar las de manejo de sistemas microcontrolados. Todo sistema microcontrolado y/o microprocesado (se trate de una computadora personal o de una máquina expendedora de boletos para el autotransporte...) nos encontraremos con cierta cantidad de memoria programable por el usuario (la RAM), usualmente en la forma de dispositivos semiconductores contenidos en un circuito integrado (no olvidemos que un relay biestable o un flip-flop también son medios de almacenamiento de información). Estos dispositivos semiconductores integrados están generalmente construidos en tecnología MOS (Metal-Oxide Semiconductor, Semiconductor de Oxido Metálico) o -más recientemente- CMOS (Complementary Metal-Oxide Semiconducto o Semiconductor de Oxido Metálico Complementario). Lamentablemente, estos dispositivos RAM adolecen de un ligero inconveniente, que es, como ya se ha comentado, su volatibilidad. Dado que cualquier sistema microprocesado requiere de al menos un mínimo de memoria no volátil donde almacenar ya sea un sistema operativo, un programa de aplicación, un lenguaje intérprete, o una simple rutina de "upload", es necesario utilizar un dispositivo que preserve su información de manera al menos semi-permanente. Y aquí es donde comienzan a brillar las EPROMs.
Tal como mencionáramos anteriormente, el proceso de borrado de los datos contenidos en una EPROM es llevado a cabo exponiendo la misma a luz ultravioleta. El punto reside en que la misma contiene fotones (Cuantos de energía electromagnética) de energía relativamente alta.
La familia 2700 Los dispositivos EPROM de la familia 2700 contienen celdas de almacenamiento de bits configuradas como bytes direccionables individualmente. Habitualmente esta organización interna suele denominarse como 2K x 8 para el caso de una 2716, 8k x 8 para una 2764, etc. Por razones de compatibilidad (tanto con dispositivos anteriores como con dispositivos futuros), la gran mayoría de las EPROMs se ajustan a distribuciones de terminales o "pinouts" estándar. Para el caso mas usual, que es el encapsulado DIP (Dual In-Line Package) de 28 pines, el estándar utilizado es el JEDEC-28. En cuanto a la programación de estos dispositivos (si bien conceptualmente obedece siempre a la metodología descripta anteriormente) en realidad existe una relativamente alta variedad de implementaciones prácticas. Si bien en la actualidad parece haberse uniformado razonablemente, las tensiones de programación varían en función tanto del dispositivo, como del fabricante; así nos encontramos con tensiones de programación (Vpp) de 12,5V, 13V, 21V y 25V. Lo mismo sucede con otros parámetros importantes que intervienen en el proceso de grabación de un EPROM, como es el caso de la duración de dicho pulso de programación y los niveles lógicos que determinan distintos modos de operación.
PROGRAMADOR/ EMULADOR DE FLASH EPROM
La manera más cómoda, aunque también la más costosa de desarrollar circuitos microcontroladores consiste en simular la parte principal del controlador con la ayuda de un emulador. Una de opciones más baratas consiste en emplear un programa monitor junto con un emulador de memorias EPROM. Desafortunadamente, la mayoría de los programas monitores consumen algunos de los recursos del controlador. Esta seria desventaja se resuelve utilizando el emulador de memorias EPROM, que se comporta básicamente igual que una memoria RAM de un doble puerto: a un lado se encuentra la interfase, como una memoria EPROM, mientras que al otro lado proporciona las señales necesarias para introducir el flujo de datos a la memoria RAM. Cuando compañías como AMD desarrollaron las memorias EPROM "Flash" con una tensión de programación de 5V y un ciclo de vida que permitía programar la memoria hasta 100.000 veces, se abrieron las puertas a un nuevo modelo de emulador de memorias EPROM. El diseño que se presenta no solo actúa como un emulador con una enorme capacidad de almacenamiento, sino que también funciona como un programador de memorias EPROM "Flash", ahorrándose comprar un sistema exclusivamente dedicado a programar. Cuando se termine de trabajar con el emulador durante la fase del diseño, se dispondrá en la memoria EPROM "Flash" del código definitivo, que se sacará del emulador y se introducirá en el circuito que se vaya a utilizar en la aplicación. Como los precios de las memorias EPROM "Flash" no son mucho mayores que los de las memorias EPROM convencionales, la ventaja adicional que se ha descrito es sin costo.
Ejemplo de Borrador de una EPROM Fotografías de algunos borradores de eproms
2.4.- MEMORIA EEPROM (ELECTRICAL ERASABLE PROGRAMMABLE READ ONLY MEMORY)
La memoria EEPROM es programable y borrable eléctricamente y su nombre proviene de la sigla en inglés Electrical Erasable Programmable Read Only Memory . Actualmente estas memorias se construyen con transistores de tecnología MOS ( Metal Oxide Silice ) y MNOS (Metal Nitride-Oxide Silicon ). Las celdas de memoria en las EEPROM son similares a las celdas EPROM y la diferencia básica se encuentra en la capa aislante alrededor de cada compuesta flotante, la cual es más delgada y no es fotosensible. Las memorias EEPROM ( Electrically Erasable Programmable Read-Only Memory ) son memorias no volátiles y eléctricamente borrables a nivel de bytes. La posibilidad de programar y borrar las memorias a nivel de bytes supone una gran flexibilidad, pero también una celda de memoria más compleja. Además del transistor de puerta flotante anterior, es preciso un segundo transistor de selección. El tener 2 transistores por celda hace que las memorias EEPROM sean de baja densidad y mayor coste. La programación requiere de tiempos que oscilan entre 157 s y 625 s=byte. Frente a las memorias EPROM, presenta la ventaja de permitir su borrado y programación en placa, aunque tienen mayor coste debido a sus dos transistores por celda. Estas memorias se presentan, en cuanto a la organización y asignación de patillas, como la UVPROM cuando están organizadas en palabras de 8 bits. Se programan de forma casi idéntica pero tienen la posibilidad de ser borradas eléctricamente. Esta característica permite que puedan ser programadas y borradas “en el circuito”.
Debido a que la célda elemental de este tipo de memorias es más complicada que sus equivalentes en EPROM o PROM (y por ello bastante más cara), este tipo de memoria no dispone en el mercado de una variedad tan amplia, y es habitual tener que acudir a fabricantes especializados en las mismas (ejemplo: Xicor). 24LC256
En cuanto a la forma de referenciar los circuitos, estas memorias suelen comenzar con el prefijo 28, de forma que la 2864 indica una memoria EEPROM de 64Kbytes, equivalente en cuanto a patillaje y modo de operación de lectura a la UVPROM 2764. Una ventaja adicional de este tipo de memorias radica en que no necesitan de una alta tensión de grabado, sirven los 5 voltios de la tensión de alimentación habitual.
WE
MEMORIA BUS DE DIRECCIONES
BUS DE DATOS
EEPROM
OE
CE
CE = CHIP ENABLE: Permite Activar el Circuito Integrado OE = OUTPUT ENABLE: Permite Activar La Salida Del Bus De Datos
CE
OE
LECTURA
0
0
1
ESCRITURA
0
1
0
WE
Ventajas de la EEPROM: La programación y el borrado pueden realizarse sin la necesidad de una fuente de luz UV y unidad programadora de PROM, además de poder hacerse en el mismo circuito gracias a que el mecanismo de transporte de cargas mencionado en el párrafo anterior requiere corrientes muy bajas. Las palabras almacenadas en memoria se pueden borrar de forma individual. Para borra la información no se requiere luz ultravioleta. Las memorias EEPROM no requieren programador. De manera individual puedes borrar y reprogramar eléctricamente grupos de caracteres o palabras en el arreglo de la memoria. El tiempo de borrado total se reduce a 10ms en circuito donde su antepasado inmediato requería media hora bajo luz ultravioleta externa. El tiempo de programación depende de un pulso por cada palabra de datos de 10 ms, versus los 50 ms empleados por una ROM programable y borrable. Se pueden reescribir aproximadamente unas 1000 veces sin que se observen problemas para almacenar la información. Para reescribir no se necesita hacer un borrado previo. Aplicaciones de las Memorias EEPROM Encontramos este tipo de memorias en aquellas aplicaciones en las que el usuario necesita almacenar de forma permanente algún tipo de información; por ejemplo en los receptores de TV o magnetoscopios para memorizar los ajustes o los canales de recepción.
EJEMPLO DE MEMORIA EEPROM - 28C64A Esta memoria tiene una capacidad de 8K X 8 (64 KB). Car ac ter íst ic as Té cn ic as
Referencia 28C64A Tipo EEPROM CMOS Capacidad (bits) 8192 X 8
Tipo de salida 5V
Tiempos de Acceso 120/150/200 ns
Encapsulado DIL-28 y PLCC32 EEPROM 28C64A En la figura se indica la disposición de los pines de esta memoria la cual se encuentra disponible en dos tipos de encapsulados (DIL y PLCC).
2.5.- MEMORIA FLASH
La memoria FLASH es similar a la EEPROM , es decir que se puede programar y borrar eléctricamente, son de alta densidad (gran capacidad de almacenamiento de bits). Alta densidad significa que se puede empaquetar en una pequeña superficie del chip, gran cantidad de celdas, lo que implica que cuanto mayor sea la densidad, más bits se pueden almacenar en un chip de tamaño determinado. Sin embargo esta reúne algunas de las propiedades de las memorias anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar información y es de fabricación sencilla, lo que permite fabricar modelos de capacidad equivalente a las EPROM a menor costo que las EEPROM.
ESTRUCTURA DE LA MEMORIA FLASH Antes de analizar la memoria Flash a nivel de celda veamos como es su estructura a
nivel de bloques. La figura nos muestra la arquitectura en sectores de una memoria Flash de 512Kx8. Cada uno de los sectores se borra independientemente de los otros, siendo necesario el borrado antes de la programación.
Los datos se almacenan como una carga en la puerta flotante. Inicialmente, toda la memoria se encuentra a nivel alto. Programar la memoria es el proceso de cambiar un "1" lógico por un "0" lógico. Borrar un sector cambia todos los "0" lógicos de ese sector por "1" lógicos. No es posible reprogramar una determinada dirección: es necesario borrar previamente todo el sector antes de volver a programar esa dirección. Las celdas de memoria se encuentran constituidas por un transistor MOS de puerta apilada, el cual se forma con una puerta de control y una puerta aislada, tal como se indica en la figura La compuerta aislada almacena carga eléctrica cuando se aplica una tensión lo suficientemente alta en la puerta de control. De la misma manera que la memoria EPROM , cuando hay carga eléctrica en la compuerta aislada, se almacena un 0 , de lo contrario se almacena un 1.
Celda de memoria de una FLASH Las operaciones básicas de una memoria Flash son la programación, la lectura y borrado.
Como ya se mencionó, la programación se efectúa con la aplicación de una tensión (generalmente de 12V o 12.75 V) a cada una de las compuertas de control, correspondiente a las celdas en las que se desean almacenar 0’s. Para almacenar 1’s no es necesario aplicar tensión a las compuertas debido a que el estado por defecto de las celdas de memoria es 1. La lectura se efectúa aplicando una tensión positiva a la compuerta de control de la celda de memoria, en cuyo caso el estado lógico almacenado se deduce con base en el cambio de estado del transistor: Si hay un 1 almacenado, la tensión aplicada será lo suficiente para encender el transistor y hacer circular corriente del drenador hacia la fuente. Si hay un 0 almacenado, la tensión aplicada no encenderá el transistor debido a que la carga eléctrica almacenada en la compuerta aislada. Para determinar si el dato almacenado en la celda es un 1 ó un 0 , se detecta la corriente circulando por el transistor en el momento que se aplica la tensión en la compuerta de control. El borrado consiste en la liberación de las cargas eléctricas almacenadas en las compuertas aisladas de los transistores. Este proceso consiste en la aplicación de una tensión lo suficientemente negativa que desplaza las cargas como se indica en la figura.
Proceso de descarga de una celda de memoria FLASH Aparte de que las memorias EPROM "Flash" tienen una entrada de escritura, mientras están funcionando se comportan como las EPROM normales. La única diferencia se encuentra en como se cargan y se borran los datos en la memoria. Mientras que durante el proceso de programación de las memorias EPROM convencionales se necesita una tensión bien definida durante cierto intervalo de tiempo, y para borrar el componente hay que exponerlo a luz ultravioleta, en las E.Flash ambos procesos están controlados y se llevan a cabo internamente. Para tal efecto la memoria recibe una secuencia de comandos predefinida (borrar, programar) que incluye algunas precauciones especiales (determinadas por el fabricante) destinadas a evitar que se borre cualquier dato por error. El comando se transfiere a la memoria EPROM "Flash" mediante una serie de operaciones de escritura. Los dos primeros comandos "Lectura/Reset" preparan la memoria para operaciones de lectura. El comando "Autoselección" permite leer el código del fabricante y el tipo de dispositivo. El comando "Byte" carga el programa dentro de la memoria EPROM, mientras que "Borrar Chip" actúa durante el proceso de borrado, que no dura más de un minuto. Desde el punto de vista lógico podemos afirmar que la memoria EPROM "Flash" está dividida en sectores que se pueden borrar individualmente con la ayuda del comando "Borrar Sector". Las memorias EPROM "Flash" disponen de otro mecanismo, basado en la división en sectores, que las protege de acciones de escritura o lectura no deseadas. Cuando un sector está protegido de esta forma no se puede realizar una operación de lectura o sobre escritura con una tensión de 5V. Este hecho es muy importante y se debe tener siempre presente cuando se utilicen estos dispositivos. Solamente se puede eliminar esta protección con la ayuda de un programador especial.
Durante el proceso de programación o borrado se puede leer, mediante un comando de acceso en "lectura", el estado de la memoria EPROM "Flash" en la misma posición que el byte de programado o borrado. Mientras se borra un sector se puede leer cualquier dirección que pertenezca al sector.
APLICACIONES DE LA MEMORIA FLASH La Memoria Flash es ideal para docenas de aplicaciones portátiles. Tomemos como ejemplo las cámaras digitales. Insertando una tarjeta de Memoria Flash de alta capacidad directamente en la cámara, usted puede almacenar cientos de imágenes de alta resolución. Cuando este listo para bajarlas, simplemente retire la tarjeta y transfiérala a su computadora de escritorio o portátil para su procesamiento. Las tarjetas de Memoria Flash se ajustan a entradas Tipo II (con o sin adaptador, dependiendo del tipo de tarjeta Flash). Ahora esta usted listo para cargar en segundos todas las imágenes capturadas para observarlas, manipularlas, enviarlas por correo electrónico o imprimirlas. Ya nunca necesitara comprar rollos para fotografía. Sea cual sea su aplicación o equipo portátil. Actualmente, los usos de Memoria Flash se están incrementando rápidamente. Ya sean cámaras digitales, Asistentes Digitales Portátiles, reproductores de música digital o teléfonos celulares, todos necesitan una forma fácil y confiable de almacenar y transportar información vital. Se utilizan en la fabricación de BIOS para computadoras. , generalmente conocidos como FLASH-BIOS. La ventaja de esta tecnología es que permite actualizar el bios con un software proporcionado por el fabricante, sin necesidad de desmontar el chip del circuito final, ni usar aparatos especiales. Por esto la Memoria Flash se ha convertido en poco tiempo en una de las más populares tecnologías de almacenamiento de datos. Es más flexible que un diskette y puede almacenar hasta 160MB de información. Es más y mucho mas rápida que un disco duro, y a diferencia de la memoria RAM, la Memoria Flash puede retener datos aun cuando el equipo se ha apagado. La Memoria Flash es ideal para docenas de aplicaciones portátiles. Tomemos como ejemplo las cámaras digitales. Insertando una tarjeta de Memoria Flash de alta capacidad directamente en la cámara, usted puede almacenar cientos de imágenes de alta resolución. Cuando este listo para bajarlas, simplemente retire la tarjeta y transfiérala a su computadora de escritorio o portátil para su procesamiento. Las tarjetas de Memoria Flash se ajustan a entradas Tipo II (con o sin adaptador, dependiendo del tipo de tarjeta Flash). Ahora esta usted listo para cargar en segundos todas las imágenes capturadas para observarlas, manipularlas, enviarlas por correo electrónico o imprimirlas. Ya nunca necesitara comprar rollos para fotografía. EJEMPLO DE MEMORIA FLASH - 27F256 La capacidad de esta memoria es de 32K X 8 y como memoria Flash tiene la característica particular de ser borrada en un tiempo muy corto (1 seg.). El tiempo de programación por byte es de 100 ms y el tiempo de retención de la información es de aproximadamente 10 años.
Car ac ter íst ic as Té cn ic as
Referencia 28F256
Tipo FLASH EEPROM
Capacidad (bits) 32768 X 8
Tipo de salida (5V) (Vp=12.5V)
Tiempos Acceso
de
90/100/120/150 ns
Encapsulado DIL-28
Memoria Flash 27F256 En la figura se indica la disposición de los pines de esta memoria con sus características técnicas básicas.
DIFERENCIA ENTRE MEMORIAS EEPROM Y EPROM FLASH La diferencia de las memorias flash con las EEPROM reside en su velocidad: Son más rápidas en términos de programación y borrado, aunque también necesitan de una tensión de grabado del orden de 12 voltios. Otra diferencia la encontramos en que en las EEPROM se puede borrar de forma selectiva cualquier byte, mientras que en las memorias FLASH sólo admite el borrado total de la misma. Por otra parte esta memorias son bastante más baratas que las EEPROM, debido a que utilizan una tecnología más sencilla y se fabrican con grandes capacidades de almacenamiento. Un dato puede ser significativo: el tiempo de borrado de un byte es del orden de 100 seg. TABLA COMPARATIVA ENTRE MEMORIAS
3.- RESUMEN MEMORIAS PROGRAMABLES MEMORIA ROM (READ ONLY MEMORY) Es una memoria de sólo lectura que se programan mediante máscaras. Es decir, el contenido de las celdas de memoria se almacena durante el proceso de fabricación para mantenerse después de forma irrevocable. Desde el instante en que el fabricante grabo las instrucciones en el Chip, por lo tanto la escritura de este tipo de memorias ocurre una sola vez y queda grabado su contenido aunque se le retire la energía. Se usa para almacenar información vital para el funcionamiento del sistema: en la gestión del proceso de arranque, el chequeo inicial del sistema, carga del sistema operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las tareas encargadas a los programas grabados en ROM. Estos programas forman la llamada BIOS (Basic Input Output System). Junto a la BIOS se encuentra el chip de CMOS donde se almacenan los valores que determinan la configuración hardware del sistema, como tipos de unidades, parámetros de los discos duros, fecha y hora del sistema... esta información no se pierde al apagar la computadora. Estos valores se pueden modificar por medio del SETUP. La ventaja de tener los programas fundamentales del computador almacenados en la ROM es que están allí implementados en el interior del computador y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma en que se carga el DOS. Debido a que están siempre residentes, los programas en ROM son muy a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS). Una ROM puede estar fabricada tanto en tecnología bipolar como MOS. MEMORIA PROM (PROGRAMMABLE READ ONLY MEMORIES) En la PROM (programable ROM), o memoria programable de sólo lectura los contenidos pueden ser leídos pero no modificados por un programa de usuario. Sus contenidos no se construyen, como la ROM, directamente en el procesador cuando éste se fabrica, sino que se crean por medio de un tipo especial “programación”, ya sea por el fabricante, o por especialistas técnicos de programación del usuario. El proceso de programación es destructivo: una vez grabada, es como si fuese una ROM normal. Las operaciones muy importantes o largas que se habían estado ejecutando mediante programas, se pueden convertir en microprogramas y grabarse permanentemente en una pastilla de memoria programable sólo de lectura. Una vez que están en forma de circuitos electrónicos, estas tareas se pueden realizar casi siempre en una fracción del tiempo que requerían antes. La flexibilidad adicional que se obtiene con la PROM puede convertirse en una desventaja si en la unidad PROM se programa un error que no se puede corregir. Para superar esta desventaja, se desarrolló la EPROM, o memoria de solo lectura reprográmale. Para conseguir que la información que se desea grabar sea inalterable, se utilizan dos técnicas: por destrucción de fusible o por destrucción de unión.
El proceso de programación de una PROM generalmente se realiza con un equipo especial llamado quemador. Este equipo emplea un mecanismo de interruptores electrónicos controlados por software que permiten cargar las direcciones, los datos y genera los pulsos para fundir los fusibles del arreglo interno de la memoria. En la figura se indica de forma esquemática la función del programador. a) Las Aplicaciones más importantes: b) Microprogramación c) Librería de subrutinas d) Programas de sistema e) Tablas de función
MEMORIA EPROM Las EPROM, o Memorias sólo de Lectura Reprogramables, se programan mediante impulsos eléctricos y su contenido se borra exponiéndolas a la luz ultravioleta (de ahí la ventanita que suelen incorporar este tipo de circuitos), de manera tal que estos rayos atraen los elementos fotosensibles, modificando su estado. Las EPROM se programan insertando el chip en un programador de EPROM. y aplicando en un pin especial de la memoria una tensión entre 10 y 25 Voltios durante aproximadamente 50 ms, según el dispositivo, al mismo tiempo se direcciona la posición de memoria y se pone la información a las entradas de datos. Este proceso puede tardar varios minutos dependiendo de la capacidad de memoria.
Cuando un dado bit de una celda debe ser cambiado o programado de un 1 a un 0, se hace pasar una corriente a través del canal de transistor desde la fuente hacia la compuerta (obviamente, los electrones siguen el camino inverso). Al mismo tiempo se aplica una relativamente alta tensión sobre la compuerta superior o de control del transistor, creándose de esta manera un campo eléctrico fuerte dentro de las capas del material semiconductor. Ante la presencia de este campo eléctrico fuerte, algunos de los electrones que pasan el canal fuente-compuerta ganan suficiente energía como para formar un túnel y atravesar la capa aislante que normalmente aísla la compuerta flotante. En la medida que estos electrones se acumulan en la compuerta flotante, dicha compuerta toma carga negativa, lo que finalmente produce que la celda tenga un 0. Los tiempos medios de borrado de una EPROM, por exposición a la luz ultravioleta, oscilan entre 10 y 30 minutos. Tal como mencionáramos anteriormente, el proceso de borrado de los datos contenidos en una EPROM es llevado a cabo exponiendo la misma a luz ultravioleta. El punto reside en que la misma contiene fotones (Cuantos de energía electromagnética) de energía relativamente alta.
MEMORIA EEPROM (ELECTRICAL ERASABLE PROGRAMMABLE READ ONLY MEMORY) La memoria EEPROM es programable y borrable eléctricamente y su nombre proviene de la sigla en inglés Electrical Erasable Programmable Read Only Memory . Actualmente estas memorias se construyen con transistores de tecnología MOS ( Metal Oxide Silice ) y MNOS (Metal Nitride-Oxide Silicon ).
Las celdas de memoria en las EEPROM son similares a las celdas EPROM y la diferencia básica se encuentra en la capa aislante alrededor de cada compuesta flotante, la cual es más delgada y no es fotosensible. Las memorias EEPROM ( Electrically Erasable Programmable Read-Only Memory ) son memorias no volátiles y eléctricamente borrables a nivel de bytes. La posibilidad de programar y borrar las memorias a nivel de bytes supone una gran flexibilidad, pero también una celda de memoria más compleja. Además del transistor de puerta flotante anterior, es preciso un segundo transistor de selección. El tener 2 transistores por celda hace que las memorias EEPROM sean de baja densidad y mayor coste. La programación requiere de tiempos que oscilan entre 157 s y 625 s=byte. Frente a las memorias EPROM, presenta la ventaja de permitir su borrado y programación en placa, aunque tienen mayor coste debido a sus dos transistores por celda. Una ventaja adicional de este tipo de memorias radica en que no necesitan de una alta tensión de grabado, sirven los 5 voltios de la tensión de alimentación habitual.
CE
OE
LECTURA
0
0
1
ESCRITURA
0
1
0
WE
Ventajas de la EEPROM: Las palabras almacenadas en memoria se pueden borrar de forma individual. Para borra la información no se requiere luz ultravioleta. Las memorias EEPROM no requieren programador. De manera individual puedes borrar y reprogramar eléctricamente grupos de caracteres o palabras en el arreglo de la memoria. Para reescribir no se necesita hacer un borrado previo. MEMORIA FLASH La memoria FLASH es similar a la EEPROM , es decir que se puede programar y borrar eléctricamente, son de alta densidad (gran capacidad de almacenamiento de bits). Alta densidad significa que se puede empaquetar en una pequeña superficie del chip, gran cantidad de celdas, lo que implica que cuanto mayor sea la densidad, más bits se pueden almacenar en un chip de tamaño determinado. Sin embargo esta reúne algunas de las propiedades de las memorias anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar información y es de fabricación sencilla, lo que permite fabricar modelos de capacidad equivalente a las EPROM a menor costo que las EEPROM. Aparte de que las memorias EPROM "Flash" tienen una entrada de escritura, mientras están funcionando se comportan como las EPROM normales. La única diferencia se encuentra en como se cargan y se borran los datos en la memoria. Mientras que durante el proceso de programación de las memorias EPROM convencionales se necesita una tensión bien definida durante cierto intervalo de tiempo, y para borrar el componente hay que exponerlo a luz ultravioleta, en las E.Flash ambos procesos están controlados y se llevan a cabo internamente. Para tal efecto la memoria recibe una secuencia de comandos predefinida (borrar, programar) que incluye algunas precauciones especiales (determinadas por el fabricante) destinadas a evitar que se borre cualquier dato por error. Durante el proceso de programación o borrado se puede leer, mediante un comando de acceso en "lectura", el estado de la memoria EPROM "Flash" en la misma posición que el byte de programado o borrado. Mientras se borra un sector se puede leer cualquier dirección que pertenezca al sector. APLICACIONES DE LA MEMORIA FLASH La Memoria Flash es ideal para docenas de aplicaciones portátiles. Tomemos como ejemplo las cámaras digitales. Insertando una tarjeta de Memoria Flash de alta capacidad
directamente en la cámara, usted puede almacenar cientos de imágenes de alta resolución. Cuando este listo para bajarlas, simplemente retire la tarjeta y transfiérala a su computadora de escritorio o portátil para su procesamiento. Las tarjetas de Memoria Flash se ajustan a entradas Tipo II (con o sin adaptador, dependiendo del tipo de tarjeta Flash). Ahora esta usted listo para cargar en segundos todas las imágenes capturadas para observarlas, manipularlas, enviarlas por correo electrónico o imprimirlas. Ya nunca necesitara comprar rollos para fotografía. Sea cual sea su aplicación o equipo portátil. Actualmente, los usos de Memoria Flash se están incrementando rápidamente. Ya sean cámaras digitales, Asistentes Digitales Portátiles, reproductores de música digital o teléfonos celulares, todos necesitan una forma fácil y confiable de almacenar y transportar información vital.
TABLA COMPARATIVA ENTRE MEMORIAS
Introducion Los Dispositivos Logicos Programables (PLDs) fueron introducidos a mediados de los 70s. La idea era construir circuitos lógicos combinacionales que fueran programables. Al contrario de los microcontroladores, que pueden correr un programa y poseen un hardware fijo los PLDs permiten la modificación a nivel de hardware. En otras pala bras, un PLD es un chip multi propósito cuyo hardware se puede re configurar para realizar tareas particulares.
El primer PLD fue llamado PAL (Programmable Array Logic). Los PAL solo utilizan compuertas lógicas (sin Flip-Flops), por lo que solo permiten la i mplementación de circuitos combinacionales. Para superar esta limitación luego fueron creados los registered PLDs los cuales incluyen Flip-Flops en cada salida del circuito. Con estos dispositivos es posible implementar funciones secuenciales simples. A comienzos de los 80s, se fueron agregando circuitos lógicos adicionales a las salidas de los PLDs. La nueva celda de salida, llamada Macrocel l, contiene (a parte de Flip-Flops) puertas lógicas y multiplexores. La celda en si es programable, permitiendo varios modos de operación. Adicionalmente provee una señal de retorno o feedback desde la sal ida del cricuito al arreglo programable, lo que le da una mayor flexibilidad. Esta nueva estructura fue llamada generic PAL (GAL).
Todos estos chips (PAL, PLA, registered PLD, GAL/PALCE) son conocidos en conjunto como SPLDs (Simple PLDs). La GAL/PALCE es la única que aun se fabrica en chips independientes. Luego de esto se fabricaron chips con muchas GAL en su interior utili zando una arquitectura mucho más sofisticada, mejor tecnología y muchas otras características adicionales como soporte para JTAG. Estas estructuras son conocidas como CPLD (Complex PLD). Los CPLD son bastante populares por su alta densidad de puertas, alto perf ormance y bajo costo. Finalmente a mediados de los 80s fueron introducidas las FPGA, las cuales difieren de los CPLD en su arquitectura, tecnología y costos. Estos dispositivos fueron creados principalmente para la implementación de circuitos de alto rendimiento. Todos los PLDs son no volátiles. Pueden ser OTP (one time programmable) en cuyo caso son utilizados fusibles o anti fusibles o pueden ser re programables, con EEPROM o memoria FLASH. Las FPGAs por otro lado son la mayoría volátiles puesto que utilizan SRAM para almacenar las conexiones en estos casos generalmente se utiliza un ROM externa para almacenar la configuración inicial al momento del encendido. Historia A mediados de los años setenta se produce una fuerte evolución en los procesos de fabricación de los circuitos integrados, y junto a las tecnologías bipolares, surge la MOS (metal oxide semiconductor), principalmente la NMOS, promoviendo el desarrollo de circuitos digitales hasta la primera mitad de los años ochenta. En aquellas épocas, el esfuerzo de diseño se concentraba en los niveles eléctricos para establecer características e interconexiones entre los componentes básicos a nivel de transistor. El proceso de diseño era altamente manual y tan solo se empleaban herramientas como el PSPICE para simular esquemas eléctricos con modelos previamente personalizados a las distintas tecnologías. A medida que pasaban los años, los procesos tecnológicos se hacían más y más complejos. Los problemas de integración iban en aumento y los diseños eran cada vez más difíciles de depurar y de dar mantenimiento. Inicialmente los circuitos i ntegrados de MSI (Morrad Scale Integration) y LSI (Low Scale Integration) se diseñaban mediante la realización de prototipos basados en módulos muy sencillos. Cada uno de estos módulos estaba formado por puertas lógicas ya probadas, este método poco a poco, iba quedándose obsoleto. En ese momento (finales de los años setenta) se constata el enorme desfase que existe entre tecnología y diseño. Alrededor de 1981 el Departamento de Defensa de los Estados Unidos desarrolla un proyecto llamado VHSIC (Very High Speed Integrated Circuit) su objetivo era rentabiliz ar las inversiones en hardware haciendo más sencillo su mantenimiento. Se pretendía con ello resolver el problema de modificar el hardware diseñado en un proyecto para utilizarlo en otro, lo que no era posible hasta entonces porque no existía una herramienta adecuada que armonizase y normalizase dicha tarea, era el momento de los HDL’s. El desarrollo de la electrónica digital moderna a finales del siglo pasado y principios de este trajo consigo que las técnicas de miniaturización de los elementos se fueran desarrollando cada vez más obteniendo un alto nivel de integración en los elementos, trayendo consigo un gran número de ventajas , por citar algunas tenemos: No necesitan voltajes de alimentación muy elevados, ni grandes consumos de corriente por lo que las fuentes de alimentación son pequeñas y de poca potencia
En la metodología de diseño las dimensiones topológicas de las estructuras han disminuido, llevando todo esto a una reducción de los costos Debido a la reducción de sus costos de diseños que llevó consigo el constante desarrollo del software y el hardware trajo aparejado el surgimiento después de varios años de los dispositivos lógicos programables o PLD´s dentro de ellos las FPGA´s (Field – Progammable Gate Arrays). Ventajas de los PLD Los PLD´s están desplazando, cada vez más, a la lógica discreta y a otros tipos de circuitos ASIC debido a las múltiples ventajas que ofrecen. Algunas de estas son: Pueden reemplazar a varios componentes discretos, reduciendo con ello el número de circuitos integrados a utilizar. Esto a su vez supone: Reducción de espacio. Reducción del número de conexiones. Reducción de la potencia de consumo. Disminución del coste. Aumento de la fiabilidad. La mayor parte de ellos ofrecen una gran flexibili dad al permitir reprogramar el circuito lógico a la medida, pudiendo obtener diferentes configuraciones para un mismo dispositivo. Esta posibilidad que brindan algunos PLD´s de ser reprogramados, permite que se elimine el riesgo de errores a la hora de la grabación. Se reducen los costos de stock, al poder utilizar el mismo dispositivo para aplicaciones distintas, sin más que hacer programaciones distintas. Gran facilidad de diseño porque las herramientas disponibles para este fin simplifican considerablemente el proceso de diseño, haciendo que la implementación al más bajo nivel sea transparente para el usuario. El sistema de desarrollo consiste en un software de diseño y un programador, donde el software, es en esencia, un ensamblador que transforma el dis eño de alto nivel que hace el usuario (ecuaciones booleanas, tablas de la verdad, diagramas de estado y esquemáticos) a bajo nivel o nivel de programación del dispositi vo. Además los software que existen en el mercado disponen de simulador, lo que permite hacer depuraciones del diseño antes de programar el componente. Desventajas de los PLD Algunos aspectos negativos a señalar en estos cir cuitos vienen dado en que las técnicas de los circuitos impresos cambian considerablemente, la selección del encapsulado no es trivial, las conexiones entre terminales son muy pequeñas y surge la necesidad de uti lizar una circuitería adicional para el control de la calida. Estructura básica de una PLD La estructura básica de una PLD permite realizar cualquier tipo de circuito combinacional basándose en una matriz formada por puertas AND, seguida de una matriz de puertas OR. Tres son los tipos más extendidos de PLD’s, la PROM, PLA, y la GAL.
El uso de ROMs como PLDs[editar · editar código] Antes de que se inventasen las PLDs, los chips de memoria de solo lectura (ROM ) se utilizaban para crear funciones de lógica combinacional arbitrarias con un número determinado de entradas. Considerando una ROM con m entradas, a las que se denomina líneas de dirección; y con n salidas, a las que se denomina líneas de palabras de n bits. datos. Cuando se utiliza como memoria, la ROM contiene
Supongamos que las entradas no son direccionadas por una dirección de m-bits, sino por m señales lógicas independientes. Teóricamente, hay funciones booleanasposibles de estas m señales, pero la estructura de la ROM permite solo producir n de estas funciones en los pines de salida. Por lo tanto, en este caso, la ROM se vuelve un equivalente de ncircuitos lógicos separados, cada uno generando una función elegida de las m entradas. La ventaja de utilizar una ROM de esta forma es que cualquier función concebible de las m entradas puede ser colocada por las n salidas, haciendo este el dispositivo lógico combinacional de mayor propósito general disponible. También las PROMs (ROMs programables), EPROMs (PROMs de borrado por ultravioleta) y EEPROMs (PROMs de borrado eléctrico) disponibles pueden ser programadas de esta manera con un programador PROM hardware o software. Sin embargo, existen varias desventajas:
Son bastante más lentas que los circuitos lógicos dedicados. No necesariamente pueden proveer de "protección" ante transiciones lógicas asíncronas. Consumen mayor potencia. Sólo se utiliza una pequeña fracción de su capacidad en una sola aplicación: un uso ineficiente del espacio. Por si solas no pueden ser utilizadas para circuitos de lógica secuencial, puesto que no contienen biestables. Para realizar algunos circuitos secuenciales (como máquinas de estado) se utilizaba un registro TTL externo.
Las EPROMs comunes (como la 2716), se siguen utilizando a veces de esta forma por gente que tiene como hobby el diseño de circuitos, ya que a menudo tienen algunas sueltas. A las ROM utilizadas de esta manera se las conoce como la "PAL del pobre".
Lógica programable temprana[editar · editar código] En 1970, Texas Instruments desarrolló un CI de máscara programable basado en la memoria asociativa de sólo lectura ( ROAM ) de IBM. Este dispositivo, el TMS2000, era programado alterando la capa metálica durante la producción del CI. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 biestables JK como memoria. Texas Instruments acuño el término Programmable logic array para este dispositivo. En 1973 National Semiconductor introdujo un dispositivo PLA de máscara programable (DM7575) con 14 entradas y 8 salidas sin registros de memoria. Este era más popular que el de Texas Instruments, pero el coste de hacer la máscara metálica limitaba su uso. El dispositivo es significativo por ser la base de la FPGA (Field Programmable Logic Array ) producido por Signetics en 1975, el 82S100.
En 1971, General Electric desarrollaba un PLD basado en la nueva tecnología PROM. Este dispositivo experimental mejoró el ROAM de IBM permitiéndole realizar lógica multinivel. Intel acababa de introducir la PROM de puerta flotante borrable por UV por lo que los desarrolladores en General Electric incorporaron esa tecnología. El dispositivo de General Electric era el primer PLD jamás desarrollado, antecesora del EPLD de Altera en una década. General Electric obtuvo varias patentes tempranas en PLDs. En 1974, General Electric firmó un acuerdo con Monolithic Memories para desarrollar un PLD de máscara programable incorporando las innovaciones de General. El dispositivo se bautizó como Programmable Associative Logic Array (PALA, matriz lógica asociativa programable). El MMI 5760 fue terminado en 1976 y podía implementar circuitos multinivel o secuenciales de más de 100 puertas. El dispositivo estaba soportado por el entorno de desarrollo de General, donde las ecuaciones Booleanas podían ser convertidas a patrones de máscara para configurar el dispositivo. El integrado nunca se comercializó (hasta ahora debido a lo antes comentado).
PAL[editar · editar código] MMI introdujo un dispositivo revolucionario en 1978, la Programmable Array Logic (Matriz lógica programable). La arquitectura era más sencilla que la FPLA de Signetics porque omitía la matrizOR programable. Esto hizo los dispositivos más rápidos, más pequeños y más baratos. Estaban disponibles en encapsulados de 20 pines y DIP de 300 milésimas de pulgada, mientras que las FPLAs venían en encapsulados de 28 pines y DIP de 600 milésimas de pulgada. Ciertas publicaciones sobre PALs desmitificaban el proceso de diseño. El software de diseño PALASM (PAL Assembler , ensamblador PAL) convertía las ecuaciones Booleanas de los ingenieros en el patrón de fusibles requerido para programar el dispositivo. Los PAL de MMI pronto fueron distribuidos por National Semiconductor, Texas Instruments y AMD. Tras el éxito de MMI con los PAL de 20 pines, AMD introdujo los 22V10 de 24 pines con características adicionales. Tras comprar a MMI (1987), AMD desarrolló una operación consolidada como Vantis, adquirida por Lattice Semiconductor en 1999. También hay PLAs : Programmable Logic Array.
GALs[editar · editar código] Artículo principal:
Generic array logic .
Lattice GAL 16V8 y 20V8.
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 l a 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 · editar código] 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 f ija de una PAL.
CPLDs[editar · editar código] Artículo principal:
CPLD.
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 oCPLDs. 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[editar · editar código] Artículos principales:
FPGA y Field programmable gate array .
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 (literamente 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.
Otras variantes[editar · editar código] Actualmente, existe bastante interés en sistemas reconfigurables. Estos sistemas se basan en circuitos microprocesadores y contiene algunas funciones prefijadas y otras que pueden ser alteradas por código en el procesador. Para diseñar sistemas que se auto-alteren, es necesario que los ingenieros aprendan nuevos métodos y que nuevas herramientas de software se desarrollen. Las PLDs que se venden actualmente, contienen un microprocesador con una función prefijada (el núcleo) rodeado con dispositivos de lógica programable. Estos dispositivos permiten a los diseñadores concentrarse en añadir nuevas características a los diseños sin tener que preocuparse de hacer que funcione el microprocesador.
Almacenamiento de la configuración en las PLDs[editar · editar código] Una PLD es una combinación de un dispositivo lógico y una memoria. La memoria se utiliza para almacenar el patrón el que se le ha dado al chip durante la programación. La mayoría de los métodos para almacenar datos en un circuito integrado han sido adaptados para el uso en PLDs. Entre estos se incluyen:
antifusibles de silicio. SRAMs. Células EPROM o EEPROM. Memoria flash.
Los antifusibles de silicio son elementos de almacenamiento utilizados en las PAL, el primer tipo de PLD. Estos antifusibles se encargan de formar conexiones mediante la aplicación de voltaje en un área modificada del chip. Se le llama antifusibles porque funcionan de manera opuesta a los fusiles normales, los cuales permiten la conexión hasta que se rompen por exceso de corriente eléctrica. Las SRAM, o RAM estáticas, son un tipo volátil de memoria, lo que quiere decir que su contenido se pierde cada vez que se desconectan. Las PLDs basadas en SRAM tíenen que ser programadas cada vez que el circuito se enciende. Generalmente esto lo hace otra parte del circuito. Una célula EPROM es un transistor MOS (metal-óxido-semiconductor ) que puede activarse atrapando una carga eléctrica permanentemente en su puerta, cosa que realiza un programador PAL. La carga permanece durante algunos años sólo puede ser eliminada exponiendo al chip a una luz ultravioleta fuerte en un dispositivo llamado borrador EPROM.
Las memorias flash son no volátiles, por lo que retienen sus contenidos incluso cuando se les corta la alimentación. Puede ser borradas y reprogramadas tanto como sea necesario, lo que las hace útiles para las memorias PLD. A partir de 2005, la mayoría de las CPLDs son del tipo EEPROM y no volátiles. Esto se debe a que son demasiado pequeñas para justificar lo poco conveniente que es la programación interna de celdas SRAM cada vez que se inician, y lo costoso de las células EPROM debido a su encapsulado cerámico con una ventana de cuarzo.
Lenguajes de programación de PLDs[editar · editar código] Varios dispositivos de programación de PALs admiten la entrada mediante un formato estándar de archivo, denominados comúnmente como 'archivos JEDEC'. Son análogos a los compiladoressoftware. Los lenguajes utilizados como código fuente para compiladores lógicos se denominan lenguajes de descripción de hardware (HDLs). PALASM y ABEL se utilizan frecuentemente para dispositivos de baja complejidad, mientras que Verilog y VHDL son lenguajes de descripción de hardware de alto nivel muy populares para dispositivos más complejos. El más limitado ABEL se usa normalmente por razones históricas, pero para nuevos diseños es más popular VHDL, incluso para diseños de baja complejidad.
CPLD Un CPLD (del acrónimo inglés Complex Programmable Logic Device) es un dispositivo electrónico. Los CPLD extienden el concepto de un PLD (del acrónimo inglés Programmable Logic Device) a un mayor nivel de integración ya que permite implementar sistemas más eficaces, ya que utilizan menor espacio, mejoran la fiabilidad del diseño, y reducen costos. Un CPLD se forma con múltiples bloques lógicos, cada uno similar a un PLD. Los bloques lógicos se comunican entre sí utilizando una matriz programable de interconexiones, lo cual hace más eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor costo. A continuación se explican brevemente las principales características de la arquitectura de un CPLD.
Índice [ocultar ]
1 Arquitectura o
1.1 Matriz de Interconexiones Programables
o
1.2 Bloques Lógicos
o
1.3 Macroceldas
o
1.4 Celda de entrada/salida
o
1.5 CPLD MAX 7000
2 Fabricantes de CPLD
3 Véase también
4 Referencias
Arquitectura[editar · editar código] Matriz de Interconexiones Programables[editar · editar código]
Procesador de un CPLD de la marca Altera. La matriz de interconexiones programables (PIM) permiten unir los pines de entrada/salida a las entradas del bloque lógico, o las salidas del bloque lógico a las entradas de otro bloque lógico o inclusive a las entradas del mismo. La mayoría de los CPLDs usan una de dos configuraciones para esta matriz: interconexión mediante bloques o interconexión mediante multiplexores. El primero se basa en una matriz de filas y columnas con una celda programable de conexión en cada intersección. Al igual que en las GAL esta celda puede ser activada para conectar/desconectar la correspondiente fila y columna. Esta configuración permite una total interconexión entre las entradas y salidas del dispositivo o bloques lógicos. Sin embargo, estas ventajas provocan que disminuya el rendimiento del dispositivo, además de aumentar el consumo de energía y el tamaño del componente. En la interconexión mediante multiplexores, existe un multiplexor por cada entrada al bloque lógico. Las vías de interconexión programables son conectadas a las entradas de un número de multiplexores por cada bloque lógico. Las líneas de selección de estos multiplexores son programadas para permitir que sea seleccionada únicamente una vía de la matriz de interconexión por cada multiplexor la cual se propagara a hacia el bloque lógico. Cabe mencionar que no todas las vías son conectadas a las entradas de cada multiplexor. La rutabilidad se incrementa usando multiplexores de mayor tamaño, permitiendo que cualquier combinación de señales de la matriz de interconexión pueda ser enlazada hacia cualquier bloque lógico. Sin embargo, el uso de grandes multiplexores incrementa el tamaño de dispositivo y reduce su eficiencia.
Bloques Lógicos[editar · editar código] Un bloque lógico es similar a un PLD, cada uno pose un bloque de compuertas AND y OR en forma de suma de productos, una configuración para la distribución de estas sumas de productos, y macroceldas. El tamaño del bloque lógico es una medida de la capacidad del CPLD, ya que de esto depende el tamaño de
la función booleana que pueda ser implementada dentro del bloque. Los bloques lógicos usualmente tienen de 4 a 20 macroceldas.
Macroceldas[editar · editar código] Las macroceldas de un CPLD son similares a las de un PLD. Estas también están provistas con registros, control de polaridad, y buffers para salidas en alta impedancia. Por lo general un CPLD tiene macroceldas de entrada/salida, macroceldas de entrada y macroceldas internas u ocultas (buried macrocells), en tanto que un 22V10 tiene solamente macroceldas de entrada/salida. Una macrocelda interna es similar a una macrocelda de entrada/salida, sólo que esta no puede ser conectada directamente a un pin de salida. La salida de una macrocelda interna va directamente a la matriz de interconexión programable.
Celda de entrada/salida[editar · editar código] La función de una celda de entrada/salida es permitir el paso de una señal hacia dentro o hacia el exterior del dispositivo. Dependiendo del fabricante y de la arquitectura del CPLD estas celdas pueden o no ser consideradas parte del bloque lógico.
CPLD MAX 7000[editar · editar código] Su Arquitectura de un CPLD es la forma en que están organizados y a la disposición a los elementos internos del dispositivo. Son similares al diagrama de bloque de un CPLD genérico, Teniendo la estructura clásica PAL/GAL que nos permite generar las funciones suma de producto. Su densidad varía entre dos bloques LAB y 16 bloques LAB, dependiendo del dispositivo concreto de la serie que se vaya a utilizar .1
Un bloque LAB es similar a un SPLD y que el tamaño de los encapsulados varían entre 44 y 208 pines, cabe mencionar que utilizan una tecnología de proceso basada en EEPROM. Las versiones que se pueden programar dentro del sistema para ello se utilizan la interfaz estándar JTAG.2
Fabricantes de CPLD[editar · editar código]
Altera
Atmel
Cypress Semiconductor
Lattice Semiconductor
Xilinx