From 611b5adfff8216fbe7fb3d81cdb1ecad443aa689 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Wed, 21 Aug 2019 10:47:28 +0200 Subject: [PATCH] Implemented GUIAm2904TestLogic --- .../components/am2904/GUIAm2904TestLogic.json | 769 ++++++++++++++++++ .../model/examples/GUIComponentTestbench.java | 2 +- 2 files changed, 770 insertions(+), 1 deletion(-) create mode 100644 net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json diff --git a/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json b/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json new file mode 100644 index 00000000..ff3abac9 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json @@ -0,0 +1,769 @@ +mograsim version: 0.1.3 +{ + "width": 29.0, + "height": 45.0, + "interfacePins": [ + { + "location": { + "x": 29.0, + "y": 30.0 + }, + "name": "Y101", + "logicWidth": 1 + }, + { + "location": { + "x": 29.0, + "y": 10.0 + }, + "name": "Y001", + "logicWidth": 1 + }, + { + "location": { + "x": 29.0, + "y": 25.0 + }, + "name": "Y100", + "logicWidth": 1 + }, + { + "location": { + "x": 29.0, + "y": 40.0 + }, + "name": "Y111", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 22.0 + }, + "name": "I", + "logicWidth": 4 + }, + { + "location": { + "x": 29.0, + "y": 20.0 + }, + "name": "Y011", + "logicWidth": 1 + }, + { + "location": { + "x": 29.0, + "y": 5.0 + }, + "name": "Y000", + "logicWidth": 1 + }, + { + "location": { + "x": 29.0, + "y": 35.0 + }, + "name": "Y110", + "logicWidth": 1 + }, + { + "location": { + "x": 29.0, + "y": 15.0 + }, + "name": "Y010", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.2, + "subComps": [ + { + "id": "GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 40.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 80.0, + "y": 20.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#3", + "pos": { + "x": 40.0, + "y": 105.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 115.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 29.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 24.0, + "y": 114.0 + }, + "params": 1 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 5.0, + "y": 95.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 74.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 74.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 19.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 19.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 69.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 34.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 19.0, + "y": 149.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 69.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#5", + "pos": { + "x": 75.0, + "y": 165.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 34.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 35.0, + "y": 20.0 + } + }, + { + "id": "GUINandGate", + "name": "GUINandGate#4", + "pos": { + "x": 75.0, + "y": 115.0 + }, + "params": 1 + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 70.0, + "y": 45.0 + }, + { + "x": 110.0, + "y": 45.0 + }, + { + "x": 110.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y000" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y001" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 75.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 20.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 20.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y011" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y100" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y010" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 65.0, + "y": 115.0 + }, + { + "x": 65.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y110" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "Y" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y101" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#5", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 70.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 105.0, + "y": 20.0 + }, + { + "x": 105.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 20.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 30.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 35.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 25.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 35.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 30.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 20.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y111" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 25.0, + "y": 200.0 + } + ] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "Test\nlogic", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java index 27b69605..3bef1a07 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java @@ -25,7 +25,7 @@ public class GUIComponentTestbench @SuppressWarnings("unused") // for GUIWires being created public static void createTestbench(ViewModelModifiable model) { - GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "file:components/am2904/GUIAm2904muSR.json"); + GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "file:components/am2904/GUIAm2904TestLogic.json"); // 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 -- 2.17.1