X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fsnippets%2Fhighlevelstatehandlers%2Fstandard%2Fatomic%2FWireForcingAtomicHighLevelStateHandler.java;h=ecf3a4d9391c9e9b8e80497c4b00c115f458155d;hb=552986fd8718d5f2db00802015fdd1ecd58a5a2f;hp=c1e8faf1f272c9070de8001bc3ff7d8386d1c95b;hpb=039f31334c661633b71e945aa4332cedb7055526;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java index c1e8faf1..ecf3a4d9 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java @@ -9,7 +9,7 @@ import java.util.stream.Collectors; import net.mograsim.logic.core.types.Bit; import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.SnippetDefinintion; import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.HighLevelStateHandlerContext; @@ -19,8 +19,8 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt { private SubmodelComponent component; private int logicWidth; - private final List wiresToForce; - private final List wiresToForceInverted; + private final List wiresToForce; + private final List wiresToForceInverted; public WireForcingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context) { @@ -34,27 +34,27 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt this.wiresToForceInverted = new ArrayList<>(); if (params != null) { - Map wiresByName = component.submodel.getWiresByName(); - setWiresToForce(params.wiresToForce.stream().map((Function) wiresByName::get).collect(Collectors.toList()), - params.wiresToForceInverted.stream().map((Function) wiresByName::get).collect(Collectors.toList())); + Map wiresByName = component.submodel.getWiresByName(); + setWiresToForce(params.wiresToForce.stream().map((Function) wiresByName::get).collect(Collectors.toList()), + params.wiresToForceInverted.stream().map((Function) wiresByName::get).collect(Collectors.toList())); } } - public void set(List wiresToForce, List wiresToForceInverted) + public void set(List wiresToForce, List wiresToForceInverted) { setWiresToForce(wiresToForce, wiresToForceInverted); } - public void setWiresToForce(List wiresToForce, List wiresToForceInverted) + public void setWiresToForce(List wiresToForce, List wiresToForceInverted) { clearWiresToForce(); - for (GUIWire wire : wiresToForce) + for (ModelWire wire : wiresToForce) addWireToForce(wire, false); - for (GUIWire wire : wiresToForceInverted) + for (ModelWire wire : wiresToForceInverted) addWireToForce(wire, true); } - public void addWireToForce(GUIWire wire, boolean inverted) + public void addWireToForce(ModelWire wire, boolean inverted) { if (component.submodel.getWiresByName().get(wire.name) != wire) throw new IllegalArgumentException("Can only force wires belonging to the parent component of this handler"); @@ -79,12 +79,12 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt public Object getHighLevelState() { BitVector result = BitVector.of(Bit.ZERO, logicWidth); - for (GUIWire wire : wiresToForceInverted) - if (wire.hasLogicModelBinding()) + for (ModelWire wire : wiresToForceInverted) + if (wire.hasCoreModelBinding()) result = result.or(wire.getWireValues()); result = result.not(); - for (GUIWire wire : wiresToForce) - if (wire.hasLogicModelBinding()) + for (ModelWire wire : wiresToForce) + if (wire.hasCoreModelBinding()) result = result.and(wire.getWireValues()); return result; } @@ -97,12 +97,12 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt vector = BitVector.of((Bit) newState); else vector = (BitVector) newState; - for (GUIWire wire : wiresToForce) - if (wire.hasLogicModelBinding()) + for (ModelWire wire : wiresToForce) + if (wire.hasCoreModelBinding()) wire.forceWireValues(vector); vector = vector.not(); - for (GUIWire wire : wiresToForceInverted) - if (wire.hasLogicModelBinding()) + for (ModelWire wire : wiresToForceInverted) + if (wire.hasCoreModelBinding()) wire.forceWireValues(vector); }