Sistemas Digitales Memoria ROM (Read-Only Memory) Memoria de sólo lectura Circuito es matriz bidimensional de 0s y 1s Dispositivo programable que se fija sólo una vez y después solo puede ser leído ROMs, PALs y PLAs Mario Medina C. mariomedina@udec.cl Memoria ROM (Read-Only Memory) Almacenamiento en ROM es no volátil Esquema funcional de una ROM El decodificador selecciona sólo una de las filas para ser leída Los datos de esa fila son enviados a las líneas de salida Permanece si se desenergiza el circuito Cada fila del arreglo se llama palabra ó word Éstas se identifican mediante una ubicación única llamada dirección de memoria El número de columnas es llamado el ancho de bit o tamaño de la palabra Generalmente potencias de 2 n líneas de dirección Esquema interno de una ROM Decodificador Transistores conectados a H ó L n 2 -1 Decodificador i Palabra 0011 j Palabra 1010 0 n-1 Matriz de memoria 2n líneas de palabras 2n palabras de m bits m líneas de salida Esquema funcional de una ROM Desde el punto de vista de las funciones booleanas, cada fila corresponde a un minitérmino de una función de n entradas Cada uno de los m bits de la palabra permite guardar los valores de salida asociados a un minitérmino para una función dada +5V +5V +5V +5V 0 Casi todas las ROMS de hoy en día son reprogramables Proceso de programación suele ser costoso Uso principal es la lectura de datos estáticos Bits Se pueden almacenar las tablas de verdad de m funciones de n variables Dirección © 2014 Mario Medina C. 1 Sistemas Digitales Ejemplo de implementación con ROM Address A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F0 0 1 0 0 1 1 0 0 F1 0 1 1 0 0 0 0 1 F2 1 1 0 0 1 0 0 0 F3 0 0 0 1 1 0 1 0 Esquema general de implementación con ROM Word Contents ROM 8 w ords ¥by 4 bits F0 A B C A B C A B C F1 A B C A B C A B C F2 A B C A B C A B C F3 A B C A B C A B C A B C F0 address F1 F2 F3 outputs Implementaciones con ROM Implementaciones con ROM ROM guarda directamente tabla de verdad de una función facilitando el diseño A diferencia de lo observado con los MUX y DEMUX, no impone limitantes en el tamaño de las funciones La memoria 27512 EPROM contiene 256 palabras de 8 bits Tiempo de diseño reducido No requiere proceso de minimización Bueno para gran número de entradas Permite implementar 8 funciones de 8 variables en un chip de 28 pines Ejemplo: Conversor hexadecimal a código ASCII Ventajas de implementación con ROM No hay muchos términos compartidos entre las funciones Desventajas de implementación de ROM El tamaño se duplica con cada entrada adicional No aprovecha los términos superfluos Tipos de ROM ROM de máscara Contenido viene determinado de fábrica ROM programables (PROM) Programables una sola vez UV EPROM borrables con luz ultravioleta ROM eléctricamente borrables (EEPROM) © 2014 Mario Medina C. Programables y borrables con circuitos especiales Sólo un número limitado de veces Son la base de las memorias Flash 2 Sistemas Digitales Familia de memorias ROM Arreglos de puertas lógicas Bloques funcionales prefabricados que contienen gran volumen de puertas lógicas con estructura definida Tipos básicos PLAs (Programmable Logic Array) PALs (Programmable Array Logic) Ejemplo: PLA antes de la programación Arreglos de puertas lógicas A Estructura básica Típicamente AND-OR (o NAND o NOR) Programables para funciones específicas B C Suma de términos productos (AND-OR) Entradas Arreglo masivo de puertas AND Arreglo masivo de Términos producto puertas OR Salidas F0 Definición de entradas 1 : activa en el término 0 : negada en el término - : no aparece en el término Definición de salidas 1: término conectado a la salida 0: término no conectado a la salida F0 A B C F3 A B C F1 A C A B F2 B C A B A F3 B C A B’C’ Matriz de personalización Product Inputs term A B C 1 1 AB - 0 1 BC 1 - 0 AC - 0 0 BC 1 - A Outputs F0 F1 F2 F3 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 AB AC’ Reuse of terms B’C F0 © 2014 Mario Medina C. F2 Ejemplo: PLA después de la programación Diseño con PLA F1 F1 F2 F3 3 Sistemas Digitales Programando una PLA PLAs de máscara Definidas de fábrica Máscara litográfica PLAs programables Ejemplo de PLA Implementan las conexiones mediante fusibles, los que son quemados en los términos no usados Otras implementaciones generan las conexiones en lugar de destruirlas Ejemplo de PLA Representación simplificada • Notación abreviada que no dibuja todos los cables • Cruces representan conexiones de entrada a bloques AND y bloques OR Ejemplo usando representación simplificada Ejemplo de PLA F1 = A’BD + ABD + AB’C’ + B’C A B C D F2 = A’BD + C AB F3 = BC + AB’C’ + ABD CD AB CD Notación abreviada para la implementación de F0 = AB + A’B’ F1 = CD’ + C’D AB+A’B’ CD’+C’D © 2014 Mario Medina C. 4 Sistemas Digitales PLA: Implementación de múltiples funciones PLA A B C ABC F1 A B C Philips PLS100 A F2 A B C B F3 A B C A F4 A B C C C B ABC F5 A XOR B XOR C ABC ABC F6 A XNOR B XNOR C ABC ABC ABC ABC F1 F2 F3 F4 F5 F6 PLS 100 (Detalles) 16 Entradas PLAs y PALs 8 Salidas de 3 estados XOR actúa como inversor Ambas tienen la misma estructura La diferencia está en las capacidades de programación PALs PLA: permite la programación de ambos planos (AND y OR) PAL: permite la programación sólo del plano AND. Las conexiones en el plano de salida OR vienen predefinidas. Programando una PAL • En una PAL, cada puerta OR tiene acceso solo a un subconjunto predefinido de términos producto Z = I1I2’ + I1 ’I2 © 2014 Mario Medina C. 5 Sistemas Digitales Sumador completo implementado con PAL PLAs y PALs Las PLA permiten aprovechar al máximo la reutilización de términos compartidos Suelen ser más lentas y más caras que las PAL Cout = XCin + YCin + XY PAL 16L8 PAL eléctricamente más eficientes que PLA Sum = X’Y’Cin + X’YC’in + XY’C’in + XYCin Resistencia de un nodo programable es mayor a la de un cable directo Se optimizan durante el proceso de fabricación No permiten aprovechar al máximo los términos compartidos PAL 16L8 (Detalles) Terminales IO2 a IO7 son de Entrada/Salida Salida de OR puede ser entrada para otro OR Función lógica controla buffers de 3 estados ROMs vs PLAS y PALs Ventajas ROMs pueden implementar m funciones de las n variables de entrada Desventajas ROMs son más lentas ROMs consumen más potencia ROMs son más caras ROMs son más susceptibles a glitches © 2014 Mario Medina C. 6