X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fstandard%2Fmemory%2FWordAddressableMemoryAdapter.java;fp=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fstandard%2Fmemory%2FWordAddressableMemoryAdapter.java;h=d7fbbaa6c76578edefbbddeebdc55028bb12cdb1;hb=5babdd65b463ea8f33a950c2a8d4732417d2df18;hp=0000000000000000000000000000000000000000;hpb=5d7d8cbfe74873cffa0682d66e8812b58c2b47f9;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java new file mode 100644 index 00000000..d7fbbaa6 --- /dev/null +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java @@ -0,0 +1,31 @@ +package net.mograsim.machine.standard.memory; + +import java.util.Map; + +import net.mograsim.logic.core.timeline.Timeline; +import net.mograsim.logic.core.wires.CoreWire; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.modeladapter.CoreModelParameters; +import net.mograsim.logic.model.modeladapter.componentadapters.ComponentAdapter; + +public class WordAddressableMemoryAdapter implements ComponentAdapter +{ + @Override + public Class getSupportedClass() + { + return ModelWordAddressableMemory.class; + } + + @Override + public void createAndLinkComponent(Timeline timeline, CoreModelParameters params, ModelWordAddressableMemory modelComponent, + Map logicWiresPerPin) + { + ReadWriteEnd data = logicWiresPerPin.get(modelComponent.getDataPin()).createReadWriteEnd(); + ReadEnd address = logicWiresPerPin.get(modelComponent.getAddressPin()).createReadOnlyEnd(); + ReadEnd mode = logicWiresPerPin.get(modelComponent.getReadWritePin()).createReadOnlyEnd(); + CoreWordAddressableMemory mem = new CoreWordAddressableMemory(timeline, 2, modelComponent.getDefinition(), data, mode, address); + modelComponent.setCoreModelBinding(mem); + } +} \ No newline at end of file