X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2FLogicCoreAdapter.java;h=98ac48b6c9ba8e05d881131930c8274619517722;hb=HEAD;hp=70f256ab99035400cdcd76e23d0bc01e4dbb2132;hpb=7d05144c25daa53e60fc9ed9fd503546a86567f8;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/LogicCoreAdapter.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/LogicCoreAdapter.java index 70f256ab..98ac48b6 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/LogicCoreAdapter.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/LogicCoreAdapter.java @@ -18,8 +18,8 @@ import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelInterface; import net.mograsim.logic.model.model.wires.ModelWire; -import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; +import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.componentadapters.ComponentAdapter; public class LogicCoreAdapter @@ -114,6 +114,7 @@ public class LogicCoreAdapter modelWire.setCoreModelBinding(modelWireSharedReadEnd.get(logicWiresPerPin.get(modelWire.getPin1()))); } + // TODO replace with a proper Union-Find datastructure private static Map> getConnectedPinGroups(Set allPins, Collection wires) { Map> connectedPinsPerPin = new HashMap<>(); @@ -142,11 +143,14 @@ public class LogicCoreAdapter return connectedPinsPerPin; } + public static final Map, Integer> gateCountsPerComponentClass = new HashMap<>(); + @SuppressWarnings("unchecked") private static void createAndLinkComponent(Timeline timeline, CoreModelParameters params, ModelComponent modelComponent, Map logicWiresPerPin) { Class cls = modelComponent.getClass(); + gateCountsPerComponentClass.merge(modelComponent.getClass(), 1, Integer::sum); ComponentAdapter adapter = null; while (cls != ModelComponent.class && adapter == null) {