PRÁCTICA 4


MEMORIA

En la practica 4 aprendimos a manejar las memorias RAM y ROM con el simulador Logisim.
Vimos una breve introducción sobre las memorias RAM y ROM, sus funciones y características dentro del simulador logisim.

¿Qué es una memoria RAM?
RAM son las siglas de random access memory, un tipo de memoria de ordenador a la que se puede acceder aleatoriamente; es decir, se puede acceder a cualquier byte de memoria sin acceder a los bytes precedentes. La memoria RAM es el tipo de memoria más común en ordenadores y otros dispositivos como impresoras.

¿Cómo funciona la memoria RAM en logisim?
La memoria RAM funciona en logisim con una serie de pines que permiten controlarla. Estos pines son:




-A: sobre el borde oeste (entrada de los bits de dirección de la memoria RAM). Permite especificar a que valor de la memoria se accede.
-D: sobre el borde este (entrada o salida ,según los valores de sel y out, de los bits de datos que carguemos en memoria).
-Out :sobre el borde sur (entrada, 1 bit) (Lectura de datos L ó R)
Especifica si la RAM debería proporcionar a la salida el valor de la dirección seleccionada (A). La opción de salida está seleccionada si out vale 1 o indefinido; si out vale 0, entonces D se comporta como una entrada de forma que se almacena su valor en los flancos de subida del reloj.
-Sel: en el borde sur (entrada, 1 bit) (Triestado de salida OE)
Para un sólo módulo RAM, se puede ignorar esta entrada. Si tienes más de un módulo
RAM en paralelo, puedes utilizar esta entrada para conectar o desconectar cada
módulo RAM, en función de si su valor es 0 o 1. En otras palabras, cuando vale 0, no se proporciona ningún valor en el pin de salida, D, y no se cambiará ningún valor de la
memoria cuando el reloj pase de 0 a 1.
-Triangulo sobre el borde sur: (entrada, 1 bit) (Carga de datos E o W)
Entrada de reloj : Cuando out vale 0, y esta entrada pasa de 0 a 1 (y sel vale 1/indefinido y clr vale 0), entonces el valor de la posición de memoria de la dirección seleccionada pasa a ser el mismo que el proporcionado en el pin D. Sin embargo, mientras el reloj permanezca a 0 o a 1 el valor del pin D no será almacenado en memoria.
-Clr (clear): sobre el borde sur (entrada, 1 bit).
Cuando vale 1, y sel vale 1 o indefinido, se resetea la memoria, es decir, los valores de todas sus posiciones de memoria pasan a ser 0, sin importar lo que valgan las demás entradas.


¿Cómo funciona la memoria ROM en logisim?
La memoria funciona igual que la RAM con la única diferencia es que esta solo tiene tres pines (A,D, sel).




Explicación de los ejercicios hechos en clase:

Explicaremos brevemente lo que hemos de realizar en cada ejercicio:

Ejercicio 1:




Tenemos que diseñar un circuito con una memoria que guarde los valores que le introduzcamos mediante un pin de entrada de 8 bits (entrada de datos) y guardarlo en la dirección que queramos mediante otro pin de entrada de 16 bits (entrada de direcciones). Para introducir el dato , primero tenemos que abrir el buffer controlado y el dato pasa al bus, luego abrimos el pin del triángulo sobre el borde sur para que cargarlo en memoria y guardarse (ya tenemos el dato en memoria). Para mostrar el dato en el pin de salida, cerramos primero el pin del buffer controlado del pin de datos ya que no puede haber dos datos a la vez en el bus, y abrimos el pin de out para que D sea una salida y ya se mostrara el dato en el pin de salida.

El ejercicio nos pide que introduzcamos en la dirección 0023h, el dato 3Ah, que como está en hexadecimal pues tenemos que pasarlo a binario para que lo pueda leer la memoria, por lo tanto en el pin de dirección tenemos que poner 0023h=0000000000100011b y en el pin de datos pondremos 3Ah= 00111010b.


Ejercicio 2:




Como en el ejercicio nos pide una entrada de datos de 16 bits, lo que hacemos es ampliar conectando otra memoria a la que teníamos anteriormente. Como la entrada “D” de cada memoria es de 8 bits tenemos que utilizar un separador conectado al pin de datos para dividir los 16 bits en dos buses de 8 bits cada uno.
Hacemos la misma operación que en el ejercicio 1 para cargar y guardar el dato en memoria y mostrarlo en el pin de salida.

Ejercicio 3:





En este ejercicio nos pide una memoria de 128Kx16, para ello tendremos que unir en paralelo otras dos memorias al ejercicio anterior (64K + 64K = 128K). Para que el bus sea de 16 bits y la capacidad de 128K, las memorias deben funcionar dos a dos, y por ello colocamos una puerta not en el pin “sel” por lo que cuando el pin está en 0 dos de ellas se activarán y las otras dos no, y cuando el pin está en 1, se desconectan las anteriores y se activan las otras dos.
El funcionamiento es igual que las otras dos anteriores.


Ejercicio 4:





En este ejercicio nos vuelve a pedir otra ampliación de memoria de 256Kx16, por lo que tendremos que unir dos circuitos como en el ejercicio 3 (128K + 128K = 256K) para que el bus sea de 16 bits y la capacidad de memoria sea de 256K. Para elegir la memoria donde guardar los datos colocamos un decodificador, conectado a los pin de sel, de forma que podamos elegir mediante un pin conectado al decodificador de 2 bits elegimos la salida para las memorias que queramos utilizar.


Ejercicio 5:






En este ejercicio el funcionamiento de las memorias son iguales que el anterior con la diferencia de que las dos primeras memorias son ROM en vez de RAM. Hay que observar en el siguiente circuito como en la memoria ROM únicamente nos encontramos una señal de control: el selector, que va junto con los selectores de las memorias RAM al decodificador para poder seleccionar el módulo de memorias ROM.



FAQ´s


1. ¿Cómo se puede comportar la memoria RAM según sea de entrada o salida?

El pin “D” de la memoria RAM se puede comportar como entrada o salida de datos, según el valor de “out” y “triángulo sobre el borde sur”, si “out” vale 1 entonces el “triángulo sobre el borde sur” será 0 y “D” será una salida pero si “out” vale 0 entonces el “triángulo sobre el borde sur” sera 1 y “D” se comportará como una entrada.

2. ¿Por qué en la memoria (256Kx16) aparece un decodificador?

Este decodificador aparece para realizar la función de selector entre los distintos módulos de memoria RAM.

3. ¿Cómo puedo ampliar la capacidad de la memoria?

Esto se hace conectando dos o más módulos en paralelo y utilizando la entrada denominada “sel” que activa o desactiva el módulo de memoria. Así, si queremos una memoria de 256K palabras, podemos usar una combinación de 2 memorias de 128K palabras en las que la señal de entrada de direccionamiento sería la misma para las dos. Pero la señal “sel” de selección desactivaría un módulo cuando el otro estuviese activado. De esta manera podríamos acceder a las primeras 128K palabras activando el primer módulo y acceder a las otras 128K palabras activando el segundo módulo.

4. ¿Qué diferencia existe entre RAM y ROM en logisim, si puedo modificar los datos en ambos tipos de memoria?

Ciertamente, en ambos casos es posible modificar el contenido. No obstante, en el caso de la ROM solo podremos hacer la operación de lectura (no en vano ROM significa Read Only Memory), es decir, no se pueden escribir los datos que vengan por el bus de datos y solo podremos modificar el contenido de la memoria . Sin embargo, en la memoria RAM es posible realizar tanto la operación de lectura como la de escritura, por lo tanto, podremos modificar el contenido de la memoria escribiendo los datos que vengan por el bus de datos. 
5. ¿Qué funcionamiento tiene el pin “clr” en una memoria RAM?

Su función es resetear la memoria, o lo que es lo mismo, limpiar la memoria, para ello pone todos los registros guardados en memoria a 0.

5.1. ¿Y debo activar “clr” cada vez que quiera cargar y guardar en memoria un registro diferente pero en la misma dirección?

No hace falta activar “clr”, ya que, automáticamente guarda el nuevo registro eliminando el anterior que estaba guardado.




            


                                                                                     Realizado por: José Antonio Blanco Frontado
                                                                                                              José Antonio Muñoz Fuentes

No hay comentarios:

Publicar un comentario