1 package net.mograsim.machine;
3 import net.mograsim.logic.core.components.CoreClock;
4 import net.mograsim.logic.core.timeline.Timeline;
5 import net.mograsim.logic.core.types.BitVector;
6 import net.mograsim.logic.model.model.LogicModel;
7 import net.mograsim.machine.mi.AssignableMicroInstructionMemory;
8 import net.mograsim.machine.standard.memory.AssignableMainMemory;
10 public interface Machine
12 MachineDefinition getDefinition();
16 LogicModel getModel();
18 // TODO replace with HLS references
21 BitVector getRegister(Register r);
23 void setRegister(Register r, BitVector value);
25 Timeline getTimeline();
27 AssignableMainMemory getMainMemory();
29 AssignableMicroInstructionMemory getMicroInstructionMemory();
31 void addActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener);
33 void removeActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener);
35 long getActiveMicroInstructionAddress();
37 public interface ActiveMicroInstructionChangedListener
39 public void instructionChanged(long oldAddress, long newAddress);