¿Modificar el componente MEMORY para que sea más sensato cargar / almacenar valor?

1

He creado el siguiente circuito eléctrico usando Logisim:

  • MiALUtoma2valoresde8bitsyrealizalaoperaciónestablecidapor[OpSetter].
  • Enparticular,cuandoelcódigo[Op]es[100],los2valoresdeentradasesuman.
  • Sielcódigo[Op]es[100]yla[Subbandera]estáhabilitada,entonceslaentradaBserestadelaentradaA.
  • Elresultadode8bitsseenvíaalamemoria.

Elcomponente

Mi[Memoria]talcomoestáactualmentemepermiteespecificarencuáldelasdireccionesdememoriacolocarelresultado,conunindicadorCLRparaborrarlamemoriayunbotón[R/W]paracompletarelcircuitoymostrarelvaloraunasolapantallade7segmentos(conelcircuitoactualsolopuedemostrarlosprimeros4bitsdelresultadodeALU).

¿Cómo puedo modificar mi componente de memoria para que funcione mejor en cuanto a cargar y almacenar los valores que se le envían? Actualmente, el resultado de ALU simplemente se almacena en la dirección especificada, pero me gustaría modificarlo donde el circuito normalmente muestra el resultado de ALU en la pantalla de 7 segmentos, y SI, solo SI, tengo un botón [GUARDAR] habilitado, GUARDAR el valor en la memoria para uso futuro.

Luego me gustaría incorporar un botón [LOAD] para que tenga lugar la entrada A o la entrada B en la ALU para la operación especificada.

¿Alguien puede ofrecer alguna idea de esto? Afortunadamente, comencé a conectar los puntos cuando se trata de Circuit Design, pero no sé cómo incorporar esta funcionalidad LOAD / STORE.

    
pregunta Analytic Lunatic

1 respuesta

1

¿Desea poder mostrar el resultado de la ALU antes y después de almacenarlo en la memoria y poder cargar ese resultado en la entrada a o b de la ALU?

Conecte todas las líneas de datos para formar un bus. Obviamente, este bus solo puede transportar un valor de 8 bits a la vez, por lo que cada dispositivo conectado a él necesita un registro de entrada (enganche de 8 bits) para escribirle valores (ALMACENAR) y un búfer de tres estados para conectar su salida al Bus solo cuando se lee.

Su memoria ya tiene registros de entrada, por lo que solo necesita un búfer de tres estados en la salida. Este búfer se habilita cuando desea leer (CARGAR) la memoria en la ALU o en la pantalla.

La ALU necesita dos pestillos de entrada (llamémoslos Registro A y Registro B). También necesita un búfer en la salida, que se habilita cuando se muestra el resultado y / o se escribe en la memoria.

La pantalla es de solo escritura, así que solo conéctela al bus y mostrará lo que haya allí.

Ahora crea una secuencia para controlarla. Digamos que desea cargar la ALU con dos números tomados de diferentes ubicaciones de memoria, sumarlos y almacenar el resultado en otra ubicación de memoria. Esto se puede hacer en 3 pasos, cada uno de los cuales requiere un ciclo de bus: -

  1. Establezca la primera dirección de memoria, habilite el búfer de salida de la memoria, espere un poco a que se estabilicen los datos y luego péguelo en el registro A.

  2. Establezca la segunda dirección de memoria y bloquee los datos en el registro B.

  3. Deshabilite el búfer de salida de la memoria, configure la dirección de destino, habilite el búfer de salida de la ALU y escriba los datos en la memoria.

respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas