X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2FMachine.java;h=66408ced7be6c1f6d998d1f05049ff272a5ecb3f;hb=0c404f876557865fb7361ca458ac90caf41afe19;hp=df99984a61ef6110f9739300dbc06d2f0101f2dd;hpb=59e4f0d9447e3c764c83e7edabfcbf5c3c24a97b;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/Machine.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/Machine.java index df99984a..66408ced 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/Machine.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/Machine.java @@ -1,10 +1,13 @@ 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.machine.mi.AssignableMicroInstructionMemory; +import net.mograsim.machine.registers.Register; import net.mograsim.machine.standard.memory.AssignableMainMemory; public interface Machine @@ -15,15 +18,31 @@ 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 listener); + + void removeRegisterListener(Register r, Consumer listener); + Timeline getTimeline(); AssignableMainMemory getMainMemory(); AssignableMicroInstructionMemory getMicroInstructionMemory(); + + void addActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener); + + void removeActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener); + + long getActiveMicroInstructionAddress(); + + public interface ActiveMicroInstructionChangedListener + { + public void instructionChanged(long oldAddress, long newAddress); + } } \ No newline at end of file