X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2Fcomponentadapters%2FWordAddressableMemoryAdapter.java;fp=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2Fcomponentadapters%2FWordAddressableMemoryAdapter.java;h=339c238b119c4bbca1bef439a0c178e89e65d8ef;hb=9d891c8dfaf71b4668edd66a82c85c0cd51ecd84;hp=0000000000000000000000000000000000000000;hpb=1c7820abab8dc28939e35275f24a9c25e139add5;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/WordAddressableMemoryAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/WordAddressableMemoryAdapter.java new file mode 100644 index 00000000..339c238b --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/WordAddressableMemoryAdapter.java @@ -0,0 +1,34 @@ +package net.mograsim.logic.model.modeladapter.componentadapters; + +import java.util.Map; + +import net.mograsim.logic.core.components.memory.WordAddressableMemoryComponent; +import net.mograsim.logic.core.timeline.Timeline; +import net.mograsim.logic.core.wires.Wire; +import net.mograsim.logic.core.wires.Wire.ReadEnd; +import net.mograsim.logic.core.wires.Wire.ReadWriteEnd; +import net.mograsim.logic.model.model.components.atomic.GUIMemoryWA; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.modeladapter.LogicModelParameters; + +public class WordAddressableMemoryAdapter implements ComponentAdapter +{ + + @Override + public Class getSupportedClass() + { + return GUIMemoryWA.class; + } + + @SuppressWarnings("unused") + @Override + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIMemoryWA guiComponent, + Map logicWiresPerPin) + { + ReadWriteEnd data = logicWiresPerPin.get(guiComponent.getDataPin()).createReadWriteEnd(); + ReadEnd address = logicWiresPerPin.get(guiComponent.getAddressPin()).createReadOnlyEnd(); + ReadEnd mode = logicWiresPerPin.get(guiComponent.getReadWritePin()).createReadOnlyEnd(); + new WordAddressableMemoryComponent(timeline, 2, guiComponent.maximalAddress, guiComponent.minimalAddress, data, mode, address); + } + +}