Fixed Am2900Machine#reset (broke when deleting clock ManualSwitch)
[Mograsim.git] / plugins / net.mograsim.logic.model.am2900 / src / net / mograsim / logic / model / am2900 / machine / Am2900Machine.java
index 652fb14..f0bbb22 100644 (file)
@@ -2,11 +2,11 @@ package net.mograsim.logic.model.am2900.machine;
 
 import net.mograsim.logic.core.components.CoreClock;
 import net.mograsim.logic.core.timeline.Timeline;
-import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.model.LogicModel;
 import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
+import net.mograsim.logic.model.model.components.atomic.ModelClock;
 import net.mograsim.logic.model.modeladapter.CoreModelParameters;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
@@ -47,6 +47,7 @@ public class Am2900Machine implements Machine
                timeline = LogicCoreAdapter.convert(logicModel, params);
                am2900.setHighLevelState("ram.memory_binding", mainMemory);
                am2900.setHighLevelState("mpm.memory_binding", instMemory);
+               clock = logicModel.getComponentBySubmodelPath("Am2900.Clock#0", ModelClock.class).getClock();
        }
 
        @Override
@@ -58,7 +59,6 @@ public class Am2900Machine implements Machine
        @Override
        public void reset()
        {
-               logicModel.getComponentByName("Am2900").setHighLevelState("c.out", BitVector.of(Bit.ZERO));
                MicroInstructionDefinition muiDef = getDefinition().getMicroInstructionMemoryDefinition().getMicroInstructionDefinition();
                ParameterClassification[] paramClassifications = muiDef.getParameterClassifications();
                MicroInstructionParameter[] defaultParams = muiDef.createDefaultInstruction().getParameters();