The final restructured version for automatic build using maven tycho
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / mi / components / CoreMicroInstructionMemory.java
diff --git a/net.mograsim.machine/src/net/mograsim/machine/mi/components/CoreMicroInstructionMemory.java b/net.mograsim.machine/src/net/mograsim/machine/mi/components/CoreMicroInstructionMemory.java
deleted file mode 100644 (file)
index 7394028..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-package net.mograsim.machine.mi.components;
-
-import java.util.List;
-
-import net.mograsim.logic.core.components.BasicCoreComponent;
-import net.mograsim.logic.core.timeline.Timeline;
-import net.mograsim.logic.core.timeline.TimelineEventHandler;
-import net.mograsim.logic.core.types.Bit;
-import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.machine.mi.MicroInstructionMemory;
-
-public class CoreMicroInstructionMemory extends BasicCoreComponent
-{
-       private final ReadWriteEnd data;
-       private final ReadEnd address;
-       private final MicroInstructionMemory memory;
-
-       public CoreMicroInstructionMemory(Timeline timeline, int processTime, MicroInstructionMemory memory, ReadWriteEnd data, ReadEnd address)
-       {
-               super(timeline, processTime);
-               this.memory = memory;
-               this.data = data;
-               this.address = address;
-               memory.registerObserver(a -> update());
-               address.registerObserver(this);
-       }
-
-       public MicroInstructionMemory getMemory()
-       {
-               return memory;
-       }
-
-       @Override
-       public List<ReadEnd> getAllInputs()
-       {
-               return List.of(address);
-       }
-
-       @Override
-       public List<ReadWriteEnd> getAllOutputs()
-       {
-               return List.of(data);
-       }
-
-       @Override
-       protected TimelineEventHandler compute()
-       {
-               if (!address.getValues().isBinary())
-               {
-                       return e -> data.feedSignals(Bit.U.toVector(data.width()));// TODO don't always feed U, but decide to feed X or U.
-               }
-               long addressed = address.getValues().getUnsignedValueLong();
-               BitVector storedData = memory.getCell(addressed).toBitVector();
-               return e -> data.feedSignals(storedData);
-       }
-}