package net.mograsim.logic.model.examples;
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
+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.GUIBitDisplay;
{
public static void main(String[] args)
{
- SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create);
+ SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create, Am2910Testbench::beforeRun);
}
@SuppressWarnings("unused") // for GUIWires being created
GUIManualSwitch _CCEN = new GUIManualSwitch(model, 1, "_CCEN");
GUIManualSwitch I = new GUIManualSwitch(model, 4, "I");
GUIManualSwitch CI = new GUIManualSwitch(model, 1, "CI");
+ GUIManualSwitch _OE = new GUIManualSwitch(model, 1, "_OE");
GUIBitDisplay _FULL = new GUIBitDisplay(model, 1, "_FULL");
GUIBitDisplay _PL = new GUIBitDisplay(model, 1, "_PL");
GUIBitDisplay _MAP = new GUIBitDisplay(model, 1, "_MAP");
_MAP.moveTo(30, 105);
_VECT.moveTo(30, 125);
Y.moveTo(40, 65);
+ _OE.moveTo(60, 85);
new GUIWire(model, C.getOutputPin(), am2910.getPin("C"), new Point(60, -27.5));
new GUIWire(model, D.getOutputPin(), am2910.getPin("D"), new Point(36, -12.5));
new GUIWire(model, am2910.getPin("_MAP"), _MAP.getInputPin(), new Point(19, 112.5));
new GUIWire(model, am2910.getPin("_VECT"), _VECT.getInputPin(), new Point(25, 132.5));
new GUIWire(model, am2910.getPin("Y"), Y.getInputPin(), new Point(38, 72.5));
+ new GUIWire(model, am2910.getPin("_OE"), _OE.getOutputPin());
+ }
+
+ 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