Introduced Machine.getCoreModelParameters
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / Machine.java
index 8325068..6c3c9cc 100644 (file)
@@ -1,11 +1,15 @@
 package net.mograsim.machine;
 
+import java.util.function.Consumer;
+
 import net.mograsim.logic.core.components.CoreClock;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.model.LogicModel;
+import net.mograsim.logic.model.modeladapter.CoreModelParameters;
+import net.mograsim.machine.mi.AssignableMPROM;
 import net.mograsim.machine.mi.AssignableMicroInstructionMemory;
-import net.mograsim.machine.standard.memory.AssignableMainMemory;
+import net.mograsim.machine.registers.Register;
 
 public interface Machine
 {
@@ -15,18 +19,27 @@ public interface Machine
 
        LogicModel getModel();
 
+       // TODO replace with HLS references
        CoreClock getClock();
 
        BitVector getRegister(Register r);
 
        void setRegister(Register r, BitVector value);
 
+       void addRegisterListener(Register r, Consumer<BitVector> listener);
+
+       void removeRegisterListener(Register r, Consumer<BitVector> listener);
+
        Timeline getTimeline();
 
+       public CoreModelParameters getCoreModelParameters();
+
        AssignableMainMemory getMainMemory();
 
        AssignableMicroInstructionMemory getMicroInstructionMemory();
 
+       AssignableMPROM getMPROM();
+
        void addActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener);
 
        void removeActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener);