Download módulo nº8
Document related concepts
no text concepts found
Transcript
MÓDULO Nº8 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. DESARROLLO DE TEMAS 1. Concepto de Memoria: 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. Realizado por: Ing. José Trelles 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 256 casillas, cada una capaz de almacenar un dato de 8 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: Realizado por: Ing. José Trelles • 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 “1” 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: 2. 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 10 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: Realizado por: Ing. José Trelles 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 4Kbytes (4096 casillas cada una de ocho bits) necesitaría un decodificador de 12 a 4096, sin embargo si se utiliza el esquema de matriz se podría utilizar dos decodificadores de 6 a 64. Una memoria SRAM muy popular en el diseño de aplicaciones sencillas a intermedias, es el HM6116, que es una memoria de 2Kbytes x 8 (2048 casillas de 8 bits cada una). Su distribución de pines se muestra a continuación junto con su tabla de verdad: HM6116 Realizado por: Ing. José Trelles CS: OE: WE: MODO: I/O 1 X X Deshabilitado Hi-Z 0 0 1 Lectura Out 0 1 0 Escritura In 3. 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: Realizado por: Ing. José Trelles 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 1000 a 10000 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 2716, que es una memoria de 2Kbytes x 8 (2048 casillas de 8 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 HM6116. 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 (25V) a través de este pin. Para funcionamiento normal, dicho pin debe ser conectado a 5V. Realizado por: Ing. José Trelles EJERCICIOS 1. Analice y explique el funcionamiento de los esquemas al final de este documento. Realizado por: Ing. José Trelles +5 U1 RST THR CVOLT TRIG GND LM555 VCC DISC OUT 8 7 3 3 7 8 +5 +5 MANUAL / AUTO VCC DISC OUT 10K S4 8 15 1 10 9 11 4 5 14 8 15 1 10 9 11 4 5 14 TC RCO U3 LD EN U/D CLK Q0 Q1 Q2 Q3 GND 74LS191 TC RCO U4 LD EN U/D CLK Q0 Q1 Q2 Q3 74LS191 GND P0 P1 P2 P3 VCC P0 P1 P2 P3 VCC +5 16 12 13 3 2 6 7 +5 16 12 13 3 2 6 7 DS9 R18 330 R19 330 DS11 S1 R3 10K +5 DS10 WRITE JUEGO DE LUCES PROGRAMABLE V1 R10 10K 4 6 5 2 1 U2 RST THR CVOLT TRIG GND +5 2 R16 3 S8 R17 330 C1 104 18 20 21 8 7 6 5 4 3 2 1 23 22 19 12 DS12 R20 330 U5 S2 R4 10K +5 CE OE WE A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 GND HM6116 DS13 R21 330 24 9 10 11 13 14 15 16 17 DATA0 DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 +5 RAM_OUT_ENABLE C2 104 VCC DQ0 DQ1 DQ2 DQ3 DQ4 DQ5 DQ6 DQ7 DATA0 DS1 DATA1 DS2 DATA2 DS3 DATA3 DS4 DATA4 DS5 DATA5 DS6 DATA6 DS7 20 19 16 15 12 9 6 5 2 DATA7 DS8 DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 +5 R1 330 R2 330 R5 330 R6 330 R7 330 R8 330 R11 330 R12 330 GND D8 D7 D6 D5 D4 D3 D2 D1 U6 Q8 Q7 Q6 Q5 Q4 Q3 Q2 Q1 CLK OE S6 R14 10K +5 VCC 74LS374 LATCH_OUT_ENABLE 10 18 17 14 13 8 7 4 3 11 1 C5 104 16 15 14 13 12 11 10 9 LOAD +5 R15 10K S7 C6 104 1 2 3 4 5 6 7 8 R9 10K S3 NEXT C8 10uF R13 10K 4 6 5 2 1 LM555 RESET C7 104 Realizado por: Ing. José Trelles +5 R22 S5 8 x 10K 1 2 3 4 5 6 7 8 DATA_IN 16 15 14 13 12 11 10 9 Realizado por: Ing. José Trelles C3 104 R23 100K C4 104 * Para generar secuencias más largas se puede utilizar las 3 salidas del segundo contador y conectarlas a las respectivas líneas de dirección de la memoria RAM. 1 R2 100K R1 10K C1 104 4 6 5 2 1 U1 RST THR CVOLT TRIG GND LM555 VCC 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. 8 7 3 +5 +5 R3 10K S1 C2 104 11 4 5 14 15 1 10 9 8 11 4 5 14 15 1 10 9 8 U2 LD EN U/D CLK P0 P1 P2 P3 GND 74LS191 VCC TC RCO Q0 Q1 Q2 Q3 TC RCO U3 LD EN U/D CLK Q0 Q1 Q2 Q3 VCC P0 P1 P2 P3 GND 74LS191 +5 16 12 13 3 2 6 7 +5 16 12 13 3 2 6 7 Realizado por: Ing. José Trelles 12 20 18 8 7 6 5 4 3 2 1 23 22 19 U4 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 OE CS GND SMJ27C16 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 VPP VCC 9 10 11 13 14 15 16 17 21 24 +5 JUEGO DE LUCES PROGRAMABLE V2 RESET DS1 DS2 DS3 DS4 DS5 DS6 DS7 DS8 R4 330 R5 330 R6 330 R7 330 R8 330 R9 330 R10 330 R11 330 Realizado por: Ing. José Trelles