/// <summary>Activa los elementos activos durante el subciclo 4. /// </summary> /// <param name="mic">La microinstrucción en ejecución.</param> /// <param name="vMBR">El valor del registro MBR.</param>S public void DibujarCiclo4(MicroInstruccion mic, short vMBR) { PintarMicro(mic); etiqueta_ciclos.SetText("Ciclo:" + instruccion + " Subciclo 4"); bufferA.Apagar(); bufferB.Apagar(); mar.Apagar(); mbr.Apagar(); mbr.SetText("MBR " + Conversiones.ToHexString(vMBR)); cable_bufferB_mar.Apagar(); cable_bufferB_alu.Apagar(); alu.Apagar(); mux.Apagar(); cable_bufferA_mux.Apagar(); cable_alu_sh.Apagar(); cable_mux_alu.Apagar(); cable_mbr_mux.Apagar(); //Escribir el dato de salida en la ALU. //Activar los cables de salida necesarios. if (mic.GetENC() == 1) { busC.Encender(mic.GetC()); regs[mic.GetC()].Encender(); } if (mic.GetMBR() == 1) { //Activamos el cable que va de SH a MBR cable_sh_mbr.Encender(); mbr.Encender(); } if ((!(mic.GetENC() == 1)) && (!(mic.GetMBR() == 1))) { sh.Apagar(); } else { cable_sh.Encender(); } ActualizarTodo(); }
/// <summary>Establece el texto de etiqueta_rmc con el contenido /// de la microinstrucción que se le pasa como parámetro. /// </summary> /// <param name="mic">La microinstruccion a escribir.</param> private void PintarMicro(MicroInstruccion mic) { etiqueta_rmc.SetText( "mInst = " + mic.ToHexString() + "\nAMUX=" + Conversiones.ToBinaryString(mic.GetAMUX(), 1) + "\nCOND=" + Conversiones.ToBinaryString(mic.GetCOND(), 3) + "\nSH=" + Conversiones.ToBinaryString(mic.GetSH(), 3) + "\nMBR=" + Conversiones.ToBinaryString(mic.GetMBR(), 1) + "\nMAR=" + Conversiones.ToBinaryString(mic.GetMAR(), 1) + "\nRD=" + Conversiones.ToBinaryString(mic.GetRD(), 1) + "\nWR=" + Conversiones.ToBinaryString(mic.GetWR(), 1) + "\nENC=" + Conversiones.ToBinaryString(mic.GetENC(), 1) + "\nC=" + Conversiones.ToBinaryString(mic.GetC(), 4) + "\nB=" + Conversiones.ToBinaryString(mic.GetB(), 4) + "\nA=" + Conversiones.ToBinaryString(mic.GetA(), 4) + "\nADDR=" + Conversiones.ToBinaryString(mic.GetADDR(), 10) + "\nFIR=" + Conversiones.ToBinaryString(mic.GetFIR(), 1) + "\nALU=" + Conversiones.ToBinaryString(mic.GetALU(), 4)); }
public void TestGets() { MicroInstruccion mic = new MicroInstruccion(0x805300000400); Assert.AreEqual(1, mic.GetAMUX()); Assert.AreEqual(0, mic.GetCOND()); Assert.AreEqual(0, mic.GetSH()); Assert.AreEqual(0, mic.GetMBR()); Assert.AreEqual(0, mic.GetMAR()); Assert.AreEqual(1, mic.GetRD()); Assert.AreEqual(0, mic.GetWR()); Assert.AreEqual(1, mic.GetENC()); Assert.AreEqual(3, mic.GetC()); Assert.AreEqual(0, mic.GetB()); Assert.AreEqual(0, mic.GetA()); Assert.AreEqual(0, mic.GetADDR()); Assert.AreEqual(0, mic.GetFIR()); Assert.AreEqual(2, mic.GetALU()); }