X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2Fcomponentadapters%2FTriStateBufferAdapter.java;fp=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2Fcomponentadapters%2FTriStateBufferAdapter.java;h=56a838b75d8d62d05cdbb3406f4dc8bf0ad22693;hb=7d05144c25daa53e60fc9ed9fd503546a86567f8;hp=0000000000000000000000000000000000000000;hpb=8bed58cd47f4e53a0a83e066d38864aa6875502f;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java new file mode 100644 index 00000000..56a838b7 --- /dev/null +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java @@ -0,0 +1,32 @@ +package net.mograsim.logic.model.modeladapter.componentadapters; + +import java.util.Map; + +import net.mograsim.logic.core.components.CoreTriStateBuffer; +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.components.atomic.ModelTriStateBuffer; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.modeladapter.CoreModelParameters; + +public class TriStateBufferAdapter implements ComponentAdapter +{ + @Override + public Class getSupportedClass() + { + return ModelTriStateBuffer.class; + } + + @SuppressWarnings("unused") + @Override + public void createAndLinkComponent(Timeline timeline, CoreModelParameters params, ModelTriStateBuffer modelTsb, + Map logicWiresPerPin) + { + ReadEnd in = logicWiresPerPin.get(modelTsb.getPin("IN")).createReadOnlyEnd(); + ReadEnd enable = logicWiresPerPin.get(modelTsb.getPin("EN")).createReadOnlyEnd(); + ReadWriteEnd out = logicWiresPerPin.get(modelTsb.getPin("OUT")).createReadWriteEnd(); + new CoreTriStateBuffer(timeline, params.gateProcessTime, in, out, enable); + } +}