SINTESIS DE FUNCIONES LOGICAS CON MEMORIAS MEMORIA DE SOLO LECTURA (ROM) Muchos dispositivos lógicos incluidas las microcomputadoras almacenan información en forma permanente, la cual puede almacenarse en una memoria de solo lectura(ROM). La ROM es programada por el fabricante de acuerdo con las especificaciones del usuario. Las memorias ROM mas pequeñas se pueden utilizar para resolver problemas lógicos combinacionales como la decodificación. Las ROM se clasifican en memorias no volátiles debido a que no pierden sus datos cuando se apaga la alimentación eléctrica. La ROM se usa en aplicaciones de producción de alto volumen solamente, debido a los elevados costos de la configuración inicial. Las PROM(memorias programables de solo lectura) se utilizan en aplicaciones de volumen mas bajo, en las que se requiere una memoria permanente. El circuito ROM con diodos de la figura 1 puede llevar a cabo la tarea de traducir el código binario a código GRAY; este ultimo, junto con sus equivalentes en binario y decimal se muestran en la tabla. Si el interruptor giratorio de la figura selecciona la posición 6 en decimal, ¿Qué desplegaran los indicadores de salida de la ROM? Las salidas (D,C,B,A)indicaran 0101. Las salidas D y B están conectadas directamente a tierra a través de las resistencias y desplegaran un nivel bajo, mientras que la C y la A se hallan conectadas a +5V mediante los dos diodos polarizados en directa y el voltaje de salida será de alrededor de +2V a +3V, lo cual representa un nivel lógico alto. Observe que el patrón de diodos en la matriz ROM de diodos de la figura es similar al patrón de 1 de la columna de código GRAY de la tabla. Cada nueva posición del interruptor giratorio proporcionara la salida correcta en código GRAY en una memoria como la ROM que se muestra en la figura, cada posición del interruptor giratorio se conoce como una dirección. Un refinamiento de la ROM de diodos se muestra en la figura 2 cuyo circuito ROM de diodos utiliza un decodificador 1 de 10(IC TTL 7442) e inversores para seleccionar renglones. Dicho ejemplo muestra una entrada binaria de 0101(5 en decimal), que activa la salida 5 del 7442 como unnivel lógico bajo. Esto acciona al inversor cuya salida es un nivel alto, el cual polariza en forma directa los tres diodos conectados a la línea del renglón 5. Las salidas serian 0111. Este es el código binario equivalente al numero binario 0101 de acuerdo a la tabla. La memoria ROM posee muchas desventajas y sus niveles lógicos son marginales. La ROM también cuenta con una capacidad muy limitada para controlar. Las ROM de diodos no poseen el almacenamiento de entrada y salida necesarias cuando se trabaja con sistemas que contienen buses de datos y de direcciones. Figura 1 Figura 2 MEMORIA PROGRAMABLE DE SOLO LECTURA (PROM) Las ROM programables con mascara son programadas por el fabricante con el uso de mascaras fotográficas para exponer la pastilla de silicio. Las ROM programables con mascara tienen largo tiempo de desarrollo y su costo inicial es elevado. Dichas memorias se conocen simplemente con el nombre de ROM. También se encuentran en el mercado las ROM programables en campo (PROM), cuyo tiempo de desarrollo es mas corto y su costo muchas veces mas bajo. Así mismo, es mucho mas fácil corregir errores de programa y actualizar productos cuando las PROM pueden ser programadas (quemadas) por el desarrollador local. La memoria PROM convencional solamente puede programarse una vez, pero su ventaja consiste en que puede producirse en cantidades reducidas y programarse en la tienda o laboratorio local. La PROM también se conoce como PROM de enlace mediante fusible. La memoria EPROM (memoria de solo lectura programable y borrable) es una variación de la PROM; a su vez la EPROM se programa o quema en el laboratorio local con un quemador de PROM. Si una EPROM necesita ser programada, se utilizara una pequeña ventana ubicada en la parte superior del CI; asimismo, se emite luz ultravioleta (UV) a través de la ventana del circuito de la EPROM. La luz UV borra la EPROM y pone todas las celdas de su memoria al valor 1 lógico; por lo tanto, la EPROM puede ser reprogramada. En la figura 3 se muestra un CI DIP EPROM de 24 patas. El circuito EPROM real es visible a través de a ventana en la parte superior del CI. A menudo estas unidades se llaman PROM borrables por UV o UV EPROM. La EEPROM es tanto una tercera variación de la memoria programable de solo lectura como una PROM borrable eléctricamente, y también se le conoce como E²PROM. Debido a que las EEPROM pueden borrase eléctricamente, es factible borrarlas y reprogramarlas sin quitarlas de la tarjeta de circuito impreso. La memoria EEPROM puede reprogramarse un byte a la vez. La EEPROM rápida es una cuarta variación de la memoria programable de solo lectura, como si fuera una EEPROM en el sentido de que puede borrarse y reprogramarse estando instalada en le tarjeta de circuito impreso. Las EEPROM están ganando popularidad debido a que utilizan una celda de almacenamiento mas sencilla, que permite colocar mas celdas de memoria en un solo circuito, en cuyo caso decimos que tiene una densidad mayor. Dichas EEPROM pueden borrarse sector por sector y reprogramarse mas rápido que las EEPROM. Mientras que parte del código se puede borrar y reprogramar en una EEPROM, es posible borrar y reprogramar toda la memoria EEPROM en su totalidad. En la figura 4 se muestra el diseño básico de una PROM. Esta PROM simplificada de 16 bits(4x4) es similar a la ROM de diodos anteriormente explicada. En la figura 4.a, cada selda de memoria contiene un diodo y un fusible sin quemar, lo cual indica que todas las celdas de memoria almacenan un 1 logico. Asi se veria la PROM antes de programarse. La PROM de la figura 4.b se ha programado con siete 0. Para programar la PROM , se deben quemar los pequeños fusibles como se muestra en la figura 4.b. en este caso un fusible quemado desconecta el diodo, lo cual significa que un cero logico se almacena permanentemente en esta celda de memoria. Debido a la naturaleza permanente del quemado de una PROM, la unidad no puede reprogramarse. En la figura 4 se muestra una PROM que solo puede programarse una vez. Figura 3 Figura 4 USO DE LAS MEMORIAS ROM PARA FUNCIONES LOGICAS COMBINACIONALES ALEATORIAS La siguiente tabla es en realidad la tabla de verdad de un decodificador de 2 a 4 con un control de polaridad de salida, una función que puede ser construida con compuertas discretas como se ilustra en la figura 5. tabla2 fig.5 De este modo tenemos dos maneras diferentes para construir el decodificador: con compuertas discretas o con una ROM de 8x4 que contenga la tabla de verdad como se ilustra en la figura 6. fig.6 El patrón de asignación de las entradas y salidas del decodificador para las entradas y salidas de la ROM en la figura 6 es una consecuencia de la manera en que la tabla de verdad se construyo en la tabla 2. De este modo, la realización física de la memoria ROM del decodificador no es única. Esto es, podríamos escribir los renglones o columnas de la tabla de verdad en un orden diferente y utilizar una ROM físicamente distinta para realizar la misma función lógica, tan solo mediante la asignación de las señales del decodificador a entradas y salidas diferentes de la ROM. Por ejemplo intercambiando los bits en las columnas D0 y D3 de la tabla 2 podríamos obtener la tabla de verdad para una ROM físicamente diferente. Sin embargo la nueva ROM todavía podría ser utilizada para construir el decodificador de 2 a 4 simplemente intercambiando las etiquetas Y0 y Y3 en la figura 6. Del mismo modo si mezclamos los renglones de datos de la tabla de verdad como se muestra en la tabla 3 obtendríamos otra ROM diferente, pero todavía podría utilizarse como decodificador de 2 a 4 con una reorganización de las entradas de dirección. A0=POL, A1=I0, A2=I1. tabla3 Cuando se construye una ROM para almacenar una tabla de verdad dada , las señales de entrada y salida que se leen de derecha a izquierda en la tabla de verdad se asignan por lo normal a las entradas de dirección y salidas de datos de la ROM con etiquetas ascendentes. Cada combinación de dirección o datos puede leerse entonces como un entero binario correspondiente con los bits numerados en forma “natural”.