--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUI_rsLatch",
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Q",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "_Q",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "_R",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "_S",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 7.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 12.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 16.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "_S"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "_R"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 37.5
+ },
+ {
+ "x": 35.0,
+ "y": 27.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 42.5
+ },
+ {
+ "x": 5.0,
+ "y": 42.5
+ },
+ {
+ "x": 5.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 17.5
+ },
+ {
+ "x": 35.0,
+ "y": 7.5
+ },
+ {
+ "x": 65.0,
+ "y": 7.5
+ },
+ {
+ "x": 65.0,
+ "y": 12.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "_Q"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "_S",
+ "_R"
+ ],
+ "label": "_rsLatch",
+ "logic_width": 1,
+ "output_count": [
+ "Q",
+ "_Q"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIand",
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A",
+ "B"
+ ],
+ "label": "GUIand",
+ "logic_width": 1,
+ "output_count": [
+ "Y"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIand41",
+ "width": 35.0,
+ "height": 50.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 7.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 32.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 57.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 82.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 46.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 71.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 96.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 112.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "B"
+ ],
+ "label": "GUIand41",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIandor414",
+ "width": 35.0,
+ "height": 90.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "C1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "C2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "C3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "C4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 137.5
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 37.5
+ },
+ "name": "GUIor_4",
+ "params": {}
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 112.5
+ },
+ {
+ "x": 10.0,
+ "y": 142.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 137.5
+ },
+ {
+ "x": 5.0,
+ "y": 152.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 187.5
+ },
+ {
+ "x": 5.0,
+ "y": 172.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 212.5
+ },
+ {
+ "x": 10.0,
+ "y": 182.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 12.5
+ },
+ {
+ "x": 10.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 37.5
+ },
+ {
+ "x": 5.0,
+ "y": 52.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C3"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C4"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 87.5
+ },
+ {
+ "x": 5.0,
+ "y": 72.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 142.5
+ },
+ {
+ "x": 70.0,
+ "y": 120.0
+ },
+ {
+ "x": 30.0,
+ "y": 120.0
+ },
+ {
+ "x": 30.0,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B2"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 152.5
+ },
+ {
+ "x": 65.0,
+ "y": 125.0
+ },
+ {
+ "x": 25.0,
+ "y": 125.0
+ },
+ {
+ "x": 25.0,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 162.5
+ },
+ {
+ "x": 60.0,
+ "y": 130.0
+ },
+ {
+ "x": 20.0,
+ "y": 130.0
+ },
+ {
+ "x": 20.0,
+ "y": 102.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B4"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 172.5
+ },
+ {
+ "x": 55.0,
+ "y": 135.0
+ },
+ {
+ "x": 15.0,
+ "y": 135.0
+ },
+ {
+ "x": 15.0,
+ "y": 112.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 42.5
+ },
+ {
+ "x": 75.0,
+ "y": 12.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": [
+ {
+ "x": 80.0,
+ "y": 52.5
+ },
+ {
+ "x": 80.0,
+ "y": 37.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": [
+ {
+ "x": 80.0,
+ "y": 72.5
+ },
+ {
+ "x": 80.0,
+ "y": 87.5
+ }
+ ]
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "C1",
+ "C2",
+ "C3",
+ "C4",
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "B"
+ ],
+ "label": "GUIandor414",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIdemux2",
+ "width": 35.0,
+ "height": 40.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y00",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y11",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y10",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y01",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "S0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "S1",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 2.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 27.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 52.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 77.5
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 16.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 36.5,
+ "y": 61.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 41.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 66.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S0"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S1"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 62.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 67.5
+ },
+ {
+ "x": 32.5,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 37.5,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 37.5,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y00"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y01"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y10"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y11"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "S0",
+ "S1"
+ ],
+ "label": "GUIdemux2",
+ "logic_width": 1,
+ "output_count": [
+ "Y00",
+ "Y01",
+ "Y10",
+ "Y11"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIdff",
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Q",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "_Q",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "D",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.2,
+ "subComps": [
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 10.0
+ },
+ "name": "GUI_rsLatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 40.0
+ },
+ "name": "GUInand3",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 120.0,
+ "y": 60.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 120.0,
+ "y": 30.0
+ },
+ "name": "GUI_rsLatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 19.0,
+ "y": 64.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 99.0,
+ "y": 34.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 99.0,
+ "y": 44.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "_R"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 145.0,
+ "y": 70.0
+ },
+ {
+ "x": 145.0,
+ "y": 85.0
+ },
+ {
+ "x": 20.0,
+ "y": 85.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "_S"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "C"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "_Q"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 35.0
+ },
+ {
+ "x": 30.0,
+ "y": 45.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "_S"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "_R"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 65.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "_Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "_Q"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "C",
+ "D"
+ ],
+ "label": "GUIdff",
+ "logic_width": 1,
+ "output_count": [
+ "Q",
+ "_Q"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIdlatch",
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Q",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "_Q",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "D",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "E",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 7.5
+ },
+ "name": "GUI_rsLatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "E"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 25.0
+ },
+ {
+ "x": 10.0,
+ "y": 25.0
+ },
+ {
+ "x": 10.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "_S"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "_R"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 37.5
+ },
+ {
+ "x": 40.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "_Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "_Q"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "D",
+ "E"
+ ],
+ "label": "GUIdlatch",
+ "logic_width": 1,
+ "output_count": [
+ "Q",
+ "_Q"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIdlatch4",
+ "width": 35.0,
+ "height": 50.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "D4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Q1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Q2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Q3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Q4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "D1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "D2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "D3",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 7.5
+ },
+ "name": "GUIdlatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 32.5
+ },
+ "name": "GUIdlatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 57.5
+ },
+ "name": "GUIdlatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 82.5
+ },
+ "name": "GUIdlatch",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 46.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 71.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 96.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 112.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "E"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "E"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "E"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "E"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "D"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "D"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "D"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "D1",
+ "D2",
+ "D3",
+ "D4",
+ "C"
+ ],
+ "label": "GUIdlatch4",
+ "logic_width": 1,
+ "output_count": [
+ "Q1",
+ "Q2",
+ "Q3",
+ "Q4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIfulladder",
+ "width": 35.0,
+ "height": 30.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Z",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 5.0,
+ "y": 40.0
+ },
+ "name": "GUIhalfadder",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 7.5
+ },
+ "name": "GUIhalfadder",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 57.5,
+ "y": 40.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "_Z"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "_Z"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 82.5,
+ "y": 22.5
+ },
+ {
+ "x": 82.5,
+ "y": 35.0
+ },
+ {
+ "x": 52.5,
+ "y": 35.0
+ },
+ {
+ "x": 52.5,
+ "y": 45.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Z"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A",
+ "B",
+ "C"
+ ],
+ "label": "GUIfulladder",
+ "logic_width": 1,
+ "output_count": [
+ "Y",
+ "Z"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIhalfadder",
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "_Z",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "_Z"
+ },
+ "path": [
+ {
+ "x": 80.0,
+ "y": 25.0
+ },
+ {
+ "x": 80.0,
+ "y": 37.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 62.5,
+ "y": 12.5
+ },
+ {
+ "x": 62.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 62.5,
+ "y": 37.5
+ },
+ {
+ "x": 62.5,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A",
+ "B"
+ ],
+ "label": "GUIhalfadder",
+ "logic_width": 1,
+ "output_count": [
+ "Y",
+ "_Z"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUImux1",
+ "width": 35.0,
+ "height": 30.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "S0",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 7.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 22.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 47.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 60.0,
+ "y": 30.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 21.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S0"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 52.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "S0",
+ "I0",
+ "I1"
+ ],
+ "label": "GUImux1",
+ "logic_width": 1,
+ "output_count": [
+ "Y"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUImux1_4",
+ "width": 35.0,
+ "height": 90.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I0_1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "I0_3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "I1_2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I0_2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "I1_1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "I1_4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "S0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "I0_4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "I1_3",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 7.5
+ },
+ "name": "GUImux1",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 42.5
+ },
+ "name": "GUImux1",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 77.5
+ },
+ "name": "GUImux1",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 112.5
+ },
+ "name": "GUImux1",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 46.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 81.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S0"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "S0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0_1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 37.5
+ },
+ {
+ "x": 5.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1_1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 137.5
+ },
+ {
+ "x": 10.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0_2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 62.5
+ },
+ {
+ "x": 5.0,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1_2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I1"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 162.5
+ },
+ {
+ "x": 15.0,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "S0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0_3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 87.5
+ },
+ {
+ "x": 5.0,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1_3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "I1"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 187.5
+ },
+ {
+ "x": 20.0,
+ "y": 102.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "S0"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 117.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0_4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 112.5
+ },
+ {
+ "x": 5.0,
+ "y": 127.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1_4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "I1"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 212.5
+ },
+ {
+ "x": 25.0,
+ "y": 137.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "S0",
+ "I0_1",
+ "I0_2",
+ "I0_3",
+ "I0_4",
+ "I1_1",
+ "I1_2",
+ "I1_3",
+ "I1_4"
+ ],
+ "label": "GUImux1_4",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUInand3",
+ "width": 35.0,
+ "height": 30.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 62.5,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 57.5,
+ "y": 25.0
+ },
+ {
+ "x": 57.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 62.5
+ },
+ {
+ "x": 60.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A",
+ "B",
+ "C"
+ ],
+ "label": "GUInand3",
+ "logic_width": 1,
+ "output_count": [
+ "Y"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUInot4",
+ "width": 35.0,
+ "height": 40.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 52.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 30.0,
+ "y": 77.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 61.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 86.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A1",
+ "A2",
+ "A3",
+ "A4"
+ ],
+ "label": "GUInot4",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIor4",
+ "width": 35.0,
+ "height": 40.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.2,
+ "subComps": [
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 65.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 115.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 165.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 40.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 140.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 110.0,
+ "y": 40.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 110.0,
+ "y": 140.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 140.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 74.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 124.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 174.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 104.0,
+ "y": 49.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 104.0,
+ "y": 149.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 70.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 120.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 170.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 80.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 130.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 45.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 145.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 155.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A1",
+ "A2",
+ "A3",
+ "A4"
+ ],
+ "label": "GUIor4",
+ "logic_width": 1,
+ "output_count": [
+ "Y"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIor_4",
+ "width": 35.0,
+ "height": 80.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "B2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "B3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "B4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 52.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 77.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 102.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 127.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 152.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 177.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 52.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 77.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 61.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 86.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 111.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 136.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 161.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 186.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B2"
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B3"
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B4"
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 107.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 117.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 132.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 142.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 157.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 167.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 182.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 192.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 12.5
+ },
+ {
+ "x": 40.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 112.5
+ },
+ {
+ "x": 45.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 37.5
+ },
+ {
+ "x": 40.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 137.5
+ },
+ {
+ "x": 50.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 62.5
+ },
+ {
+ "x": 40.0,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 162.5
+ },
+ {
+ "x": 55.0,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 87.5
+ },
+ {
+ "x": 40.0,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 187.5
+ },
+ {
+ "x": 60.0,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "B1",
+ "B2",
+ "B3",
+ "B4"
+ ],
+ "label": "GUIor_4",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIram2",
+ "width": 35.0,
+ "height": 90.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "QA1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "QB2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "QB1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "QA3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 75.0
+ },
+ "name": "QB4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "QA2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 65.0
+ },
+ "name": "QB3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "QA4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "D1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "B0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "WE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "D2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "D3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "D4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.1,
+ "subComps": [
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 45.0
+ },
+ "name": "GUIdemux2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 150.0
+ },
+ "name": "GUIdemux2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 130.0,
+ "y": 150.0
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 325.0
+ },
+ "name": "GUIdlatch4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 475.0
+ },
+ "name": "GUIdlatch4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 625.0
+ },
+ "name": "GUIdlatch4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 775.0
+ },
+ "name": "GUIdlatch4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 235.0,
+ "y": 375.0
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 235.0,
+ "y": 485.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 235.0,
+ "y": 635.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 235.0,
+ "y": 785.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 135.0,
+ "y": 325.0
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 135.0,
+ "y": 435.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 135.0,
+ "y": 585.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 135.0,
+ "y": 735.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 109.0,
+ "y": 154.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 104.0,
+ "y": 164.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 99.0,
+ "y": 174.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 94.0,
+ "y": 184.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 549.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 649.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 749.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 809.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 479.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 489.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 499.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 509.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 629.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 639.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 649.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 659.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 129.0,
+ "y": 329.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 124.0,
+ "y": 339.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 119.0,
+ "y": 349.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 114.0,
+ "y": 359.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 129.0,
+ "y": 479.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 124.0,
+ "y": 489.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 119.0,
+ "y": 499.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 114.0,
+ "y": 509.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 129.0,
+ "y": 629.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 124.0,
+ "y": 639.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 119.0,
+ "y": 649.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 114.0,
+ "y": 659.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 129.0,
+ "y": 779.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 124.0,
+ "y": 789.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 119.0,
+ "y": 799.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 114.0,
+ "y": 809.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A0"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "S0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "S1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 150.0
+ },
+ {
+ "x": 10.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B0"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 250.0
+ },
+ {
+ "x": 5.0,
+ "y": 155.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 350.0
+ },
+ {
+ "x": 10.0,
+ "y": 165.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y00"
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y01"
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y10"
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y11"
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "WE"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 450.0
+ },
+ {
+ "x": 5.0,
+ "y": 300.0
+ },
+ {
+ "x": 125.0,
+ "y": 300.0
+ },
+ {
+ "x": 125.0,
+ "y": 195.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 185.0,
+ "y": 155.0
+ },
+ {
+ "x": 185.0,
+ "y": 250.0
+ },
+ {
+ "x": 30.0,
+ "y": 250.0
+ },
+ {
+ "x": 30.0,
+ "y": 370.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 180.0,
+ "y": 165.0
+ },
+ {
+ "x": 180.0,
+ "y": 245.0
+ },
+ {
+ "x": 25.0,
+ "y": 245.0
+ },
+ {
+ "x": 25.0,
+ "y": 520.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 175.0,
+ "y": 175.0
+ },
+ {
+ "x": 175.0,
+ "y": 240.0
+ },
+ {
+ "x": 20.0,
+ "y": 240.0
+ },
+ {
+ "x": 20.0,
+ "y": 670.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 170.0,
+ "y": 185.0
+ },
+ {
+ "x": 170.0,
+ "y": 235.0
+ },
+ {
+ "x": 15.0,
+ "y": 235.0
+ },
+ {
+ "x": 15.0,
+ "y": 820.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D1"
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D2"
+ },
+ "pin2": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D3"
+ },
+ "pin2": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D4"
+ },
+ "pin2": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 850.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D1"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 330.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D2"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 340.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D3"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 350.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D4"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 360.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D1"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 780.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D2"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 790.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D3"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 800.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 44,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 45,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 46,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 47,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y00"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 210.0,
+ "y": 50.0
+ },
+ {
+ "x": 210.0,
+ "y": 420.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y01"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 205.0,
+ "y": 60.0
+ },
+ {
+ "x": 205.0,
+ "y": 570.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y10"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 200.0,
+ "y": 70.0
+ },
+ {
+ "x": 200.0,
+ "y": 720.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y11"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 195.0,
+ "y": 80.0
+ },
+ {
+ "x": 195.0,
+ "y": 870.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 110.0,
+ "y": 370.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 520.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 670.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 820.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 380.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 390.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 400.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 410.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 530.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 540.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 550.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 560.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 680.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 690.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 700.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 710.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 44,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 830.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 45,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 840.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 46,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 850.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 47,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 860.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 44,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 45,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 46,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 47,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 380.0
+ },
+ {
+ "x": 290.0,
+ "y": 445.0
+ },
+ {
+ "x": 230.0,
+ "y": 445.0
+ },
+ {
+ "x": 230.0,
+ "y": 490.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 285.0,
+ "y": 390.0
+ },
+ {
+ "x": 285.0,
+ "y": 440.0
+ },
+ {
+ "x": 225.0,
+ "y": 440.0
+ },
+ {
+ "x": 225.0,
+ "y": 500.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 280.0,
+ "y": 400.0
+ },
+ {
+ "x": 280.0,
+ "y": 435.0
+ },
+ {
+ "x": 220.0,
+ "y": 435.0
+ },
+ {
+ "x": 220.0,
+ "y": 510.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 275.0,
+ "y": 410.0
+ },
+ {
+ "x": 275.0,
+ "y": 430.0
+ },
+ {
+ "x": 215.0,
+ "y": 430.0
+ },
+ {
+ "x": 215.0,
+ "y": 520.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 490.0
+ },
+ {
+ "x": 290.0,
+ "y": 595.0
+ },
+ {
+ "x": 230.0,
+ "y": 595.0
+ },
+ {
+ "x": 230.0,
+ "y": 640.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 285.0,
+ "y": 500.0
+ },
+ {
+ "x": 285.0,
+ "y": 590.0
+ },
+ {
+ "x": 225.0,
+ "y": 590.0
+ },
+ {
+ "x": 225.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 280.0,
+ "y": 510.0
+ },
+ {
+ "x": 280.0,
+ "y": 585.0
+ },
+ {
+ "x": 220.0,
+ "y": 585.0
+ },
+ {
+ "x": 220.0,
+ "y": 660.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 275.0,
+ "y": 520.0
+ },
+ {
+ "x": 275.0,
+ "y": 580.0
+ },
+ {
+ "x": 215.0,
+ "y": 580.0
+ },
+ {
+ "x": 215.0,
+ "y": 670.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 640.0
+ },
+ {
+ "x": 290.0,
+ "y": 745.0
+ },
+ {
+ "x": 230.0,
+ "y": 745.0
+ },
+ {
+ "x": 230.0,
+ "y": 790.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 285.0,
+ "y": 650.0
+ },
+ {
+ "x": 285.0,
+ "y": 740.0
+ },
+ {
+ "x": 225.0,
+ "y": 740.0
+ },
+ {
+ "x": 225.0,
+ "y": 800.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 280.0,
+ "y": 660.0
+ },
+ {
+ "x": 280.0,
+ "y": 735.0
+ },
+ {
+ "x": 220.0,
+ "y": 735.0
+ },
+ {
+ "x": 220.0,
+ "y": 810.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 275.0,
+ "y": 670.0
+ },
+ {
+ "x": 275.0,
+ "y": 730.0
+ },
+ {
+ "x": 215.0,
+ "y": 730.0
+ },
+ {
+ "x": 215.0,
+ "y": 820.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA1"
+ },
+ "path": [
+ {
+ "x": 300.0,
+ "y": 790.0
+ },
+ {
+ "x": 300.0,
+ "y": 50.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA2"
+ },
+ "path": [
+ {
+ "x": 305.0,
+ "y": 800.0
+ },
+ {
+ "x": 305.0,
+ "y": 150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA3"
+ },
+ "path": [
+ {
+ "x": 310.0,
+ "y": 810.0
+ },
+ {
+ "x": 310.0,
+ "y": 250.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA4"
+ },
+ "path": [
+ {
+ "x": 315.0,
+ "y": 820.0
+ },
+ {
+ "x": 315.0,
+ "y": 350.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 190.0,
+ "y": 330.0
+ },
+ {
+ "x": 190.0,
+ "y": 430.0
+ },
+ {
+ "x": 130.0,
+ "y": 430.0
+ },
+ {
+ "x": 130.0,
+ "y": 440.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 185.0,
+ "y": 340.0
+ },
+ {
+ "x": 185.0,
+ "y": 425.0
+ },
+ {
+ "x": 125.0,
+ "y": 425.0
+ },
+ {
+ "x": 125.0,
+ "y": 450.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 180.0,
+ "y": 350.0
+ },
+ {
+ "x": 180.0,
+ "y": 420.0
+ },
+ {
+ "x": 120.0,
+ "y": 420.0
+ },
+ {
+ "x": 120.0,
+ "y": 460.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 175.0,
+ "y": 360.0
+ },
+ {
+ "x": 175.0,
+ "y": 415.0
+ },
+ {
+ "x": 115.0,
+ "y": 415.0
+ },
+ {
+ "x": 115.0,
+ "y": 470.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 190.0,
+ "y": 440.0
+ },
+ {
+ "x": 190.0,
+ "y": 580.0
+ },
+ {
+ "x": 130.0,
+ "y": 580.0
+ },
+ {
+ "x": 130.0,
+ "y": 590.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 185.0,
+ "y": 450.0
+ },
+ {
+ "x": 185.0,
+ "y": 575.0
+ },
+ {
+ "x": 125.0,
+ "y": 575.0
+ },
+ {
+ "x": 125.0,
+ "y": 600.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 180.0,
+ "y": 460.0
+ },
+ {
+ "x": 180.0,
+ "y": 570.0
+ },
+ {
+ "x": 120.0,
+ "y": 570.0
+ },
+ {
+ "x": 120.0,
+ "y": 610.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 175.0,
+ "y": 470.0
+ },
+ {
+ "x": 175.0,
+ "y": 565.0
+ },
+ {
+ "x": 115.0,
+ "y": 565.0
+ },
+ {
+ "x": 115.0,
+ "y": 620.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 190.0,
+ "y": 590.0
+ },
+ {
+ "x": 190.0,
+ "y": 730.0
+ },
+ {
+ "x": 130.0,
+ "y": 730.0
+ },
+ {
+ "x": 130.0,
+ "y": 740.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 185.0,
+ "y": 600.0
+ },
+ {
+ "x": 185.0,
+ "y": 725.0
+ },
+ {
+ "x": 125.0,
+ "y": 725.0
+ },
+ {
+ "x": 125.0,
+ "y": 750.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 180.0,
+ "y": 610.0
+ },
+ {
+ "x": 180.0,
+ "y": 720.0
+ },
+ {
+ "x": 120.0,
+ "y": 720.0
+ },
+ {
+ "x": 120.0,
+ "y": 760.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 175.0,
+ "y": 620.0
+ },
+ {
+ "x": 175.0,
+ "y": 715.0
+ },
+ {
+ "x": 115.0,
+ "y": 715.0
+ },
+ {
+ "x": 115.0,
+ "y": 770.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB1"
+ },
+ "path": [
+ {
+ "x": 190.0,
+ "y": 740.0
+ },
+ {
+ "x": 190.0,
+ "y": 880.0
+ },
+ {
+ "x": 325.0,
+ "y": 880.0
+ },
+ {
+ "x": 325.0,
+ "y": 450.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB2"
+ },
+ "path": [
+ {
+ "x": 185.0,
+ "y": 750.0
+ },
+ {
+ "x": 185.0,
+ "y": 885.0
+ },
+ {
+ "x": 330.0,
+ "y": 885.0
+ },
+ {
+ "x": 330.0,
+ "y": 550.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB3"
+ },
+ "path": [
+ {
+ "x": 180.0,
+ "y": 760.0
+ },
+ {
+ "x": 180.0,
+ "y": 890.0
+ },
+ {
+ "x": 335.0,
+ "y": 890.0
+ },
+ {
+ "x": 335.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB4"
+ },
+ "path": [
+ {
+ "x": 175.0,
+ "y": 770.0
+ },
+ {
+ "x": 175.0,
+ "y": 895.0
+ },
+ {
+ "x": 340.0,
+ "y": 895.0
+ },
+ {
+ "x": 340.0,
+ "y": 750.0
+ }
+ ]
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A0",
+ "A1",
+ "B0",
+ "B1",
+ "WE",
+ "D1",
+ "D2",
+ "D3",
+ "D4"
+ ],
+ "label": "GUIram2",
+ "logic_width": 1,
+ "output_count": [
+ "QA1",
+ "QA2",
+ "QA3",
+ "QA4",
+ "QB1",
+ "QB2",
+ "QB3",
+ "QB4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIram4",
+ "width": 35.0,
+ "height": 130.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "QA1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "QB2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "QB1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "QA3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 75.0
+ },
+ "name": "QB4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "QA2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 65.0
+ },
+ "name": "QB3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "QA4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "D1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "B0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "WE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 105.0
+ },
+ "name": "D2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 115.0
+ },
+ "name": "D3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "B2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 125.0
+ },
+ "name": "D4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "B3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.1,
+ "subComps": [
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 45.0
+ },
+ "name": "GUIdemux2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 150.0
+ },
+ "name": "GUIdemux2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 235.0,
+ "y": 150.0
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 330.0
+ },
+ "name": "GUIram2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 480.0
+ },
+ "name": "GUIram2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 630.0
+ },
+ "name": "GUIram2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 780.0
+ },
+ "name": "GUIram2",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 250.0,
+ "y": 375.0
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 250.0,
+ "y": 485.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 250.0,
+ "y": 635.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 250.0,
+ "y": 785.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 155.0,
+ "y": 325.0
+ },
+ "name": "GUIand41",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 155.0,
+ "y": 435.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 155.0,
+ "y": 585.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 155.0,
+ "y": 735.0
+ },
+ "name": "GUIandor414",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 229.0,
+ "y": 154.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 224.0,
+ "y": 164.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 219.0,
+ "y": 174.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 214.0,
+ "y": 184.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 59.0,
+ "y": 534.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 544.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 69.0,
+ "y": 554.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 564.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 59.0,
+ "y": 684.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 694.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 69.0,
+ "y": 704.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 714.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 59.0,
+ "y": 834.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 844.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 69.0,
+ "y": 854.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 864.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 484.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 494.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 504.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 54.0,
+ "y": 514.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 634.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 644.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 654.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 54.0,
+ "y": 664.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 334.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 349.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 649.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 54.0,
+ "y": 749.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A0"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "S0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "S1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 150.0
+ },
+ {
+ "x": 10.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B0"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 450.0
+ },
+ {
+ "x": 5.0,
+ "y": 155.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 550.0
+ },
+ {
+ "x": 10.0,
+ "y": 165.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y00"
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y01"
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y10"
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y11"
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "WE"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 850.0
+ },
+ {
+ "x": 15.0,
+ "y": 195.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "WE"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 155.0
+ },
+ {
+ "x": 290.0,
+ "y": 230.0
+ },
+ {
+ "x": 35.0,
+ "y": 230.0
+ },
+ {
+ "x": 35.0,
+ "y": 375.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "WE"
+ },
+ "path": [
+ {
+ "x": 285.0,
+ "y": 165.0
+ },
+ {
+ "x": 285.0,
+ "y": 225.0
+ },
+ {
+ "x": 30.0,
+ "y": 225.0
+ },
+ {
+ "x": 30.0,
+ "y": 525.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "WE"
+ },
+ "path": [
+ {
+ "x": 280.0,
+ "y": 175.0
+ },
+ {
+ "x": 280.0,
+ "y": 220.0
+ },
+ {
+ "x": 25.0,
+ "y": 220.0
+ },
+ {
+ "x": 25.0,
+ "y": 675.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "WE"
+ },
+ "path": [
+ {
+ "x": 275.0,
+ "y": 185.0
+ },
+ {
+ "x": 275.0,
+ "y": 215.0
+ },
+ {
+ "x": 20.0,
+ "y": 215.0
+ },
+ {
+ "x": 20.0,
+ "y": 825.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 345.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B0"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 355.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 365.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B2"
+ },
+ "pin2": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B0"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A0"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 785.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 795.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B0"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 805.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 815.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 250.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B3"
+ },
+ "pin2": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D1"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 385.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D2"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 395.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D3"
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 405.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D4"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 415.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D1"
+ },
+ "pin2": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 950.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D2"
+ },
+ "pin2": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 1050.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D3"
+ },
+ "pin2": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 1150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D4"
+ },
+ "pin2": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 1250.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y00"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 135.0,
+ "y": 50.0
+ },
+ {
+ "x": 135.0,
+ "y": 370.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y01"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 60.0
+ },
+ {
+ "x": 130.0,
+ "y": 520.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y10"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 70.0
+ },
+ {
+ "x": 125.0,
+ "y": 670.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y11"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 80.0
+ },
+ {
+ "x": 120.0,
+ "y": 820.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 230.0,
+ "y": 420.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 225.0,
+ "y": 570.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 220.0,
+ "y": 720.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 215.0,
+ "y": 870.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QB1"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 375.0
+ },
+ {
+ "x": 140.0,
+ "y": 380.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QB2"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 385.0
+ },
+ {
+ "x": 140.0,
+ "y": 390.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QB3"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 395.0
+ },
+ {
+ "x": 140.0,
+ "y": 400.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QB4"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 405.0
+ },
+ {
+ "x": 140.0,
+ "y": 410.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QB1"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 525.0
+ },
+ {
+ "x": 140.0,
+ "y": 530.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QB2"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 535.0
+ },
+ {
+ "x": 140.0,
+ "y": 540.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QB3"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 545.0
+ },
+ {
+ "x": 140.0,
+ "y": 550.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QB4"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 555.0
+ },
+ {
+ "x": 140.0,
+ "y": 560.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QB1"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 675.0
+ },
+ {
+ "x": 140.0,
+ "y": 680.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QB2"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 685.0
+ },
+ {
+ "x": 140.0,
+ "y": 690.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QB3"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 695.0
+ },
+ {
+ "x": 140.0,
+ "y": 700.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QB4"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 705.0
+ },
+ {
+ "x": 140.0,
+ "y": 710.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QB1"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 825.0
+ },
+ {
+ "x": 140.0,
+ "y": 830.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QB2"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 835.0
+ },
+ {
+ "x": 140.0,
+ "y": 840.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QB3"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 845.0
+ },
+ {
+ "x": 140.0,
+ "y": 850.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QB4"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 855.0
+ },
+ {
+ "x": 140.0,
+ "y": 860.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QA1"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 335.0
+ },
+ {
+ "x": 140.0,
+ "y": 330.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QA2"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 345.0
+ },
+ {
+ "x": 140.0,
+ "y": 340.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QA3"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 355.0
+ },
+ {
+ "x": 140.0,
+ "y": 350.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "QA4"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 365.0
+ },
+ {
+ "x": 140.0,
+ "y": 360.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QA1"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 485.0
+ },
+ {
+ "x": 140.0,
+ "y": 480.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QA2"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 495.0
+ },
+ {
+ "x": 140.0,
+ "y": 490.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QA3"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 505.0
+ },
+ {
+ "x": 140.0,
+ "y": 500.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "QA4"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 515.0
+ },
+ {
+ "x": 140.0,
+ "y": 510.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QA1"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 635.0
+ },
+ {
+ "x": 140.0,
+ "y": 630.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QA2"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 645.0
+ },
+ {
+ "x": 140.0,
+ "y": 640.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QA3"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 655.0
+ },
+ {
+ "x": 140.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "QA4"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 665.0
+ },
+ {
+ "x": 140.0,
+ "y": 660.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QA1"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 785.0
+ },
+ {
+ "x": 140.0,
+ "y": 780.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QA2"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 795.0
+ },
+ {
+ "x": 140.0,
+ "y": 790.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QA3"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 805.0
+ },
+ {
+ "x": 140.0,
+ "y": 800.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "QA4"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 815.0
+ },
+ {
+ "x": 140.0,
+ "y": 810.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 305.0,
+ "y": 380.0
+ },
+ {
+ "x": 305.0,
+ "y": 445.0
+ },
+ {
+ "x": 245.0,
+ "y": 445.0
+ },
+ {
+ "x": 245.0,
+ "y": 490.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 300.0,
+ "y": 390.0
+ },
+ {
+ "x": 300.0,
+ "y": 440.0
+ },
+ {
+ "x": 240.0,
+ "y": 440.0
+ },
+ {
+ "x": 240.0,
+ "y": 500.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 295.0,
+ "y": 400.0
+ },
+ {
+ "x": 295.0,
+ "y": 435.0
+ },
+ {
+ "x": 235.0,
+ "y": 435.0
+ },
+ {
+ "x": 235.0,
+ "y": 510.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 410.0
+ },
+ {
+ "x": 290.0,
+ "y": 430.0
+ },
+ {
+ "x": 230.0,
+ "y": 430.0
+ },
+ {
+ "x": 230.0,
+ "y": 520.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 305.0,
+ "y": 490.0
+ },
+ {
+ "x": 305.0,
+ "y": 595.0
+ },
+ {
+ "x": 245.0,
+ "y": 595.0
+ },
+ {
+ "x": 245.0,
+ "y": 640.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 300.0,
+ "y": 500.0
+ },
+ {
+ "x": 300.0,
+ "y": 590.0
+ },
+ {
+ "x": 240.0,
+ "y": 590.0
+ },
+ {
+ "x": 240.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 295.0,
+ "y": 510.0
+ },
+ {
+ "x": 295.0,
+ "y": 585.0
+ },
+ {
+ "x": 235.0,
+ "y": 585.0
+ },
+ {
+ "x": 235.0,
+ "y": 660.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 520.0
+ },
+ {
+ "x": 290.0,
+ "y": 580.0
+ },
+ {
+ "x": 230.0,
+ "y": 580.0
+ },
+ {
+ "x": 230.0,
+ "y": 670.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 305.0,
+ "y": 640.0
+ },
+ {
+ "x": 305.0,
+ "y": 745.0
+ },
+ {
+ "x": 245.0,
+ "y": 745.0
+ },
+ {
+ "x": 245.0,
+ "y": 790.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 300.0,
+ "y": 650.0
+ },
+ {
+ "x": 300.0,
+ "y": 740.0
+ },
+ {
+ "x": 240.0,
+ "y": 740.0
+ },
+ {
+ "x": 240.0,
+ "y": 800.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 295.0,
+ "y": 660.0
+ },
+ {
+ "x": 295.0,
+ "y": 735.0
+ },
+ {
+ "x": 235.0,
+ "y": 735.0
+ },
+ {
+ "x": 235.0,
+ "y": 810.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 670.0
+ },
+ {
+ "x": 290.0,
+ "y": 730.0
+ },
+ {
+ "x": 230.0,
+ "y": 730.0
+ },
+ {
+ "x": 230.0,
+ "y": 820.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB1"
+ },
+ "path": [
+ {
+ "x": 330.0,
+ "y": 790.0
+ },
+ {
+ "x": 330.0,
+ "y": 450.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB2"
+ },
+ "path": [
+ {
+ "x": 335.0,
+ "y": 800.0
+ },
+ {
+ "x": 335.0,
+ "y": 550.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB3"
+ },
+ "path": [
+ {
+ "x": 340.0,
+ "y": 810.0
+ },
+ {
+ "x": 340.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QB4"
+ },
+ "path": [
+ {
+ "x": 345.0,
+ "y": 820.0
+ },
+ {
+ "x": 345.0,
+ "y": 750.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 210.0,
+ "y": 330.0
+ },
+ {
+ "x": 210.0,
+ "y": 430.0
+ },
+ {
+ "x": 150.0,
+ "y": 430.0
+ },
+ {
+ "x": 150.0,
+ "y": 440.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 205.0,
+ "y": 340.0
+ },
+ {
+ "x": 205.0,
+ "y": 425.0
+ },
+ {
+ "x": 145.0,
+ "y": 425.0
+ },
+ {
+ "x": 145.0,
+ "y": 450.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 200.0,
+ "y": 350.0
+ },
+ {
+ "x": 200.0,
+ "y": 420.0
+ },
+ {
+ "x": 140.0,
+ "y": 420.0
+ },
+ {
+ "x": 140.0,
+ "y": 460.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 195.0,
+ "y": 360.0
+ },
+ {
+ "x": 195.0,
+ "y": 415.0
+ },
+ {
+ "x": 135.0,
+ "y": 415.0
+ },
+ {
+ "x": 135.0,
+ "y": 470.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 210.0,
+ "y": 440.0
+ },
+ {
+ "x": 210.0,
+ "y": 580.0
+ },
+ {
+ "x": 150.0,
+ "y": 580.0
+ },
+ {
+ "x": 150.0,
+ "y": 590.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 205.0,
+ "y": 450.0
+ },
+ {
+ "x": 205.0,
+ "y": 575.0
+ },
+ {
+ "x": 145.0,
+ "y": 575.0
+ },
+ {
+ "x": 145.0,
+ "y": 600.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 200.0,
+ "y": 460.0
+ },
+ {
+ "x": 200.0,
+ "y": 570.0
+ },
+ {
+ "x": 140.0,
+ "y": 570.0
+ },
+ {
+ "x": 140.0,
+ "y": 610.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 195.0,
+ "y": 470.0
+ },
+ {
+ "x": 195.0,
+ "y": 565.0
+ },
+ {
+ "x": 135.0,
+ "y": 565.0
+ },
+ {
+ "x": 135.0,
+ "y": 620.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 210.0,
+ "y": 590.0
+ },
+ {
+ "x": 210.0,
+ "y": 730.0
+ },
+ {
+ "x": 150.0,
+ "y": 730.0
+ },
+ {
+ "x": 150.0,
+ "y": 740.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 205.0,
+ "y": 600.0
+ },
+ {
+ "x": 205.0,
+ "y": 725.0
+ },
+ {
+ "x": 145.0,
+ "y": 725.0
+ },
+ {
+ "x": 145.0,
+ "y": 750.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 200.0,
+ "y": 610.0
+ },
+ {
+ "x": 200.0,
+ "y": 720.0
+ },
+ {
+ "x": 140.0,
+ "y": 720.0
+ },
+ {
+ "x": 140.0,
+ "y": 760.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 195.0,
+ "y": 620.0
+ },
+ {
+ "x": 195.0,
+ "y": 715.0
+ },
+ {
+ "x": 135.0,
+ "y": 715.0
+ },
+ {
+ "x": 135.0,
+ "y": 770.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA1"
+ },
+ "path": [
+ {
+ "x": 210.0,
+ "y": 740.0
+ },
+ {
+ "x": 210.0,
+ "y": 880.0
+ },
+ {
+ "x": 310.0,
+ "y": 880.0
+ },
+ {
+ "x": 310.0,
+ "y": 50.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA2"
+ },
+ "path": [
+ {
+ "x": 205.0,
+ "y": 750.0
+ },
+ {
+ "x": 205.0,
+ "y": 885.0
+ },
+ {
+ "x": 315.0,
+ "y": 885.0
+ },
+ {
+ "x": 315.0,
+ "y": 150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA3"
+ },
+ "path": [
+ {
+ "x": 200.0,
+ "y": 760.0
+ },
+ {
+ "x": 200.0,
+ "y": 890.0
+ },
+ {
+ "x": 320.0,
+ "y": 890.0
+ },
+ {
+ "x": 320.0,
+ "y": 250.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QA4"
+ },
+ "path": [
+ {
+ "x": 195.0,
+ "y": 770.0
+ },
+ {
+ "x": 195.0,
+ "y": 895.0
+ },
+ {
+ "x": 325.0,
+ "y": 895.0
+ },
+ {
+ "x": 325.0,
+ "y": 350.0
+ }
+ ]
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A0",
+ "A1",
+ "A2",
+ "A3",
+ "B0",
+ "B1",
+ "B2",
+ "B3",
+ "WE",
+ "D1",
+ "D2",
+ "D3",
+ "D4"
+ ],
+ "label": "GUIram4",
+ "logic_width": 1,
+ "output_count": [
+ "QA1",
+ "QA2",
+ "QA3",
+ "QA4",
+ "QB1",
+ "QB2",
+ "QB3",
+ "QB4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIsel2_4",
+ "width": 35.0,
+ "height": 100.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "SA",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "SB",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "B2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "B3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "B4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 52.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 102.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 152.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 77.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 127.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 177.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 52.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 65.0,
+ "y": 77.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 16.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 66.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 116.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 41.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 91.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 141.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 62.5
+ },
+ {
+ "x": 15.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 17.5,
+ "y": 87.5
+ },
+ {
+ "x": 17.5,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 17.5,
+ "y": 112.5
+ },
+ {
+ "x": 17.5,
+ "y": 107.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 17.5,
+ "y": 137.5
+ },
+ {
+ "x": 17.5,
+ "y": 157.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 162.5
+ },
+ {
+ "x": 10.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B2"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 12.5,
+ "y": 187.5
+ },
+ {
+ "x": 12.5,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B3"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 212.5
+ },
+ {
+ "x": 15.0,
+ "y": 132.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B4"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 237.5
+ },
+ {
+ "x": 10.0,
+ "y": 182.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "SA"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "SB"
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 167.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 192.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 42.5,
+ "y": 12.5
+ },
+ {
+ "x": 42.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 37.5
+ },
+ {
+ "x": 45.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 47.5,
+ "y": 62.5
+ },
+ {
+ "x": 47.5,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 87.5
+ },
+ {
+ "x": 50.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 52.5,
+ "y": 112.5
+ },
+ {
+ "x": 52.5,
+ "y": 57.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 137.5
+ },
+ {
+ "x": 55.0,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 57.5,
+ "y": 162.5
+ },
+ {
+ "x": 57.5,
+ "y": 82.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 187.5
+ },
+ {
+ "x": 60.0,
+ "y": 92.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "SA",
+ "SB",
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "B1",
+ "B2",
+ "B3",
+ "B4"
+ ],
+ "label": "GUIsel2_4",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIsel3_4",
+ "width": 35.0,
+ "height": 150.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "SA",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 115.0
+ },
+ "name": "C1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "SB",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 125.0
+ },
+ "name": "C2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "SC",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "B2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 135.0
+ },
+ "name": "C3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "B3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 145.0
+ },
+ "name": "C4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 105.0
+ },
+ "name": "B4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.2,
+ "subComps": [
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 250.0
+ },
+ "name": "GUIsel2_4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 75.0,
+ "y": 250.0
+ },
+ "name": "GUInot4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 570.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 620.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 670.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 720.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 152.5,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 152.5,
+ "y": 65.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 152.5,
+ "y": 115.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 152.5,
+ "y": 165.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 584.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 634.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 684.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "SA"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "SA"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 25.0
+ },
+ {
+ "x": 25.0,
+ "y": 255.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "SB"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "SB"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 75.0
+ },
+ {
+ "x": 20.0,
+ "y": 265.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 175.0
+ },
+ {
+ "x": 15.0,
+ "y": 275.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 225.0
+ },
+ {
+ "x": 10.0,
+ "y": 285.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 275.0
+ },
+ {
+ "x": 5.0,
+ "y": 295.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 325.0
+ },
+ {
+ "x": 5.0,
+ "y": 305.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 375.0
+ },
+ {
+ "x": 10.0,
+ "y": 315.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B2"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B2"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 425.0
+ },
+ {
+ "x": 15.0,
+ "y": 325.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B3"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 475.0
+ },
+ {
+ "x": 20.0,
+ "y": 335.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B4"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B4"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 525.0
+ },
+ {
+ "x": 25.0,
+ "y": 345.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "SC"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 125.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 125.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 125.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 735.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C1"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C2"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C3"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C4"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 255.0
+ },
+ {
+ "x": 115.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 265.0
+ },
+ {
+ "x": 120.0,
+ "y": 70.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 275.0
+ },
+ {
+ "x": 125.0,
+ "y": 120.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 285.0
+ },
+ {
+ "x": 130.0,
+ "y": 170.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 135.0,
+ "y": 580.0
+ },
+ {
+ "x": 135.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 630.0
+ },
+ {
+ "x": 140.0,
+ "y": 80.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 145.0,
+ "y": 680.0
+ },
+ {
+ "x": 145.0,
+ "y": 130.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 150.0,
+ "y": 730.0
+ },
+ {
+ "x": 150.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "SA",
+ "SB",
+ "SC",
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "B1",
+ "B2",
+ "B3",
+ "B4",
+ "C1",
+ "C2",
+ "C3",
+ "C4"
+ ],
+ "label": "GUIsel3_4",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIxor",
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "B",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 7.5,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 2.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 35.0,
+ "y": 27.5
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 62.5,
+ "y": 15.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 11.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ }
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "A",
+ "B"
+ ],
+ "label": "GUIxor",
+ "logic_width": 1,
+ "output_count": [
+ "Y"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901",
+ "width": 35.0,
+ "height": 270.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 85.0
+ },
+ "name": "ORAMn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 265.0
+ },
+ "name": "IQn+3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "I0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 255.0
+ },
+ "name": "IQn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "I1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "I2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "I3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 65.0
+ },
+ "name": "OVR",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "I4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 105.0
+ },
+ "name": "Cn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 115.0
+ },
+ "name": "OQn+3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "I5",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I6",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 105.0
+ },
+ "name": "OQn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I7",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "I8",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 155.0
+ },
+ "name": "A0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 165.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 175.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 185.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 235.0
+ },
+ "name": "IRAMn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "Cn+4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 95.0
+ },
+ "name": "ORAMn+3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "F\u003d0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 115.0
+ },
+ "name": "D1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 245.0
+ },
+ "name": "IRAMn+3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 75.0
+ },
+ "name": "F3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 125.0
+ },
+ "name": "D2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 195.0
+ },
+ "name": "B0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 135.0
+ },
+ "name": "D3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 205.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 145.0
+ },
+ "name": "D4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 215.0
+ },
+ "name": "B2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 225.0
+ },
+ "name": "B3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Y2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Y3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Y4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.1,
+ "subComps": [
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 45.0
+ },
+ "name": "GUIAm2901DestDecode",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 275.0,
+ "y": 135.0
+ },
+ "name": "GUImux1_4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 190.0,
+ "y": 65.0
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 160.0,
+ "y": 75.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 240.0,
+ "y": 2110.0
+ },
+ "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 275.0,
+ "y": 445.0
+ },
+ "name": "GUIor4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 320.0,
+ "y": 440.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 95.0,
+ "y": 2220.0
+ },
+ "name": "GUIram4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 160.0,
+ "y": 2220.0
+ },
+ "name": "GUIdlatch4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 160.0,
+ "y": 2275.0
+ },
+ "name": "GUIdlatch4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 2310.0
+ },
+ "name": "GUIsel3_4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 2510.0
+ },
+ "name": "GUIsel3_4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 90.0,
+ "y": 2490.0
+ },
+ "name": "GUIAm2901QReg",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 154.0,
+ "y": 949.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 154.0,
+ "y": 89.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 154.0,
+ "y": 2264.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 154.0,
+ "y": 2319.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 2314.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 2324.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 2334.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 219.0,
+ "y": 2224.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 224.0,
+ "y": 2234.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 229.0,
+ "y": 2244.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 234.0,
+ "y": 2254.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 129.0,
+ "y": 2494.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 134.0,
+ "y": 2504.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 139.0,
+ "y": 2514.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 144.0,
+ "y": 2524.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 219.0,
+ "y": 2494.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 234.0,
+ "y": 2524.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 2624.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 2634.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 279.0,
+ "y": 2114.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 294.0,
+ "y": 2144.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 329.0,
+ "y": 949.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 254.0,
+ "y": 2089.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 259.0,
+ "y": 2094.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 264.0,
+ "y": 2099.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 269.0,
+ "y": 2104.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 254.0,
+ "y": 449.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 259.0,
+ "y": 459.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 264.0,
+ "y": 469.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 269.0,
+ "y": 479.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 2354.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 2364.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 19.0,
+ "y": 2374.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 2394.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 19.0,
+ "y": 2404.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 2414.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 2384.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 2424.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 19.0,
+ "y": 2434.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 2444.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 314.0,
+ "y": 449.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I8"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I8"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I7"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I7"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 150.0
+ },
+ {
+ "x": 5.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I6"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I6"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 250.0
+ },
+ {
+ "x": 10.0,
+ "y": 70.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I5"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "I5"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 350.0
+ },
+ {
+ "x": 130.0,
+ "y": 2115.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I4"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "I4"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 450.0
+ },
+ {
+ "x": 125.0,
+ "y": 2125.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I3"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "I3"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 550.0
+ },
+ {
+ "x": 120.0,
+ "y": 2135.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I2"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "I2"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 650.0
+ },
+ {
+ "x": 115.0,
+ "y": 2145.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "I1"
+ },
+ "path": [
+ {
+ "x": 110.0,
+ "y": 750.0
+ },
+ {
+ "x": 110.0,
+ "y": 2155.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 850.0
+ },
+ {
+ "x": 105.0,
+ "y": 2165.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 155.0,
+ "y": 80.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "C"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "C"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 155.0,
+ "y": 2485.0
+ },
+ {
+ "x": 80.0,
+ "y": 2485.0
+ },
+ {
+ "x": 80.0,
+ "y": 2495.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "LSH"
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 90.0
+ },
+ {
+ "x": 55.0,
+ "y": 125.0
+ },
+ {
+ "x": 40.0,
+ "y": 125.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "NSH"
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 50.0
+ },
+ {
+ "x": 60.0,
+ "y": 120.0
+ },
+ {
+ "x": 35.0,
+ "y": 120.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "RSH"
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 60.0
+ },
+ {
+ "x": 65.0,
+ "y": 115.0
+ },
+ {
+ "x": 30.0,
+ "y": 115.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "SA"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "SB"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "SC"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "SA"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 2515.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "SB"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 2525.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "SC"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 2535.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A0"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A0"
+ },
+ "path": [
+ {
+ "x": 80.0,
+ "y": 1550.0
+ },
+ {
+ "x": 80.0,
+ "y": 2225.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 1650.0
+ },
+ {
+ "x": 75.0,
+ "y": 2235.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 1750.0
+ },
+ {
+ "x": 70.0,
+ "y": 2245.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 1850.0
+ },
+ {
+ "x": 65.0,
+ "y": 2255.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B0"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B0"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 1950.0
+ },
+ {
+ "x": 60.0,
+ "y": 2265.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 2050.0
+ },
+ {
+ "x": 55.0,
+ "y": 2275.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B2"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B2"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 2150.0
+ },
+ {
+ "x": 50.0,
+ "y": 2285.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B3"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 2250.0
+ },
+ {
+ "x": 45.0,
+ "y": 2295.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QA1"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QA2"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QA3"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QA4"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QB1"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "D1"
+ },
+ "path": [
+ {
+ "x": 150.0,
+ "y": 2265.0
+ },
+ {
+ "x": 150.0,
+ "y": 2280.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QB2"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "D2"
+ },
+ "path": [
+ {
+ "x": 145.0,
+ "y": 2275.0
+ },
+ {
+ "x": 145.0,
+ "y": 2290.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QB3"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "D3"
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 2285.0
+ },
+ {
+ "x": 140.0,
+ "y": 2300.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "QB4"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "D4"
+ },
+ "path": [
+ {
+ "x": 135.0,
+ "y": 2295.0
+ },
+ {
+ "x": 135.0,
+ "y": 2310.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Cn"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "Cn"
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 1050.0
+ },
+ {
+ "x": 100.0,
+ "y": 2175.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D1"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D1"
+ },
+ "path": [
+ {
+ "x": 180.0,
+ "y": 1150.0
+ },
+ {
+ "x": 180.0,
+ "y": 2185.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D2"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D2"
+ },
+ "path": [
+ {
+ "x": 175.0,
+ "y": 1250.0
+ },
+ {
+ "x": 175.0,
+ "y": 2195.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D3"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D3"
+ },
+ "path": [
+ {
+ "x": 170.0,
+ "y": 1350.0
+ },
+ {
+ "x": 170.0,
+ "y": 2205.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D4"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D4"
+ },
+ "path": [
+ {
+ "x": 165.0,
+ "y": 1450.0
+ },
+ {
+ "x": 165.0,
+ "y": 2215.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I0_1"
+ },
+ "path": [
+ {
+ "x": 220.0,
+ "y": 150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I0_2"
+ },
+ "path": [
+ {
+ "x": 225.0,
+ "y": 160.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I0_3"
+ },
+ "path": [
+ {
+ "x": 230.0,
+ "y": 170.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I0_4"
+ },
+ "path": [
+ {
+ "x": 235.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 200.0,
+ "y": 2280.0
+ },
+ {
+ "x": 200.0,
+ "y": 2265.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B2"
+ },
+ "path": [
+ {
+ "x": 205.0,
+ "y": 2290.0
+ },
+ {
+ "x": 205.0,
+ "y": 2275.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 210.0,
+ "y": 2300.0
+ },
+ {
+ "x": 210.0,
+ "y": 2285.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B4"
+ },
+ "path": [
+ {
+ "x": 215.0,
+ "y": 2310.0
+ },
+ {
+ "x": 215.0,
+ "y": 2295.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "OQn"
+ },
+ "path": [
+ {
+ "x": 335.0,
+ "y": 2495.0
+ },
+ {
+ "x": 335.0,
+ "y": 1050.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "OQn+3"
+ },
+ "path": [
+ {
+ "x": 340.0,
+ "y": 2525.0
+ },
+ {
+ "x": 340.0,
+ "y": 1150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 135.0,
+ "y": 2670.0
+ },
+ {
+ "x": 30.0,
+ "y": 2670.0
+ },
+ {
+ "x": 30.0,
+ "y": 2635.0
+ },
+ {
+ "x": 35.0,
+ "y": 2635.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 140.0,
+ "y": 2675.0
+ },
+ {
+ "x": 35.0,
+ "y": 2675.0
+ },
+ {
+ "x": 35.0,
+ "y": 2640.0
+ },
+ {
+ "x": 40.0,
+ "y": 2640.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "C1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "C2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 145.0,
+ "y": 2680.0
+ },
+ {
+ "x": 40.0,
+ "y": 2680.0
+ },
+ {
+ "x": 40.0,
+ "y": 2645.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "IQn+3"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 2650.0
+ },
+ {
+ "x": 5.0,
+ "y": 2655.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "IQn"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 2550.0
+ },
+ {
+ "x": 5.0,
+ "y": 2545.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 2665.0
+ },
+ {
+ "x": 25.0,
+ "y": 2665.0
+ },
+ {
+ "x": 25.0,
+ "y": 2630.0
+ },
+ {
+ "x": 30.0,
+ "y": 2630.0
+ },
+ {
+ "x": 30.0,
+ "y": 2555.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "Q1"
+ },
+ "path": [
+ {
+ "x": 220.0,
+ "y": 2305.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "Q2"
+ },
+ "path": [
+ {
+ "x": 225.0,
+ "y": 2505.0
+ },
+ {
+ "x": 225.0,
+ "y": 2315.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "Q3"
+ },
+ "path": [
+ {
+ "x": 230.0,
+ "y": 2515.0
+ },
+ {
+ "x": 230.0,
+ "y": 2325.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "Q4"
+ },
+ "path": [
+ {
+ "x": 235.0,
+ "y": 2335.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 2565.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 32,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 2575.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Cn+4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Cn+4"
+ },
+ "path": [
+ {
+ "x": 315.0,
+ "y": 2155.0
+ },
+ {
+ "x": 315.0,
+ "y": 550.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "OVR"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "OVR"
+ },
+ "path": [
+ {
+ "x": 320.0,
+ "y": 2165.0
+ },
+ {
+ "x": 320.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "F1"
+ },
+ "pin2": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "F4"
+ },
+ "pin2": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "ORAMn"
+ },
+ "path": [
+ {
+ "x": 325.0,
+ "y": 2115.0
+ },
+ {
+ "x": 325.0,
+ "y": 850.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 330.0,
+ "y": 2145.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "ORAMn+3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 35,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F3"
+ },
+ "path": [
+ {
+ "x": 330.0,
+ "y": 750.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 33,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 280.0,
+ "y": 2090.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "F2"
+ },
+ "pin2": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 285.0,
+ "y": 2125.0
+ },
+ {
+ "x": 285.0,
+ "y": 2095.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "F3"
+ },
+ "pin2": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 290.0,
+ "y": 2135.0
+ },
+ {
+ "x": 290.0,
+ "y": 2100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 34,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 295.0,
+ "y": 2105.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 40,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I1_1"
+ },
+ "path": [
+ {
+ "x": 255.0,
+ "y": 190.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 41,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I1_2"
+ },
+ "path": [
+ {
+ "x": 260.0,
+ "y": 200.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 42,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I1_3"
+ },
+ "path": [
+ {
+ "x": 265.0,
+ "y": 210.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 43,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "I1_4"
+ },
+ "path": [
+ {
+ "x": 270.0,
+ "y": 220.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 36,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 44,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 2090.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 37,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 45,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 2095.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 38,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 46,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 2100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "IRAMn"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 2350.0
+ },
+ {
+ "x": 5.0,
+ "y": 2345.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 44,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 45,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 46,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 45,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 47,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 46,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 48,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 39,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 49,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 2105.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 44,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 50,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 50,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 47,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 48,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 49,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 47,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 51,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 48,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 52,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 49,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 53,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 51,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 52,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 53,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "IRAMn+3"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 2450.0
+ },
+ {
+ "x": 5.0,
+ "y": 2455.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 50,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 2585.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 51,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B2"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 2595.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 52,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 2605.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 53,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B4"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 2615.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "D1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "D2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "D3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "D4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "RAMWE"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "WE"
+ },
+ "path": [
+ {
+ "x": 230.0,
+ "y": 70.0
+ },
+ {
+ "x": 230.0,
+ "y": 105.0
+ },
+ {
+ "x": 90.0,
+ "y": 105.0
+ },
+ {
+ "x": 90.0,
+ "y": 2305.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "QWE"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "WE"
+ },
+ "path": [
+ {
+ "x": 85.0,
+ "y": 100.0
+ },
+ {
+ "x": 85.0,
+ "y": 2505.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "YF"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S0"
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 80.0
+ },
+ {
+ "x": 70.0,
+ "y": 140.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y1"
+ },
+ "path": [
+ {
+ "x": 335.0,
+ "y": 140.0
+ },
+ {
+ "x": 335.0,
+ "y": 50.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y3"
+ },
+ "path": [
+ {
+ "x": 335.0,
+ "y": 160.0
+ },
+ {
+ "x": 335.0,
+ "y": 250.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Y4"
+ },
+ "path": [
+ {
+ "x": 325.0,
+ "y": 170.0
+ },
+ {
+ "x": 325.0,
+ "y": 350.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 54,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 54,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 315.0,
+ "y": 445.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 54,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 315.0,
+ "y": 455.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F\u003d0"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "I8",
+ "I7",
+ "I6",
+ "I5",
+ "I4",
+ "I3",
+ "I2",
+ "I1",
+ "I0",
+ "C",
+ "Cn",
+ "D1",
+ "D2",
+ "D3",
+ "D4",
+ "A0",
+ "A1",
+ "A2",
+ "A3",
+ "B0",
+ "B1",
+ "B2",
+ "B3",
+ "IRAMn",
+ "IRAMn+3",
+ "IQn",
+ "IQn+3"
+ ],
+ "label": "GUIAm2901",
+ "logic_width": 1,
+ "output_count": [
+ "Y1",
+ "Y2",
+ "Y3",
+ "Y4",
+ "F\u003d0",
+ "Cn+4",
+ "OVR",
+ "F3",
+ "ORAMn",
+ "ORAMn+3",
+ "OQn",
+ "OQn+3"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901ALUFuncDecode",
+ "width": 35.0,
+ "height": 60.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "SBE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "FN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "SN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "I5",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "L",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "RN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "CinE",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.25,
+ "subComps": [
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 10.0
+ },
+ "name": "GUInand3",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 45.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 55.0,
+ "y": 70.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 100.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 100.0,
+ "y": 135.0
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 44.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 54.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 64.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 84.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 99.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 74.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 34.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I5"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 45.0
+ },
+ {
+ "x": 45.0,
+ "y": 50.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "FN"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I4"
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 40.0
+ },
+ {
+ "x": 45.0,
+ "y": 40.0
+ },
+ {
+ "x": 45.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "SN"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 105.0
+ },
+ {
+ "x": 135.0,
+ "y": 105.0
+ },
+ {
+ "x": 135.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I3"
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "RN"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 220.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "CinE"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 5.0
+ },
+ {
+ "x": 115.0,
+ "y": 5.0
+ },
+ {
+ "x": 115.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "C"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "L"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "SBE"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "I5",
+ "I4",
+ "I3"
+ ],
+ "label": "GUIAm2901ALUFuncDecode",
+ "logic_width": 1,
+ "output_count": [
+ "CinE",
+ "L",
+ "SN",
+ "SBE",
+ "FN",
+ "RN"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901ALUInclDecode",
+ "width": 35.0,
+ "height": 120.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "R2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 105.0
+ },
+ "name": "S3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "R3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 115.0
+ },
+ "name": "S4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "R4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "OVR",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "Cn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "F1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "I5",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "F2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "F3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "F4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "Cn+4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "S1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "R1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "S2",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.25,
+ "subComps": [
+ {
+ "pos": {
+ "x": 20.0,
+ "y": 2.5
+ },
+ "name": "GUIAm2901ALUFuncDecode",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 80.0
+ },
+ "name": "GUIAm2901ALUOneBit",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 180.0
+ },
+ "name": "GUIAm2901ALUOneBit",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 280.0
+ },
+ "name": "GUIAm2901ALUOneBit",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 380.0
+ },
+ "name": "GUIAm2901ALUOneBit",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 95.0,
+ "y": 400.0
+ },
+ "name": "GUIxor",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 94.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 194.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 294.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 26.5,
+ "y": 104.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 26.5,
+ "y": 204.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 26.5,
+ "y": 304.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 124.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 224.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 29.0,
+ "y": 324.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 144.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 244.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 344.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 154.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 254.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 354.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 36.5,
+ "y": 164.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 36.5,
+ "y": 264.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 36.5,
+ "y": 364.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 84.0,
+ "y": 374.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 84.0,
+ "y": 384.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I5"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I5"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 20.0
+ },
+ {
+ "x": 5.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I4"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I4"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 60.0
+ },
+ {
+ "x": 10.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I3"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I3"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 100.0
+ },
+ {
+ "x": 15.0,
+ "y": 27.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "SBE"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 62.5,
+ "y": 37.5
+ },
+ {
+ "x": 62.5,
+ "y": 70.0
+ },
+ {
+ "x": 25.0,
+ "y": 70.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "CoutE"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "CoutE"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "CoutE"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "CoutE"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 395.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "CinE"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 7.5
+ },
+ {
+ "x": 70.0,
+ "y": 77.5
+ },
+ {
+ "x": 27.5,
+ "y": 77.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "CinE"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "CinE"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "CinE"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "CinE"
+ },
+ "path": [
+ {
+ "x": 27.5,
+ "y": 405.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "RN"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 57.5,
+ "y": 57.5
+ },
+ {
+ "x": 57.5,
+ "y": 65.0
+ },
+ {
+ "x": 30.0,
+ "y": 65.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "RN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "RN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "RN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "RN"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 425.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "SN"
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 27.5
+ },
+ {
+ "x": 65.0,
+ "y": 72.5
+ },
+ {
+ "x": 32.5,
+ "y": 72.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "SN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "SN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "SN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "SN"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 445.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "FN"
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 47.5
+ },
+ {
+ "x": 60.0,
+ "y": 67.5
+ },
+ {
+ "x": 35.0,
+ "y": 67.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "FN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "FN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "FN"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "FN"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 455.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "L"
+ },
+ "pin2": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 67.5,
+ "y": 17.5
+ },
+ {
+ "x": 67.5,
+ "y": 75.0
+ },
+ {
+ "x": 37.5,
+ "y": 75.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "L"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "L"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "L"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "L"
+ },
+ "path": [
+ {
+ "x": 37.5,
+ "y": 465.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "R1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "R"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 180.0
+ },
+ {
+ "x": 10.0,
+ "y": 115.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "R2"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "R"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 220.0
+ },
+ {
+ "x": 10.0,
+ "y": 215.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "R3"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "R"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 260.0
+ },
+ {
+ "x": 10.0,
+ "y": 315.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "R4"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "R"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 300.0
+ },
+ {
+ "x": 20.0,
+ "y": 415.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "S"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 340.0
+ },
+ {
+ "x": 15.0,
+ "y": 135.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S2"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "S"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 380.0
+ },
+ {
+ "x": 5.0,
+ "y": 235.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S3"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "S"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 420.0
+ },
+ {
+ "x": 10.0,
+ "y": 335.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S4"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "S"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 460.0
+ },
+ {
+ "x": 10.0,
+ "y": 435.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Cn"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "Cin"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 140.0
+ },
+ {
+ "x": 5.0,
+ "y": 85.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Cout"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "Cin"
+ },
+ "path": [
+ {
+ "x": 85.0,
+ "y": 85.0
+ },
+ {
+ "x": 85.0,
+ "y": 175.0
+ },
+ {
+ "x": 40.0,
+ "y": 175.0
+ },
+ {
+ "x": 40.0,
+ "y": 185.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Cout"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "Cin"
+ },
+ "path": [
+ {
+ "x": 85.0,
+ "y": 185.0
+ },
+ {
+ "x": 85.0,
+ "y": 275.0
+ },
+ {
+ "x": 40.0,
+ "y": 275.0
+ },
+ {
+ "x": 40.0,
+ "y": 285.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Cout"
+ },
+ "pin2": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 85.0,
+ "y": 285.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "Cin"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 375.0
+ },
+ {
+ "x": 40.0,
+ "y": 385.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Cout"
+ },
+ "pin2": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "F"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F1"
+ },
+ "path": [
+ {
+ "x": 90.0,
+ "y": 95.0
+ },
+ {
+ "x": 90.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "F"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F2"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 195.0
+ },
+ {
+ "x": 95.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "F"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F3"
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 295.0
+ },
+ {
+ "x": 100.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "F"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F4"
+ },
+ "path": [
+ {
+ "x": 105.0,
+ "y": 395.0
+ },
+ {
+ "x": 105.0,
+ "y": 140.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 90.0,
+ "y": 375.0
+ },
+ {
+ "x": 90.0,
+ "y": 405.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 85.0,
+ "y": 415.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Cn+4"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 385.0
+ },
+ {
+ "x": 130.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "OVR"
+ }
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "I5",
+ "I4",
+ "I3",
+ "Cn",
+ "R1",
+ "R2",
+ "R3",
+ "R4",
+ "S1",
+ "S2",
+ "S3",
+ "S4"
+ ],
+ "label": "GUIAm2901ALUInclDecode",
+ "logic_width": 1,
+ "output_count": [
+ "F1",
+ "F2",
+ "F3",
+ "F4",
+ "Cn+4",
+ "OVR"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+ "width": 35.0,
+ "height": 230.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 195.0
+ },
+ "name": "Q1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 205.0
+ },
+ "name": "Q2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 215.0
+ },
+ "name": "Q3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 225.0
+ },
+ "name": "Q4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "I0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "I1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "I2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "OVR",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "Cn",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "I5",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 115.0
+ },
+ "name": "A1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 125.0
+ },
+ "name": "A2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 135.0
+ },
+ "name": "A3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 145.0
+ },
+ "name": "A4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "Cn+4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "F1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "F2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "D1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "F3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "D2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "F4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "D3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 155.0
+ },
+ "name": "B1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 105.0
+ },
+ "name": "D4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 165.0
+ },
+ "name": "B2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 175.0
+ },
+ "name": "B3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 185.0
+ },
+ "name": "B4",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.25,
+ "subComps": [
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 165.0
+ },
+ "name": "GUIAm2901SourceDecode",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 365.0
+ },
+ "name": "GUIsel2_4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 45.0,
+ "y": 575.0
+ },
+ "name": "GUIsel3_4",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 60.0,
+ "y": 15.0
+ },
+ "name": "GUIAm2901ALUInclDecode",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 459.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 14.0,
+ "y": 499.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 19.0,
+ "y": 539.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 24.0,
+ "y": 579.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I5"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "I5"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "I4"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 60.0
+ },
+ {
+ "x": 5.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I3"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "I3"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 100.0
+ },
+ {
+ "x": 15.0,
+ "y": 40.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I2"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I2"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 140.0
+ },
+ {
+ "x": 5.0,
+ "y": 170.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 220.0
+ },
+ {
+ "x": 5.0,
+ "y": 190.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Cn"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "Cn"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 260.0
+ },
+ {
+ "x": 10.0,
+ "y": 50.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 300.0
+ },
+ {
+ "x": 15.0,
+ "y": 390.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D2"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 340.0
+ },
+ {
+ "x": 10.0,
+ "y": 400.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D3"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 380.0
+ },
+ {
+ "x": 5.0,
+ "y": 410.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D4"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A4"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A1"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A2"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A3"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "A4"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 430.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B2"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 440.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 450.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B4"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 460.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A1"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 610.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A2"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 620.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A3"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 630.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A4"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 640.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B1"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B1"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 620.0
+ },
+ {
+ "x": 5.0,
+ "y": 650.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B2"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B3"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 700.0
+ },
+ {
+ "x": 5.0,
+ "y": 670.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "B4"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B4"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 740.0
+ },
+ {
+ "x": 10.0,
+ "y": 680.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Q1"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "C1"
+ },
+ "path": [
+ {
+ "x": 15.0,
+ "y": 780.0
+ },
+ {
+ "x": 15.0,
+ "y": 690.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Q2"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "C2"
+ },
+ "path": [
+ {
+ "x": 20.0,
+ "y": 820.0
+ },
+ {
+ "x": 20.0,
+ "y": 700.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Q3"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "C3"
+ },
+ "path": [
+ {
+ "x": 25.0,
+ "y": 860.0
+ },
+ {
+ "x": 25.0,
+ "y": 710.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Q4"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "C4"
+ },
+ "path": [
+ {
+ "x": 30.0,
+ "y": 900.0
+ },
+ {
+ "x": 30.0,
+ "y": 720.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "SQ"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "SC"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 170.0
+ },
+ {
+ "x": 75.0,
+ "y": 240.0
+ },
+ {
+ "x": 30.0,
+ "y": 240.0
+ },
+ {
+ "x": 30.0,
+ "y": 600.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "RA"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "SB"
+ },
+ "path": [
+ {
+ "x": 70.0,
+ "y": 180.0
+ },
+ {
+ "x": 70.0,
+ "y": 235.0
+ },
+ {
+ "x": 20.0,
+ "y": 235.0
+ },
+ {
+ "x": 20.0,
+ "y": 380.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "SB"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "SB"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 190.0
+ },
+ {
+ "x": 65.0,
+ "y": 230.0
+ },
+ {
+ "x": 35.0,
+ "y": 230.0
+ },
+ {
+ "x": 35.0,
+ "y": 590.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "SA"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "SA"
+ },
+ "path": [
+ {
+ "x": 60.0,
+ "y": 200.0
+ },
+ {
+ "x": 60.0,
+ "y": 225.0
+ },
+ {
+ "x": 40.0,
+ "y": 225.0
+ },
+ {
+ "x": 40.0,
+ "y": 580.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "RD"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "SA"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 210.0
+ },
+ {
+ "x": 55.0,
+ "y": 220.0
+ },
+ {
+ "x": 25.0,
+ "y": 220.0
+ },
+ {
+ "x": 25.0,
+ "y": 370.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "R1"
+ },
+ "path": [
+ {
+ "x": 82.5,
+ "y": 370.0
+ },
+ {
+ "x": 82.5,
+ "y": 162.5
+ },
+ {
+ "x": 20.0,
+ "y": 162.5
+ },
+ {
+ "x": 20.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "R2"
+ },
+ "path": [
+ {
+ "x": 85.0,
+ "y": 380.0
+ },
+ {
+ "x": 85.0,
+ "y": 160.0
+ },
+ {
+ "x": 22.5,
+ "y": 160.0
+ },
+ {
+ "x": 22.5,
+ "y": 70.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "R3"
+ },
+ "path": [
+ {
+ "x": 87.5,
+ "y": 390.0
+ },
+ {
+ "x": 87.5,
+ "y": 157.5
+ },
+ {
+ "x": 25.0,
+ "y": 157.5
+ },
+ {
+ "x": 25.0,
+ "y": 80.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "R4"
+ },
+ "path": [
+ {
+ "x": 90.0,
+ "y": 400.0
+ },
+ {
+ "x": 90.0,
+ "y": 155.0
+ },
+ {
+ "x": 27.5,
+ "y": 155.0
+ },
+ {
+ "x": 27.5,
+ "y": 90.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y1"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "S1"
+ },
+ "path": [
+ {
+ "x": 92.5,
+ "y": 580.0
+ },
+ {
+ "x": 92.5,
+ "y": 152.5
+ },
+ {
+ "x": 30.0,
+ "y": 152.5
+ },
+ {
+ "x": 30.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y2"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "S2"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 590.0
+ },
+ {
+ "x": 95.0,
+ "y": 150.0
+ },
+ {
+ "x": 32.5,
+ "y": 150.0
+ },
+ {
+ "x": 32.5,
+ "y": 110.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y3"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "S3"
+ },
+ "path": [
+ {
+ "x": 97.5,
+ "y": 600.0
+ },
+ {
+ "x": 97.5,
+ "y": 147.5
+ },
+ {
+ "x": 35.0,
+ "y": 147.5
+ },
+ {
+ "x": 35.0,
+ "y": 120.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y4"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "S4"
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 610.0
+ },
+ {
+ "x": 100.0,
+ "y": 145.0
+ },
+ {
+ "x": 37.5,
+ "y": 145.0
+ },
+ {
+ "x": 37.5,
+ "y": 130.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "F1"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "F2"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F2"
+ },
+ "path": [
+ {
+ "x": 135.0,
+ "y": 30.0
+ },
+ {
+ "x": 135.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "F3"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F3"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 40.0
+ },
+ {
+ "x": 130.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "F4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F4"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 50.0
+ },
+ {
+ "x": 125.0,
+ "y": 140.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Cn+4"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Cn+4"
+ },
+ "path": [
+ {
+ "x": 120.0,
+ "y": 60.0
+ },
+ {
+ "x": 120.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "OVR"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "OVR"
+ },
+ "path": [
+ {
+ "x": 115.0,
+ "y": 70.0
+ },
+ {
+ "x": 115.0,
+ "y": 220.0
+ }
+ ]
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "I5",
+ "I4",
+ "I3",
+ "I2",
+ "I1",
+ "I0",
+ "Cn",
+ "D1",
+ "D2",
+ "D3",
+ "D4",
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "B1",
+ "B2",
+ "B3",
+ "B4",
+ "Q1",
+ "Q2",
+ "Q3",
+ "Q4"
+ ],
+ "label": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+ "logic_width": 1,
+ "output_count": [
+ "F1",
+ "F2",
+ "F3",
+ "F4",
+ "Cn+4",
+ "OVR"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901ALUOneBit",
+ "width": 35.0,
+ "height": 90.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "R",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "S",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "F",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "FN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "Cin",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "SN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Cout",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "RN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "L",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "CinE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "CoutE",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.2,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 20.0
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 190.0
+ },
+ "name": "GUIxor",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 290.0
+ },
+ "name": "GUIxor",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 60.0,
+ "y": 20.0
+ },
+ "name": "GUIfulladder",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 60.0,
+ "y": 55.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 135.0,
+ "y": 20.0
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 90.0,
+ "y": 70.0
+ },
+ "name": "GUImux1",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 135.0,
+ "y": 70.0
+ },
+ "name": "GUIxor",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 49.0,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 54.0,
+ "y": 69.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "Cin"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "CoutE"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 75.0
+ },
+ {
+ "x": 5.0,
+ "y": 10.0
+ },
+ {
+ "x": 130.0,
+ "y": 10.0
+ },
+ {
+ "x": 130.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "CinE"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 125.0
+ },
+ {
+ "x": 7.5,
+ "y": 35.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "R"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "RN"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "S"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "SN"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "FN"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 375.0
+ },
+ {
+ "x": 130.0,
+ "y": 85.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "L"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "S0"
+ },
+ "path": [
+ {
+ "x": 87.5,
+ "y": 425.0
+ },
+ {
+ "x": 87.5,
+ "y": 75.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 195.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 50.0,
+ "y": 35.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 295.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 55.0,
+ "y": 45.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "I0"
+ },
+ "path": [
+ {
+ "x": 100.0,
+ "y": 25.0
+ },
+ {
+ "x": 100.0,
+ "y": 65.0
+ },
+ {
+ "x": 85.0,
+ "y": 65.0
+ },
+ {
+ "x": 85.0,
+ "y": 85.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "I1"
+ },
+ "path": [
+ {
+ "x": 82.5,
+ "y": 65.0
+ },
+ {
+ "x": 82.5,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Cout"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "F"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "Cin",
+ "CoutE",
+ "CinE",
+ "R",
+ "RN",
+ "S",
+ "SN",
+ "FN",
+ "L"
+ ],
+ "label": "GUIAm2901ALUOneBit",
+ "logic_width": 1,
+ "output_count": [
+ "Cout",
+ "F"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901DestDecode",
+ "width": 35.0,
+ "height": 60.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "LSH",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "NSH",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "RSH",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I6",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "YF",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I7",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "RAMWE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 55.0
+ },
+ "name": "QWE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "I8",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.25,
+ "subComps": [
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 15.0,
+ "y": 150.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 130.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 80.0,
+ "y": 145.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 110.0,
+ "y": 105.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 115.0,
+ "y": 210.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 14.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 24.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 64.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 9.0,
+ "y": 104.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 154.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 44.0,
+ "y": 54.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 39.0,
+ "y": 134.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 99.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 104.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 74.0,
+ "y": 159.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 109.0,
+ "y": 214.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I8"
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I7"
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I6"
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 165.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 5.0
+ },
+ {
+ "x": 40.0,
+ "y": 5.0
+ },
+ {
+ "x": 40.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 65.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "NSH"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 5.0
+ },
+ {
+ "x": 135.0,
+ "y": 5.0
+ },
+ {
+ "x": 135.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 45.0,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 10.0,
+ "y": 115.0
+ },
+ {
+ "x": 45.0,
+ "y": 115.0
+ },
+ {
+ "x": 45.0,
+ "y": 105.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 40.0,
+ "y": 145.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "RAMWE"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 60.0
+ },
+ {
+ "x": 125.0,
+ "y": 100.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "LSH"
+ },
+ "path": [
+ {
+ "x": 125.0,
+ "y": 140.0
+ },
+ {
+ "x": 125.0,
+ "y": 180.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 150.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "RSH"
+ },
+ "path": [
+ {
+ "x": 130.0,
+ "y": 20.0
+ },
+ {
+ "x": 130.0,
+ "y": 60.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 75.0,
+ "y": 170.0
+ },
+ {
+ "x": 105.0,
+ "y": 170.0
+ },
+ {
+ "x": 105.0,
+ "y": 120.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 110.0,
+ "y": 155.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 110.0,
+ "y": 225.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "YF"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "QWE"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "I8",
+ "I7",
+ "I6"
+ ],
+ "label": "GUIAm2901DestDecode",
+ "logic_width": 1,
+ "output_count": [
+ "NSH",
+ "RSH",
+ "RAMWE",
+ "YF",
+ "LSH",
+ "QWE"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901QReg",
+ "width": 35.0,
+ "height": 60.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "D4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Q1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "Q2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "Q3",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "Q4",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "D1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "WE",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 35.0
+ },
+ "name": "D2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "D3",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.4,
+ "subComps": [
+ {
+ "pos": {
+ "x": 5.0,
+ "y": 15.0
+ },
+ "name": "GUIand",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 7.5
+ },
+ "name": "GUIdff",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 32.5
+ },
+ "name": "GUIdff",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 57.5
+ },
+ "name": "GUIdff",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 50.0,
+ "y": 82.5
+ },
+ "name": "GUIdff",
+ "params": {}
+ },
+ {
+ "pos": {
+ "x": 41.5,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 41.5,
+ "y": 36.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 41.5,
+ "y": 61.5
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "C"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "WE"
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 42.5,
+ "y": 12.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "C"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "C"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "C"
+ },
+ "path": [
+ {
+ "x": 42.5,
+ "y": 87.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D1"
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "D"
+ },
+ "path": [
+ {
+ "x": 17.5,
+ "y": 62.5
+ },
+ {
+ "x": 17.5,
+ "y": 42.5
+ },
+ {
+ "x": 45.0,
+ "y": 42.5
+ },
+ {
+ "x": 45.0,
+ "y": 22.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D2"
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "D"
+ },
+ "path": [
+ {
+ "x": 22.5,
+ "y": 87.5
+ },
+ {
+ "x": 22.5,
+ "y": 47.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D3"
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "D"
+ },
+ "path": [
+ {
+ "x": 27.5,
+ "y": 112.5
+ },
+ {
+ "x": 27.5,
+ "y": 72.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "D4"
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "D"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 137.5
+ },
+ {
+ "x": 32.5,
+ "y": 97.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q1"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q2"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q3"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Q"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "Q4"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "C",
+ "WE",
+ "D1",
+ "D2",
+ "D3",
+ "D4"
+ ],
+ "label": "GUIAm2901QReg",
+ "logic_width": 1,
+ "output_count": [
+ "Q1",
+ "Q2",
+ "Q3",
+ "Q4"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "type": "SimpleRectangularSubmodelComponent",
+ "name": "GUIAm2901SourceDecode",
+ "width": 35.0,
+ "height": 50.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 35.0,
+ "y": 45.0
+ },
+ "name": "RD",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "I0",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "I1",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "I2",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "SQ",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 35.0
+ },
+ "name": "SA",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "RA",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 25.0
+ },
+ "name": "SB",
+ "logicWidth": 1
+ }
+ ],
+ "composition": {
+ "innerScale": 0.25,
+ "subComps": [
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 10.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 130.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 40.0,
+ "y": 170.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 70.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 70.0,
+ "y": 50.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 70.0,
+ "y": 90.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 70.0,
+ "y": 130.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 70.0,
+ "y": 170.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 100.0,
+ "y": 10.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 100.0,
+ "y": 170.0
+ },
+ "name": "GUINandGate",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 4.0,
+ "y": 144.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 99.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 6.5,
+ "y": 104.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 31.5,
+ "y": 54.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 64.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 34.0,
+ "y": 134.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 36.5,
+ "y": 99.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 59.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 99.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 64.0,
+ "y": 139.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 94.0,
+ "y": 19.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ },
+ {
+ "pos": {
+ "x": 94.0,
+ "y": 179.0
+ },
+ "name": "WireCrossPoint",
+ "params": {
+ "logicWidth": 1
+ }
+ }
+ ],
+ "innerWires": [
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I2"
+ },
+ "pin2": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 5.0
+ },
+ {
+ "x": 35.0,
+ "y": 5.0
+ },
+ {
+ "x": 35.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 17,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 1,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 16,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 18,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 5.0,
+ "y": 195.0
+ },
+ {
+ "x": 65.0,
+ "y": 195.0
+ },
+ {
+ "x": 65.0,
+ "y": 185.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I1"
+ },
+ "pin2": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 19,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 2,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 65.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 0,
+ "pinName": "I0"
+ },
+ "pin2": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 20,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 3,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 21,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 7.5,
+ "y": 112.5
+ },
+ {
+ "x": 32.5,
+ "y": 112.5
+ },
+ {
+ "x": 32.5,
+ "y": 105.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 1,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 22,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 6,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 32.5,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 2,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 4,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 23,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 5,
+ "pinName": "B"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 24,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 7,
+ "pinName": "A"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 25,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 35.0,
+ "y": 175.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 3,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 37.5,
+ "y": 35.0
+ },
+ {
+ "x": 65.0,
+ "y": 35.0
+ },
+ {
+ "x": 65.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 26,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 8,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 37.5,
+ "y": 185.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 4,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 9,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 5,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 27,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 10,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 65.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 6,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 28,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 11,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 105.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 7,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 135.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 29,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 12,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 65.0,
+ "y": 145.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 8,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 13,
+ "pinName": "A"
+ }
+ },
+ {
+ "pin1": {
+ "compId": 9,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 30,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 14,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 25.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 10,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "RA"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 11,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "SB"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 12,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "SA"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 13,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "A"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 175.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 31,
+ "pinName": ""
+ },
+ "pin2": {
+ "compId": 15,
+ "pinName": "B"
+ },
+ "path": [
+ {
+ "x": 95.0,
+ "y": 185.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compId": 14,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "SQ"
+ },
+ "path": []
+ },
+ {
+ "pin1": {
+ "compId": 15,
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compId": 0,
+ "pinName": "RD"
+ },
+ "path": []
+ }
+ ]
+ },
+ "specialized": {
+ "input_count": [
+ "I2",
+ "I1",
+ "I0"
+ ],
+ "label": "Am2901SourceDecode",
+ "logic_width": 1,
+ "output_count": [
+ "SQ",
+ "RA",
+ "SB",
+ "SA",
+ "RD"
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+mograsim version: 0.1.1
+{
+ "GUIAm2901": "file:components/am2901/GUIAm2901.json",
+ "GUIAm2901ALUFuncDecode": "file:components/am2901/GUIAm2901ALUFuncDecode.json",
+ "GUIAm2901ALUInclDecode": "file:components/am2901/GUIAm2901ALUInclDecode.json",
+ "GUIAm2901ALUInclSourceDecodeInclFunctionDecode": "file:components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json",
+ "GUIAm2901ALUOneBit": "file:components/am2901/GUIAm2901ALUOneBit.json",
+ "GUIAm2901DestDecode": "file:components/am2901/GUIAm2901DestDecode.json",
+ "GUIAm2901QReg": "file:components/am2901/GUIAm2901QReg.json",
+ "GUIAm2901SourceDecode": "file:components/am2901/GUIAm2901SourceDecode.json",
+ "GUIAndGate": "class:net.mograsim.logic.ui.model.components.GUIAndGate",
+ "GUINandGate": "class:net.mograsim.logic.ui.model.components.GUINandGate",
+ "GUIOrGate": "class:net.mograsim.logic.ui.model.components.GUIOrGate",
+ "GUI_rsLatch": "file:components/GUI_rsLatch.json",
+ "GUIand": "file:components/GUIand.json",
+ "GUIand41": "file:components/GUIand41.json",
+ "GUIandor414": "file:components/GUIandor414.json",
+ "GUIdemux2": "file:components/GUIdemux2.json",
+ "GUIdff": "file:components/GUIdff.json",
+ "GUIdlatch": "file:components/GUIdlatch.json",
+ "GUIdlatch4": "file:components/GUIdlatch4.json",
+ "GUIfulladder": "file:components/GUIfulladder.json",
+ "GUIhalfadder": "file:components/GUIhalfadder.json",
+ "GUImux1": "file:components/GUImux1.json",
+ "GUImux1_4": "file:components/GUImux1_4.json",
+ "GUInand3": "file:components/GUInand3.json",
+ "GUInot4": "file:components/GUInot4.json",
+ "GUIor4": "file:components/GUIor4.json",
+ "GUIor_4": "file:components/GUIor_4.json",
+ "GUIram2": "file:components/GUIram2.json",
+ "GUIram4": "file:components/GUIram4.json",
+ "GUIsel2_4": "file:components/GUIsel2_4.json",
+ "GUIsel3_4": "file:components/GUIsel3_4.json",
+ "GUIxor": "file:components/GUIxor.json",
+ "WireCrossPoint": "class:net.mograsim.logic.ui.model.wires.WireCrossPoint"
+}
\ No newline at end of file
private final Runnable redrawListenerForSubcomponents;
// Defines how the GUIComponent is referenced in SubmodelComponentParams
- protected Supplier<String> identifierDelegate = () -> "class:".concat(getClass().getCanonicalName());
+ protected Supplier<String> identifierDelegate = () -> getClass().getSimpleName();
// creation and destruction
--- /dev/null
+package net.mograsim.logic.ui.model.components;
+
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
+import java.util.Map;
+
+import net.mograsim.logic.ui.model.ViewModelModifiable;
+import net.mograsim.logic.ui.model.wires.WireCrossPoint;
+import net.mograsim.logic.ui.util.JsonHandler;
+
+public class GUIComponentCreator
+{
+ private final static Map<String, String> componentMapping;
+ private final static String componentMappingPath = "components/mapping.json"; // TODO: manage this somewhere else
+
+ static
+ {
+ Map<String, String> tmp;
+ try
+ {
+ tmp = JsonHandler.readJson(componentMappingPath, Map.class);
+ }
+ catch (IOException e)
+ {
+ System.err.println("Failed to initialize component mapping; Components cannot be created from file.");
+ e.printStackTrace();
+ tmp = new HashMap<>();
+ }
+ componentMapping = tmp;
+ }
+
+ public static GUIComponent create(ViewModelModifiable model, String name, Map<String, Object> params)
+ {
+ try
+ {
+ String path = componentMapping.get(name);
+ if (path.startsWith("class:"))
+ {
+ path = path.substring(6);
+ return createComponentFromClass(model, path, params);
+ } else if (path.startsWith("file:"))
+ {
+ path = path.substring(5);
+ return GUICustomComponentCreator.create(model, path);
+ } else
+ throw new IllegalArgumentException("Invalid submodel type! Type was neither prefixed by 'class:' nor by 'file:'");
+ }
+ catch (NullPointerException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException
+ | SecurityException | ClassNotFoundException | IllegalArgumentException e)
+ {
+ System.err.println("Failed to create requested component!");
+ e.printStackTrace();
+ return new SimpleRectangularSubmodelComponent(model, 1, "ERROR");
+ }
+ }
+
+ private static GUIComponent createComponentFromClass(ViewModelModifiable model, String classname, Map<String, Object> params)
+ throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, SecurityException,
+ ClassNotFoundException
+ {
+ Class<?> c = Class.forName(classname);
+ Object comp;
+ if (SimpleRectangularGUIGate.class.isAssignableFrom(c) || WireCrossPoint.class.equals(c))
+ {
+ Constructor<?> constructor = c.getConstructor(ViewModelModifiable.class, int.class);
+ comp = constructor.newInstance(model, ((Number) params.get(SimpleRectangularGUIGate.kLogicWidth)).intValue());
+ } else
+ {
+ Constructor<?> constructor = c.getConstructor(ViewModelModifiable.class);
+ comp = constructor.newInstance(model);
+ }
+ return (GUIComponent) comp;
+ }
+}
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Map;
import net.mograsim.logic.ui.model.ViewModelModifiable;
try
{
SubmodelComponentParams params = SubmodelComponentParams.readJson(path);
- SubmodelComponent ret = create(model, params, path);
+ SubmodelComponent ret = create(model, params);
return ret;
}
catch (IOException e)
* e.g. a {@link SimpleRectangularSubmodelComponent}, depending on what the {@link SubmodelComponentParams} describe.
*
* @param params The parameters describing the {@link SubmodelComponent}
- * @param path This value is used when the new {@link SubmodelComponent} is an inner component to a different SubmodelComponent, which
- * is being saved to a file; Then, the new {@link SubmodelComponent} is referenced by its given path within the file.
+ *
* @return A new SubmodelComponent, as described by the {@link SubmodelComponentParams}
*/
- public static SubmodelComponent create(ViewModelModifiable model, SubmodelComponentParams params, String path)
+ public static SubmodelComponent create(ViewModelModifiable model, SubmodelComponentParams params)
{
SubmodelComponent comp = null;
if (rectC.equals(params.type))
{
comp = createSubmodelComponent(model, params);
}
- comp.identifierDelegate = () -> "file:".concat(path);
+ comp.identifierDelegate = () -> params.name;
initInnerComponents(comp, params.composition);
return comp;
}
// May return null
+ @SuppressWarnings("unchecked")
private static SimpleRectangularSubmodelComponent createRectComponent(ViewModelModifiable model, SubmodelComponentParams params)
{
try
((Number) m.get(SimpleRectangularSubmodelComponent.kLogicWidth)).intValue(),
(String) m.get(SimpleRectangularSubmodelComponent.kLabel));
rect.setSubmodelScale(params.composition.innerScale);
- // rect.setSize(params.width, params.height);
- int inputCount = ((Number) m.get(SimpleRectangularSubmodelComponent.kInCount)).intValue();
- String[] inputNames = new String[inputCount];
- for (int i = 0; i < inputCount; i++)
- inputNames[i] = params.interfacePins[i].name;
- rect.setInputPins(inputNames);
+ Object[] names = ((ArrayList<Object>) m.get(SimpleRectangularSubmodelComponent.kInCount)).toArray();
+ rect.setInputPins(Arrays.copyOf(names, names.length, String[].class));
- int outputCount = ((Number) m.get(SimpleRectangularSubmodelComponent.kOutCount)).intValue();
- String[] outputPins = new String[outputCount];
- for (int i = 0; i < outputCount; i++)
- outputPins[i] = params.interfacePins[inputCount + i].name;
- rect.setOutputPins(outputPins);
+ names = ((ArrayList<Object>) m.get(SimpleRectangularSubmodelComponent.kOutCount)).toArray();
+ rect.setOutputPins(Arrays.copyOf(names, names.length, String[].class));
return rect;
}
@SuppressWarnings("unused")
private static void initInnerComponents(SubmodelComponent comp, ComponentCompositionParams params)
{
- try
+ GUIComponent[] components = new GUIComponent[params.subComps.length];
+ for (int i = 0; i < components.length; i++)
{
- GUIComponent[] components = new GUIComponent[params.subComps.length];
- for (int i = 0; i < components.length; i++)
- {
- InnerComponentParams cParams = params.subComps[i];
- String path = cParams.type;
- if (path.startsWith("class:"))
- {
- path = path.substring(6);
- components[i] = createInnerComponentFromClass(comp, path, cParams.params);
- components[i].moveTo(cParams.pos.x, cParams.pos.y);
- } else if (path.startsWith("file:"))
- {
- path = path.substring(5);
- components[i] = create(comp.submodelModifiable, path);
- components[i].moveTo(cParams.pos.x, cParams.pos.y);
- } else
- throw new IllegalArgumentException("Invalid submodel type! Type was neither prefixed by 'class:' nor by 'file:'");
- }
-
- for (int i = 0; i < params.innerWires.length; i++)
- {
- InnerWireParams innerWire = params.innerWires[i];
- new GUIWire(comp.submodelModifiable,
- comp.submodelModifiable.getComponents().get(innerWire.pin1.compId).getPin(innerWire.pin1.pinName),
- comp.submodelModifiable.getComponents().get(innerWire.pin2.compId).getPin(innerWire.pin2.pinName), innerWire.path);
- }
+ InnerComponentParams cParams = params.subComps[i];
+ String path = cParams.name;
+ components[i] = GUIComponentCreator.create(comp.submodelModifiable, cParams.name, cParams.params);
+ components[i].moveTo(cParams.pos.x, cParams.pos.y);
}
- catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException
- | ClassNotFoundException | IllegalArgumentException e)
- {
- System.err.println("Failed to initialize custom component!");
- e.printStackTrace();
- }
- }
- private static GUIComponent createInnerComponentFromClass(SubmodelComponent parent, String classname, Map<String, Object> params)
- throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, SecurityException,
- ClassNotFoundException
- {
- Class<?> c = Class.forName(classname);
- Object comp;
- if (SimpleRectangularGUIGate.class.isAssignableFrom(c) || WireCrossPoint.class.equals(c))
- {
- Constructor<?> constructor = c.getConstructor(ViewModelModifiable.class, int.class);
- comp = constructor.newInstance(parent.submodelModifiable,
- ((Number) params.get(SimpleRectangularGUIGate.kLogicWidth)).intValue());
- } else
+ for (int i = 0; i < params.innerWires.length; i++)
{
- Constructor<?> constructor = c.getConstructor(ViewModelModifiable.class);
- comp = constructor.newInstance(parent.submodelModifiable);
+ InnerWireParams innerWire = params.innerWires[i];
+ new GUIWire(comp.submodelModifiable,
+ comp.submodelModifiable.getComponents().get(innerWire.pin1.compId).getPin(innerWire.pin1.pinName),
+ comp.submodelModifiable.getComponents().get(innerWire.pin2.compId).getPin(innerWire.pin2.pinName), innerWire.path);
}
- return (GUIComponent) comp;
}
}
ret.type = SimpleRectangularSubmodelComponent.class.getSimpleName();
Map<String, Object> m = new TreeMap<>();
m.put(kLabel, label);
- m.put(kInCount, inputPinNames.size());
- m.put(kOutCount, outputPinNames.size());
+ m.put(kInCount, inputPinNames.toArray());
+ m.put(kOutCount, outputPinNames.toArray());
m.put(kLogicWidth, logicWidth);
ret.specialized = m;
return ret;
public SubmodelComponentParams calculateParams()
{
SubmodelComponentParams params = new SubmodelComponentParams();
+ params.name = getIdentifier();
params.type = SubmodelComponent.class.getSimpleName();
params.composition = calculateCompositionParams();
InnerComponentParams inner = new InnerComponentParams();
comps[i] = inner;
inner.params = component.getInstantiationParameters();
- inner.pos = new Point(getPosX(), getPosY());
- inner.type = component.getIdentifier();
+ inner.pos = new Point(component.getPosX(), component.getPosY());
+ inner.name = component.getIdentifier();
i++;
}
params.subComps = comps;
*/
public class SubmodelComponentParams
{
- String type;
+ String type, name;
double width, height;
InterfacePinParams[] interfacePins;
ComponentCompositionParams composition;
public static class InnerComponentParams
{
Point pos;
- String type;
+ String name;
Map<String, Object> params;
}
}