MÓDULO Nº MEMORIAS SEMICONDUCTORAS UNIDAD: LÓGICA PROGRAMABLE TEMAS: Concepto de Memoria. Memorias RAM. Memorias ROM. OBJETIVOS: Entender la diferencia entre lógica cableada y lógica programable. Explicar el funcionamiento y las características de las memorias RAM. Explicar el funcionamiento y las características de las memorias ROM.. Concepto de Memoria: DESARROLLO DE TEMAS Hasta este punto se ha estudiado y analizado los circuitos y aplicaciones de diferentes sistemas tales como: codificadores, sumadores, registros, contadores, etc., mismos que abarcaban los campos de la lógica combinacional y la lógica secuencial, o en términos reducidos, el campo de la lógica cableada. En este sentido, la lógica cableada, se caracteriza por los siguientes hechos: Para cada aplicación, se necesita un diseño específico. Si se debe realizar un cambio en una secuencia o en el resultado de un estado del sistema, se debe reestructurar todo el diseño. El diseño puede resultar complejo y con un número considerable de circuitos integrados. Debido a su complejidad, es más fácil cometer errores de conexión y por ende es más difícil su análisis en caso de fallas. La implementación tecnológica del concepto de memoria revoluciona, por completo, el diseño de circuitos digitales utilizando la lógica cableada, dando origen a la llamada lógica programable. En la lógica programable, cada estado o cada secuencia del circuito a diseñar, se encuentra almacenado dentro un dispositivo llamado memoria. Una memoria, en su forma más sencilla, es el resultado de agrupar un gran número de FLIP-FLOP s (unidad básica de almacenamiento de un bit), en un solo circuito integrado. Básicamente, una memoria, podría ser vista como un estante en la que cada separación guarda un cierto número de bits, tal como se muestra en la página siguiente.
Esta representación matricial de la memoria, también puede ser observada un forma lineal, en decir, las casillas han sido ordenadas una a continuación de otra. A continuación se presenta la estructura lógica interna de una memoria sencilla de casillas, cada una capaz de almacenar un dato de bits: Observe que la función del decodificador, es la de habilitar una casilla de memoria para cada código binario de ocho bits que a su vez representa la dirección de la casilla. El dato almacenado en dicha casilla, es enviado a un registro de almacenamiento, para posteriormente ser utilizado por los circuitos externos. Si bien la representación lógica interna, nos provee mucha información acerca de la operación interna de una memoria, es más común la utilización de la representación lógica de la memoria, pero como un bloque funcional, tal como se muestra en la siguiente figura, en donde también se muestra el respectivo conjunto de líneas básicas para operar la memoria:
Bus de Direcciones: Por intermedio de este bus o grupo de líneas, se generan las direcciones que apuntan hacia cualquier posición de memoria. Bus de Datos: El contenido de cada una de las casillas de la memoria, puede ser extraído o alterado por medio de estas líneas, por tal motivo estas líneas son bidireccionales o tri-state (tres estados), ya que para una operación de lectura actúan como salidas y para una operación de escritura actúan como entradas. CS (Chip Select: Selección de Integrado): En sistemas complejos es normal la utilización de varias memorias, por lo que a fin de evitar posibles corto circuitos, se requiere una línea de selección que boquee o habilite a un dispositivo específico. Esta es la función de esta línea, que cuando esta en estado lógico 0 habilita todas las funciones internas de la memoria. WE (Write Enable: Habilitador de Escritura): Mediante esta línea se indica a la memoria el tipo de operación a realizarse: 0 indica una operación de escritura por lo que el bus de datos actúa como entrada, en cambio indica una operación de escritura por lo que el bus de datos actúa como salidas. Las memorias también pueden ser clasificadas en varias familias de dispositivos con características únicas, sin embargo, a grandes rasgos, las memorias se clasifican en memorias RAM y ROM, mismas que se analizan a continuación:. Memorias RAM: Las memorias RAM (Random Access Memory: Memoria de Acceso Aleatorio), son memorias con tiempos de lectura y escritura muy cortos, es decir, son dispositivos de fácil lectura y escritura, y capaces de trabajar a altas velocidades, por lo que son ampliamente utilizados en aplicaciones tales como: captura de datos desde conversores analógicos digitales, generación de ondas con conversores digitales analógicos, transferencia de datos en sistemas microprocesados, etc. Sin embargo su principal desventaja es que son dispositivos volátiles, es decir, solo pueden retener la información grabada en sus casillas mientras el chip este recibiendo alimentación, caso contrario, dicha información es alterada y el estado en el que empiecen las casillas es desconocido. Las memorias RAM se clasifican a su vez en memorias SRAM (Static RAM: RAM Estática) y memorias DRAM (Dynamic RAM: RAM Dinámica). Las SRAM se caracterizan por ser memorias muy rápidas, sin embargo su costo es elevado y su capacidad de almacenamiento es reducida. Su unidad de almacenamiento básica es el FLIP-FLOP. Las DRAM por otra parte no son tan rápidas como las SRAM, pero compensan esta desventaja elevando el factor de almacenamiento hasta 0 veces el de una SRAM. Su unidad de almacenamiento es un condensador, por lo que constantemente requieren un sistema adicional que este recargando a los condensadores internos, de aquí el nombre de RAM dinámica. Por simplicidad se analizará solo las memorias SRAM. A continuación se muestra la estructura interna genérica de este dispositivo:
Observe que las casillas estan organizadas en forma de una matriz, la razón de esto es la de disminuir el número de salidas necesarias del decodificador. Como ejemplo una memoria de Kbytes (0 casillas cada una de ocho bits) necesitaría un decodificador de a 0, sin embargo si se utiliza el esquema de matriz se podría utilizar dos decodificadores de a. Una memoria SRAM muy popular en el diseño de aplicaciones sencillas a intermedias, es el HM, que es una memoria de Kbytes x (0 casillas de bits cada una). Su distribución de pines se muestra a continuación junto con su tabla de verdad: HM CS: OE: WE: MODO: I/O X X Deshabilitado Hi-Z 0 0 Lectura Out 0 0 Escritura In
. Memorias ROM: Las memorias ROM (Read Only Memory: Memoria de solo lectura), como su nombre lo indica, son memorias en las cuales los datos grabados ya no pueden ser modificados en línea (operación normal del sistema), únicamente pueden ser leídos. Debido a esto, es común utilizar estos dispositivos para almacenar información importante o que no se requiera que cambie durante un largo periodo de tiempo, tales aplicaciones son por ejemplo la BIOS de una computadora, dado que es donde se guarda la configuración inicial de todo el sistema, generadores de caracteres, en donde todos los códigos de los caracteres presentados están grabados permanentemente, programas para sistemas microprocesados, etc. Debido a esta característica, se dice que estos dispositivos son no volátiles, es decir, la información almacenada en ellos no se pierde al desconectar la alimentación del sistema. Para lograr esto, la unidad de almacenamiento básica dentro de una memoria ROM, recibe el nombre de fusible, dado que teóricamente, el proceso de grabado consiste en quemar fusibles determinados que al final constituirán el conjunto de datos almacenados. Esto se explica mejor en la siguiente figura: ROM SIN GRABAR ROM GRABADA Como se observa, al conectar o desconectar la alimentación los fusibles permanecen en sus estados previos. Debido a que estas memorias solo se utilizan para lectura, su diagrama lógico es más reducido, como se muestra a continuación:
Las ROM a su vez se clasifican en las siguientes familias: ROM (Read Only Memory): Estas memorias son quemadas en el momento mismo de fabricación, obteniéndose como ventaja una reducción en el costo por memoria. PROM (Programmable ROM): En este caso, se trata de ROM que pueden ser programadas por el usuario, pero una sola vez. UVEPROM (Ultra Violet Erasable PROM): Son memorias que pueden ser grabadas y borradas un cierto número de veces (entre 000 a 0000 veces) por el usuario. Para tal motivo disponen de una ventana sobre el chip interno, que permite el ingreso de luz ultravioleta, gracias a la cual se puede restaurar los fusibles quemados. A pesar de que se puede borrar su contenido, como las memorias RAM, no son dispositivos en línea, es decir, que pueden ser modificados durante la operación normal del dispositivo. EEPROM (Electrically Erasable PROM): A diferencia de las anteriores, estas se borran eléctricamente. En la actualidad son más utilizadas este tipo, ya que no corren el riesgo de borrado accidental, debido a exposición a la luz del día. Una memoria UVPROM muy popular en el diseño de aplicaciones sencillas a intermedias, es el, que es una memoria de Kbytes x (0 casillas de bits cada una). Su distribución de pines se muestra a continuación: OE CS La función de los pines OE (Output Enable) y CS (Chip Select), es similar a la de la memoria RAM HM. Por otra parte la línea VPP, se utiliza como línea de grabado. Cada vez que se requiere quemar un fusible, se debe aplicar un pulso elevado de voltaje (V) a través de este pin. Para funcionamiento normal, dicho pin debe ser conectado a V.
EJERCICIOS. Analice y explique el funcionamiento de los esquemas al final de este documento.
R 0K S NEXT * Para generar secuencias más largas se puede utilizar las salidas del segundo contador y conectarlas a las respectivas líneas de dirección de la memoria RAM. C 0 R R R R0 R RESET S LATCH_OUT_ENABLE 0K DS DS0 DS DS DS R LS LS 0 C 0 LM OUT 0 P0 P P P Q Q Q R 00K U RST THR CVOLT TRIG TC RCO HM DISC R 0K U LD EN U/D DATA DATA DATA DATA DATA DATA DATA DATA0 Q Q Q Q Q Q Q Q LS LM A0 A A A A A A A A A A0 MANUAL / AUTO S D DQ DQ DQ DQ DQ DQ DQ OUT DATA0 0 DATA DATA DATA DATA DATA DATA DATA U 0 P0 P P P Q Q Q C 0 C 0uF U RST THR CVOLT TRIG TC RCO DISC U CE 0 OE WE DATA DS U LD EN U/D DATA DS R0 0K DATA DS DATA DS C 0 C 0 DATA DS WRITE S S RAM_OUT_ENABLE JUEGO DE LUCES PROGRAMABLE V DATA DS R 0K R 0K DATA DS DATA0 DS C 0 LOAD C 0 S S R 0K R 0K OE D D D D D D D D 0 0 R R R R R R R R R x 0K S DATA_IN 0
R 00K R 0K C 0 U RST THR CVOLT TRIG LM DISC OUT * Para generar secuencias más largas se puede conectar un tercer contador y conectarlo a las respectivas líneas de dirección de la memoria UVEPROM. RESET JUEGO DE LUCES PROGRAMABLE V U LD EN U/D P0 P 0 P P LS U LD EN U/D P0 P 0 P P LS TC RCO Q Q Q TC RCO Q Q Q U A0 A A A A A A A A A A0 0 OE CS SMJC VPP Q Q Q Q Q Q Q 0 R 0K S C 0 DS DS DS DS DS DS DS DS R R R R R R R0 R