X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.am2900%2Ftest%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2Fam2901%2FAm2901Testbench.java;h=1260464b116ca056e471ec000a4dc03c833681e2;hb=b9dfbfb6f3db3a2676f79d7ce381957f77f54050;hp=3a7ffa220411592a98de44b1eeec3c74a20e52cf;hpb=ccc97ca46668196a77da02acb2bde450e6d20922;p=Mograsim.git diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java index 3a7ffa22..1260464b 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java @@ -4,7 +4,10 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.SimpleLogicUIStandalone; +import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.logic.model.model.components.GUIComponent; import net.mograsim.logic.model.model.components.atomic.GUIAndGate; @@ -13,6 +16,7 @@ import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; import net.mograsim.logic.model.model.components.atomic.GUINotGate; import net.mograsim.logic.model.model.components.atomic.TextComponent; import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; import net.mograsim.logic.model.model.wires.WireCrossPoint; import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; import net.mograsim.logic.model.util.ModellingTool; @@ -21,7 +25,7 @@ public class Am2901Testbench { public static void main(String[] args) { - SimpleLogicUIStandalone.executeVisualisation(Am2901Testbench::createTestbench); + SimpleLogicUIStandalone.executeVisualisation(Am2901Testbench::createTestbench, Am2901Testbench::beforeRun); } public static void createTestbench(ViewModelModifiable model) @@ -51,12 +55,10 @@ public class Am2901Testbench and.moveTo(135, -30); Pin last = and.getPin("Y"); - // guess which pins are outputs and which are inputs - // TODO this code exists four times... but it seems too "hacky" to put it in a helper class List inputPinNames = new ArrayList<>(); List outputPinNames = new ArrayList<>(); for (Pin p : comp.getPins().values()) - if (p.getRelX() == 0) + if (p.usage == PinUsage.INPUT) inputPinNames.add(p.name); else outputPinNames.add(p.name); @@ -99,4 +101,16 @@ public class Am2901Testbench label.moveTo(x + 25, y); } } + + public static void beforeRun(VisualisationObjects vis) + { + vis.model.getComponentsByName().values().forEach(c -> + { + if (c instanceof GUIManualSwitch) + { + GUIManualSwitch cCasted = (GUIManualSwitch) c; + cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth)); + } + }); + } } \ No newline at end of file