X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fmi%2Fcomponents%2FModelMPROM.java;fp=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fmi%2Fcomponents%2FModelMPROM.java;h=0000000000000000000000000000000000000000;hb=b5d55c59d7069171bd928e4a945d9185ee4bc2b0;hp=b1f791c2d40b03cd81dcf7fba0ae877a75663c26;hpb=f098cd47d06be0cc654532a5fad0e5e89f0ef93c;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/components/ModelMPROM.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/components/ModelMPROM.java deleted file mode 100644 index b1f791c2..00000000 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/components/ModelMPROM.java +++ /dev/null @@ -1,118 +0,0 @@ -package net.mograsim.machine.mi.components; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; - -import net.mograsim.logic.model.model.LogicModelModifiable; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.LogicCoreAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.snippets.HighLevelStateHandler; -import net.mograsim.machine.ModelMemory; -import net.mograsim.machine.mi.MPROM; -import net.mograsim.machine.mi.MPROMDefinition; - -public abstract class ModelMPROM extends ModelMemory -{ - private final Pin addrPin, dataPin; - private CoreMPROM memory; - private final MPROMDefinition definition; - - private final List> memoryBindingListeners; - - public ModelMPROM(LogicModelModifiable model, MPROMDefinition definition, String name) - { - super(model, 30, 80, name, "MPROM", false); - this.definition = definition; - addPin(addrPin = new Pin(model, this, "A", definition.getMemoryAddressBits(), PinUsage.INPUT, getWidth(), 30)); - addPin(dataPin = new Pin(model, this, "D", definition.getMicroInstructionMemoryAddressBits(), PinUsage.OUTPUT, getWidth(), 50)); - - memoryBindingListeners = new ArrayList<>(); - - setHighLevelStateHandler(new HighLevelStateHandler() - { - @Override - public Object get(String stateID) - { - if (stateID.equals("memory_binding")) - return memory.getMemory(); - throw new IllegalArgumentException("No high level state with ID " + stateID); - } - - @Override - public void set(String stateID, Object newState) - { - if (stateID.equals("memory_binding")) - { - memory.setMemory((MPROM) newState); - memoryBindingListeners.forEach(l -> l.accept(newState)); - } else - throw new IllegalArgumentException("No high level state with ID " + stateID); - } - - @Override - public void addListener(String stateID, Consumer stateChanged) - { - if (stateID.equals("memory_binding")) - memoryBindingListeners.add(stateChanged); - else - throw new IllegalArgumentException("No high level state with ID " + stateID); - } - - @Override - public void removeListener(String stateID, Consumer stateChanged) - { - if (stateID.equals("memory_binding")) - memoryBindingListeners.remove(stateChanged); - else - throw new IllegalArgumentException("No high level state with ID " + stateID); - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return null; - } - - @Override - public Object getParamsForSerializing(IdentifyParams idParams) - { - return null; - } - }); - - init(); - } - - public MPROMDefinition getDefinition() - { - return definition; - } - - public Pin getAddressPin() - { - return addrPin; - } - - public Pin getDataPin() - { - return dataPin; - } - - public CoreMPROM getCoreMemory() - { - return memory; - } - - public void setCoreModelBinding(CoreMPROM memory) - { - this.memory = memory; - } - - static - { - LogicCoreAdapter.addComponentAdapter(new MPROMAdapter()); - } -} \ No newline at end of file