}
},
{
- "id": "inc",
- "name": "inc#0",
+ "id": "inc16",
+ "name": "inc16#0",
"pos": {
"x": 315.0,
"y": 135.0
- },
- "params": 16
+ }
},
{
"id": "mux1_4",
},
{
"pin1": {
- "compName": "inc#0",
+ "compName": "inc16#0",
"pinName": "Y"
},
"pin2": {
},
{
"pin1": {
- "compName": "inc#0",
+ "compName": "inc16#0",
"pinName": "A"
},
"pin2": {
},
{
"pin1": {
- "compName": "inc#0",
+ "compName": "inc16#0",
"pinName": "CI"
},
"pin2": {
}
},
{
- "id": "inc",
- "name": "inc#0",
+ "id": "inc12",
+ "name": "inc12#0",
"pos": {
"x": 245.0,
"y": 155.0
- },
- "params": 12
+ }
},
{
"id": "nor12",
},
{
"pin1": {
- "compName": "inc#0",
+ "compName": "inc12#0",
"pinName": "Y"
},
"pin2": {
"pinName": ""
},
"pin2": {
- "compName": "inc#0",
+ "compName": "inc12#0",
"pinName": "A"
},
"name": "unnamedWire#18",
},
{
"pin1": {
- "compName": "inc#0",
+ "compName": "inc12#0",
"pinName": "CI"
},
"pin2": {
"params": 1
},
{
- "id": "halfadder",
- "name": "halfadder#0",
+ "id": "halfadder_invz",
+ "name": "halfadder_invz#0",
"pos": {
"x": 5.0,
"y": 40.0
}
},
{
- "id": "halfadder",
- "name": "halfadder#1",
+ "id": "halfadder_invz",
+ "name": "halfadder_invz#1",
"pos": {
"x": 45.0,
"y": 7.5
"pinName": "A"
},
"pin2": {
- "compName": "halfadder#1",
+ "compName": "halfadder_invz#1",
"pinName": "A"
},
"name": "unnamedWire#0",
"pinName": "B"
},
"pin2": {
- "compName": "halfadder#0",
+ "compName": "halfadder_invz#0",
"pinName": "A"
},
"name": "unnamedWire#1"
"pinName": "C"
},
"pin2": {
- "compName": "halfadder#0",
+ "compName": "halfadder_invz#0",
"pinName": "B"
},
"name": "unnamedWire#2"
},
{
"pin1": {
- "compName": "halfadder#0",
+ "compName": "halfadder_invz#0",
"pinName": "Y"
},
"pin2": {
- "compName": "halfadder#1",
+ "compName": "halfadder_invz#1",
"pinName": "B"
},
"name": "unnamedWire#3"
},
{
"pin1": {
- "compName": "halfadder#0",
+ "compName": "halfadder_invz#0",
"pinName": "_Z"
},
"pin2": {
},
{
"pin1": {
- "compName": "halfadder#1",
+ "compName": "halfadder_invz#1",
"pinName": "Y"
},
"pin2": {
},
{
"pin1": {
- "compName": "halfadder#1",
+ "compName": "halfadder_invz#1",
"pinName": "_Z"
},
"pin2": {
{
- "width": 35.0,
- "height": 20.0,
+ "width": 30.0,
+ "height": 30.0,
"interfacePins": [
{
"location": {
},
{
"location": {
- "x": 35.0,
+ "x": 30.0,
"y": 5.0
},
"name": "Y",
},
{
"location": {
- "x": 35.0,
- "y": 15.0
+ "x": 0.0,
+ "y": 25.0
},
- "name": "_Z",
+ "name": "Z",
"logicWidth": 1,
"usage": "OUTPUT"
}
],
- "innerScale": 0.4,
+ "innerScale": 0.5,
"submodel": {
"components": [
{
"id": "NandGate",
"name": "NandGate#0",
"pos": {
- "x": 10.0,
- "y": 15.0
- },
- "params": 1
- },
- {
- "id": "NandGate",
- "name": "NandGate#1",
- "pos": {
- "x": 40.0,
- "y": 2.5
- },
- "params": 1
- },
- {
- "id": "NandGate",
- "name": "NandGate#2",
- "pos": {
- "x": 40.0,
- "y": 27.5
- },
- "params": 1
- },
- {
- "id": "NandGate",
- "name": "NandGate#3",
- "pos": {
- "x": 65.0,
- "y": 2.5
+ "x": 25.0,
+ "y": 32.5
},
"params": 1
},
"id": "WireCrossPoint",
"name": "WireCrossPoint#0",
"pos": {
- "x": 4.0,
- "y": 11.5
- },
- "params": 1
- },
- {
- "id": "WireCrossPoint",
- "name": "WireCrossPoint#1",
- "pos": {
- "x": 4.0,
+ "x": 19.0,
"y": 36.5
},
"params": 1
},
{
- "id": "WireCrossPoint",
- "name": "WireCrossPoint#2",
+ "id": "halfadder_invz",
+ "name": "halfadder_invz#0",
"pos": {
- "x": 34.0,
- "y": 24.0
- },
- "params": 1
+ "x": 10.0,
+ "y": 5.0
+ }
}
],
"wires": [
{
"pin1": {
- "compName": "_submodelinterface",
- "pinName": "A"
+ "compName": "halfadder_invz#0",
+ "pinName": "_Z"
},
"pin2": {
"compName": "WireCrossPoint#0",
"pinName": ""
},
"name": "unnamedWire#0",
- "path": []
+ "path": [
+ {
+ "x": 50.0,
+ "y": 20.0
+ },
+ {
+ "x": 50.0,
+ "y": 27.5
+ },
+ {
+ "x": 20.0,
+ "y": 27.5
+ }
+ ]
},
{
"pin1": {
"pinName": ""
},
"pin2": {
- "compName": "NandGate#1",
+ "compName": "NandGate#0",
"pinName": "A"
},
"name": "unnamedWire#1",
- "path": [
- {
- "x": 5.0,
- "y": 7.5
- }
- ]
+ "path": []
},
{
"pin1": {
},
"pin2": {
"compName": "NandGate#0",
- "pinName": "A"
+ "pinName": "B"
},
"name": "unnamedWire#2",
"path": [
{
- "x": 5.0,
- "y": 20.0
+ "x": 20.0,
+ "y": 47.5
}
]
},
{
"pin1": {
"compName": "_submodelinterface",
- "pinName": "B"
+ "pinName": "A"
},
"pin2": {
- "compName": "WireCrossPoint#1",
- "pinName": ""
+ "compName": "halfadder_invz#0",
+ "pinName": "A"
},
"name": "unnamedWire#3",
"path": []
},
{
"pin1": {
- "compName": "WireCrossPoint#1",
- "pinName": ""
+ "compName": "_submodelinterface",
+ "pinName": "B"
},
"pin2": {
- "compName": "NandGate#2",
+ "compName": "halfadder_invz#0",
"pinName": "B"
},
"name": "unnamedWire#4",
"path": [
{
"x": 5.0,
- "y": 42.5
- }
- ]
- },
- {
- "pin1": {
- "compName": "WireCrossPoint#1",
- "pinName": ""
- },
- "pin2": {
- "compName": "NandGate#0",
- "pinName": "B"
- },
- "name": "unnamedWire#5",
- "path": [
+ "y": 30.0
+ },
{
"x": 5.0,
- "y": 30.0
+ "y": 20.0
}
]
},
"compName": "NandGate#0",
"pinName": "Y"
},
- "pin2": {
- "compName": "WireCrossPoint#2",
- "pinName": ""
- },
- "name": "unnamedWire#6",
- "path": []
- },
- {
- "pin1": {
- "compName": "WireCrossPoint#2",
- "pinName": ""
- },
"pin2": {
"compName": "_submodelinterface",
- "pinName": "_Z"
+ "pinName": "Z"
},
- "name": "unnamedWire#7",
+ "name": "unnamedWire#5",
"path": [
{
- "x": 80.0,
- "y": 25.0
+ "x": 50.0,
+ "y": 42.5
},
{
- "x": 80.0,
- "y": 37.5
- }
- ]
- },
- {
- "pin1": {
- "compName": "WireCrossPoint#2",
- "pinName": ""
- },
- "pin2": {
- "compName": "NandGate#1",
- "pinName": "B"
- },
- "name": "unnamedWire#8",
- "path": [
- {
- "x": 35.0,
- "y": 17.5
- }
- ]
- },
- {
- "pin1": {
- "compName": "WireCrossPoint#2",
- "pinName": ""
- },
- "pin2": {
- "compName": "NandGate#2",
- "pinName": "A"
- },
- "name": "unnamedWire#9",
- "path": [
- {
- "x": 35.0,
- "y": 32.5
- }
- ]
- },
- {
- "pin1": {
- "compName": "NandGate#1",
- "pinName": "Y"
- },
- "pin2": {
- "compName": "NandGate#3",
- "pinName": "A"
- },
- "name": "unnamedWire#10",
- "path": [
- {
- "x": 62.5,
- "y": 12.5
+ "x": 50.0,
+ "y": 55.0
},
{
- "x": 62.5,
- "y": 7.5
- }
- ]
- },
- {
- "pin1": {
- "compName": "NandGate#2",
- "pinName": "Y"
- },
- "pin2": {
- "compName": "NandGate#3",
- "pinName": "B"
- },
- "name": "unnamedWire#11",
- "path": [
- {
- "x": 62.5,
- "y": 37.5
+ "x": 15.0,
+ "y": 55.0
},
{
- "x": 62.5,
- "y": 17.5
+ "x": 15.0,
+ "y": 50.0
}
]
},
{
"pin1": {
- "compName": "NandGate#3",
+ "compName": "halfadder_invz#0",
"pinName": "Y"
},
"pin2": {
"compName": "_submodelinterface",
"pinName": "Y"
},
- "name": "unnamedWire#12",
+ "name": "unnamedWire#6",
"path": []
}
],
"symbolRendererParams": {
"centerText": "halfadder",
"centerTextHeight": 5.0,
- "horizontalComponentCenter": 17.5,
+ "horizontalComponentCenter": 15.0,
"pinLabelHeight": 3.5,
"pinLabelMargin": 0.5
},
--- /dev/null
+{
+ "width": 35.0,
+ "height": 20.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "A",
+ "logicWidth": 1,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "B",
+ "logicWidth": 1,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 5.0
+ },
+ "name": "Y",
+ "logicWidth": 1,
+ "usage": "OUTPUT"
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 15.0
+ },
+ "name": "_Z",
+ "logicWidth": 1,
+ "usage": "OUTPUT"
+ }
+ ],
+ "innerScale": 0.4,
+ "submodel": {
+ "components": [
+ {
+ "id": "NandGate",
+ "name": "NandGate#0",
+ "pos": {
+ "x": 10.0,
+ "y": 15.0
+ },
+ "params": 1
+ },
+ {
+ "id": "NandGate",
+ "name": "NandGate#1",
+ "pos": {
+ "x": 40.0,
+ "y": 2.5
+ },
+ "params": 1
+ },
+ {
+ "id": "NandGate",
+ "name": "NandGate#2",
+ "pos": {
+ "x": 40.0,
+ "y": 27.5
+ },
+ "params": 1
+ },
+ {
+ "id": "NandGate",
+ "name": "NandGate#3",
+ "pos": {
+ "x": 65.0,
+ "y": 2.5
+ },
+ "params": 1
+ },
+ {
+ "id": "WireCrossPoint",
+ "name": "WireCrossPoint#0",
+ "pos": {
+ "x": 4.0,
+ "y": 11.5
+ },
+ "params": 1
+ },
+ {
+ "id": "WireCrossPoint",
+ "name": "WireCrossPoint#1",
+ "pos": {
+ "x": 4.0,
+ "y": 36.5
+ },
+ "params": 1
+ },
+ {
+ "id": "WireCrossPoint",
+ "name": "WireCrossPoint#2",
+ "pos": {
+ "x": 34.0,
+ "y": 24.0
+ },
+ "params": 1
+ }
+ ],
+ "wires": [
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "A"
+ },
+ "pin2": {
+ "compName": "WireCrossPoint#0",
+ "pinName": ""
+ },
+ "name": "unnamedWire#0",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#0",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "NandGate#1",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#1",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#0",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "NandGate#0",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#2",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "B"
+ },
+ "pin2": {
+ "compName": "WireCrossPoint#1",
+ "pinName": ""
+ },
+ "name": "unnamedWire#3",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#1",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "NandGate#2",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#4",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 42.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#1",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "NandGate#0",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#5",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 30.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "NandGate#0",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "WireCrossPoint#2",
+ "pinName": ""
+ },
+ "name": "unnamedWire#6",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#2",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "_submodelinterface",
+ "pinName": "_Z"
+ },
+ "name": "unnamedWire#7",
+ "path": [
+ {
+ "x": 80.0,
+ "y": 25.0
+ },
+ {
+ "x": 80.0,
+ "y": 37.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#2",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "NandGate#1",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#8",
+ "path": [
+ {
+ "x": 35.0,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "WireCrossPoint#2",
+ "pinName": ""
+ },
+ "pin2": {
+ "compName": "NandGate#2",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#9",
+ "path": [
+ {
+ "x": 35.0,
+ "y": 32.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "NandGate#1",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "NandGate#3",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#10",
+ "path": [
+ {
+ "x": 62.5,
+ "y": 12.5
+ },
+ {
+ "x": 62.5,
+ "y": 7.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "NandGate#2",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "NandGate#3",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#11",
+ "path": [
+ {
+ "x": 62.5,
+ "y": 37.5
+ },
+ {
+ "x": 62.5,
+ "y": 17.5
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "NandGate#3",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "_submodelinterface",
+ "pinName": "Y"
+ },
+ "name": "unnamedWire#12",
+ "path": []
+ }
+ ],
+ "version": "0.1.1"
+ },
+ "symbolRendererSnippetID": "simpleRectangularLike",
+ "symbolRendererParams": {
+ "centerText": "halfadder",
+ "centerTextHeight": 5.0,
+ "horizontalComponentCenter": 17.5,
+ "pinLabelHeight": 3.5,
+ "pinLabelMargin": 0.5
+ },
+ "outlineRendererSnippetID": "default",
+ "highLevelStateHandlerSnippetID": "default",
+ "version": "0.1.5"
+}
\ No newline at end of file
--- /dev/null
+{
+ "width": 20.0,
+ "height": 25.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A",
+ "logicWidth": 12,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "CI",
+ "logicWidth": 1,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 20.0,
+ "y": 15.0
+ },
+ "name": "Y",
+ "logicWidth": 12,
+ "usage": "OUTPUT"
+ }
+ ],
+ "innerScale": 0.2,
+ "submodel": {
+ "components": [
+ {
+ "id": "Splitter",
+ "name": "Splitter#0",
+ "pos": {
+ "x": 7.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 12,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#1",
+ "pos": {
+ "x": 82.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 12,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#2",
+ "pos": {
+ "x": 22.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#3",
+ "pos": {
+ "x": 22.5,
+ "y": 50.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#4",
+ "pos": {
+ "x": 22.5,
+ "y": 90.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#5",
+ "pos": {
+ "x": 67.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#6",
+ "pos": {
+ "x": 67.5,
+ "y": 50.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#7",
+ "pos": {
+ "x": 67.5,
+ "y": 90.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#0",
+ "pos": {
+ "x": 42.5,
+ "y": 10.0
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#1",
+ "pos": {
+ "x": 42.5,
+ "y": 50.0
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#2",
+ "pos": {
+ "x": 42.5,
+ "y": 90.0
+ }
+ }
+ ],
+ "wires": [
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "CI"
+ },
+ "pin2": {
+ "compName": "inc4#0",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#0",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 25.0
+ },
+ {
+ "x": 5.0,
+ "y": 5.0
+ },
+ {
+ "x": 37.5,
+ "y": 5.0
+ },
+ {
+ "x": 37.5,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#2",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#0",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#1",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#3",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#1",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#2",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#4",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#2",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#3",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#0",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#5",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#4",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#1",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#6",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#5",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#2",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#7",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#6",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "A"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#7",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 75.0
+ },
+ {
+ "x": 5.0,
+ "y": 65.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#2",
+ "pinName": "O0"
+ },
+ "name": "unnamedWire#8",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#2",
+ "pinName": "O1"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#9",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#2",
+ "pinName": "O2"
+ },
+ "name": "unnamedWire#10",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#2",
+ "pinName": "O3"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#11",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O4"
+ },
+ "pin2": {
+ "compName": "Splitter#3",
+ "pinName": "O0"
+ },
+ "name": "unnamedWire#12",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O5"
+ },
+ "pin2": {
+ "compName": "Splitter#3",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#13",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#3",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O6"
+ },
+ "name": "unnamedWire#14",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O7"
+ },
+ "pin2": {
+ "compName": "Splitter#3",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#15",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#4",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O8"
+ },
+ "name": "unnamedWire#16",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O9"
+ },
+ "pin2": {
+ "compName": "Splitter#4",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#17",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#4",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O10"
+ },
+ "name": "unnamedWire#18",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O11"
+ },
+ "pin2": {
+ "compName": "Splitter#4",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#19",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#0",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "inc4#1",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#20",
+ "path": [
+ {
+ "x": 37.5,
+ "y": 35.0
+ },
+ {
+ "x": 37.5,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "inc4#1",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "inc4#2",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#21",
+ "path": [
+ {
+ "x": 37.5,
+ "y": 75.0
+ },
+ {
+ "x": 37.5,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#5",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O0"
+ },
+ "name": "unnamedWire#22",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O1"
+ },
+ "pin2": {
+ "compName": "Splitter#5",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#23",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "_submodelinterface",
+ "pinName": "Y"
+ },
+ "name": "unnamedWire#24",
+ "path": [
+ {
+ "x": 95.0,
+ "y": 65.0
+ },
+ {
+ "x": 95.0,
+ "y": 75.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#5",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O2"
+ },
+ "name": "unnamedWire#25",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O3"
+ },
+ "pin2": {
+ "compName": "Splitter#5",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#26",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#6",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O4"
+ },
+ "name": "unnamedWire#27",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O5"
+ },
+ "pin2": {
+ "compName": "Splitter#6",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#28",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#6",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O6"
+ },
+ "name": "unnamedWire#29",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O7"
+ },
+ "pin2": {
+ "compName": "Splitter#6",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#30",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#7",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O8"
+ },
+ "name": "unnamedWire#31",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O9"
+ },
+ "pin2": {
+ "compName": "Splitter#7",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#32",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#7",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O10"
+ },
+ "name": "unnamedWire#33",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O11"
+ },
+ "pin2": {
+ "compName": "Splitter#7",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#34",
+ "path": []
+ }
+ ],
+ "version": "0.1.1"
+ },
+ "symbolRendererSnippetID": "simpleRectangularLike",
+ "symbolRendererParams": {
+ "centerText": "Incrementer\n12 bit",
+ "centerTextHeight": 5.0,
+ "horizontalComponentCenter": 10.0,
+ "pinLabelHeight": 3.5,
+ "pinLabelMargin": 0.5
+ },
+ "outlineRendererSnippetID": "default",
+ "highLevelStateHandlerSnippetID": "default",
+ "version": "0.1.5"
+}
\ No newline at end of file
--- /dev/null
+{
+ "width": 20.0,
+ "height": 35.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A",
+ "logicWidth": 16,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "CI",
+ "logicWidth": 1,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 20.0,
+ "y": 15.0
+ },
+ "name": "Y",
+ "logicWidth": 16,
+ "usage": "OUTPUT"
+ }
+ ],
+ "innerScale": 0.2,
+ "submodel": {
+ "components": [
+ {
+ "id": "Splitter",
+ "name": "Splitter#0",
+ "pos": {
+ "x": 7.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 16,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#1",
+ "pos": {
+ "x": 82.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 16,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#2",
+ "pos": {
+ "x": 22.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#3",
+ "pos": {
+ "x": 22.5,
+ "y": 50.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#4",
+ "pos": {
+ "x": 22.5,
+ "y": 90.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#5",
+ "pos": {
+ "x": 22.5,
+ "y": 130.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#6",
+ "pos": {
+ "x": 67.5,
+ "y": 10.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#7",
+ "pos": {
+ "x": 67.5,
+ "y": 50.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#8",
+ "pos": {
+ "x": 67.5,
+ "y": 90.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#9",
+ "pos": {
+ "x": 67.5,
+ "y": 130.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#0",
+ "pos": {
+ "x": 42.5,
+ "y": 10.0
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#1",
+ "pos": {
+ "x": 42.5,
+ "y": 50.0
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#2",
+ "pos": {
+ "x": 42.5,
+ "y": 90.0
+ }
+ },
+ {
+ "id": "inc4",
+ "name": "inc4#3",
+ "pos": {
+ "x": 42.5,
+ "y": 130.0
+ }
+ }
+ ],
+ "wires": [
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "CI"
+ },
+ "pin2": {
+ "compName": "inc4#0",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#0",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 25.0
+ },
+ {
+ "x": 5.0,
+ "y": 5.0
+ },
+ {
+ "x": 37.5,
+ "y": 5.0
+ },
+ {
+ "x": 37.5,
+ "y": 15.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#2",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#0",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#1",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#3",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#1",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#2",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#4",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#2",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#3",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#5",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "inc4#3",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#4",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#0",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#6",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#5",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#1",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#7",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#6",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#2",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#8",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#7",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#3",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#9",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#8",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "A"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#9",
+ "path": [
+ {
+ "x": 5.0,
+ "y": 75.0
+ },
+ {
+ "x": 5.0,
+ "y": 85.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#2",
+ "pinName": "O0"
+ },
+ "name": "unnamedWire#10",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#2",
+ "pinName": "O1"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#11",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#2",
+ "pinName": "O2"
+ },
+ "name": "unnamedWire#12",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#2",
+ "pinName": "O3"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#13",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O4"
+ },
+ "pin2": {
+ "compName": "Splitter#3",
+ "pinName": "O0"
+ },
+ "name": "unnamedWire#14",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O5"
+ },
+ "pin2": {
+ "compName": "Splitter#3",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#15",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#3",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O6"
+ },
+ "name": "unnamedWire#16",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O7"
+ },
+ "pin2": {
+ "compName": "Splitter#3",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#17",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#4",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O8"
+ },
+ "name": "unnamedWire#18",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O9"
+ },
+ "pin2": {
+ "compName": "Splitter#4",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#19",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#4",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O10"
+ },
+ "name": "unnamedWire#20",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O11"
+ },
+ "pin2": {
+ "compName": "Splitter#4",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#21",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#5",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O12"
+ },
+ "name": "unnamedWire#22",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O13"
+ },
+ "pin2": {
+ "compName": "Splitter#5",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#23",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#5",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "O14"
+ },
+ "name": "unnamedWire#24",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O15"
+ },
+ "pin2": {
+ "compName": "Splitter#5",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#25",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "inc4#0",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "inc4#1",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#26",
+ "path": [
+ {
+ "x": 37.5,
+ "y": 35.0
+ },
+ {
+ "x": 37.5,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "inc4#1",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "inc4#2",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#27",
+ "path": [
+ {
+ "x": 37.5,
+ "y": 75.0
+ },
+ {
+ "x": 37.5,
+ "y": 95.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "inc4#2",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "inc4#3",
+ "pinName": "CI"
+ },
+ "name": "unnamedWire#28",
+ "path": [
+ {
+ "x": 37.5,
+ "y": 115.0
+ },
+ {
+ "x": 37.5,
+ "y": 135.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#6",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O0"
+ },
+ "name": "unnamedWire#29",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O1"
+ },
+ "pin2": {
+ "compName": "Splitter#6",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#30",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "_submodelinterface",
+ "pinName": "Y"
+ },
+ "name": "unnamedWire#31",
+ "path": [
+ {
+ "x": 95.0,
+ "y": 85.0
+ },
+ {
+ "x": 95.0,
+ "y": 75.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#6",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O2"
+ },
+ "name": "unnamedWire#32",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O3"
+ },
+ "pin2": {
+ "compName": "Splitter#6",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#33",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#7",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O4"
+ },
+ "name": "unnamedWire#34",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O5"
+ },
+ "pin2": {
+ "compName": "Splitter#7",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#35",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#7",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O6"
+ },
+ "name": "unnamedWire#36",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O7"
+ },
+ "pin2": {
+ "compName": "Splitter#7",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#37",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#8",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O8"
+ },
+ "name": "unnamedWire#38",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O9"
+ },
+ "pin2": {
+ "compName": "Splitter#8",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#39",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#8",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O10"
+ },
+ "name": "unnamedWire#40",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O11"
+ },
+ "pin2": {
+ "compName": "Splitter#8",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#41",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#9",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O12"
+ },
+ "name": "unnamedWire#42",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O13"
+ },
+ "pin2": {
+ "compName": "Splitter#9",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#43",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#9",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O14"
+ },
+ "name": "unnamedWire#44",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O15"
+ },
+ "pin2": {
+ "compName": "Splitter#9",
+ "pinName": "O3"
+ },
+ "name": "unnamedWire#45",
+ "path": []
+ }
+ ],
+ "version": "0.1.1"
+ },
+ "symbolRendererSnippetID": "simpleRectangularLike",
+ "symbolRendererParams": {
+ "centerText": "Incrementer\n16 bit",
+ "centerTextHeight": 5.0,
+ "horizontalComponentCenter": 10.0,
+ "pinLabelHeight": 3.5,
+ "pinLabelMargin": 0.5
+ },
+ "outlineRendererSnippetID": "default",
+ "highLevelStateHandlerSnippetID": "default",
+ "version": "0.1.5"
+}
\ No newline at end of file
--- /dev/null
+{
+ "width": 20.0,
+ "height": 30.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 15.0
+ },
+ "name": "A",
+ "logicWidth": 4,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 5.0
+ },
+ "name": "CI",
+ "logicWidth": 1,
+ "usage": "INPUT"
+ },
+ {
+ "location": {
+ "x": 20.0,
+ "y": 15.0
+ },
+ "name": "Y",
+ "logicWidth": 4,
+ "usage": "OUTPUT"
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 25.0
+ },
+ "name": "Z",
+ "logicWidth": 1,
+ "usage": "OUTPUT"
+ }
+ ],
+ "innerScale": 0.2,
+ "submodel": {
+ "components": [
+ {
+ "id": "Splitter",
+ "name": "Splitter#0",
+ "pos": {
+ "x": 5.0,
+ "y": 60.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "RIGHT_ALT"
+ }
+ },
+ {
+ "id": "Splitter",
+ "name": "Splitter#1",
+ "pos": {
+ "x": 85.0,
+ "y": 60.0
+ },
+ "params": {
+ "logicWidth": 4,
+ "orientation": "LEFT_ALT"
+ }
+ },
+ {
+ "id": "halfadder",
+ "name": "halfadder#0",
+ "pos": {
+ "x": 40.0,
+ "y": 5.0
+ }
+ },
+ {
+ "id": "halfadder",
+ "name": "halfadder#1",
+ "pos": {
+ "x": 40.0,
+ "y": 40.0
+ }
+ },
+ {
+ "id": "halfadder",
+ "name": "halfadder#2",
+ "pos": {
+ "x": 40.0,
+ "y": 75.0
+ }
+ },
+ {
+ "id": "halfadder",
+ "name": "halfadder#3",
+ "pos": {
+ "x": 40.0,
+ "y": 110.0
+ }
+ }
+ ],
+ "wires": [
+ {
+ "pin1": {
+ "compName": "halfadder#0",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "halfadder#1",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#0",
+ "path": [
+ {
+ "x": 35.0,
+ "y": 30.0
+ },
+ {
+ "x": 35.0,
+ "y": 45.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "halfadder#1",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "halfadder#2",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#1",
+ "path": [
+ {
+ "x": 35.0,
+ "y": 65.0
+ },
+ {
+ "x": 35.0,
+ "y": 80.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "halfadder#2",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "halfadder#3",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#2",
+ "path": [
+ {
+ "x": 35.0,
+ "y": 100.0
+ },
+ {
+ "x": 35.0,
+ "y": 115.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "halfadder#0",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#3",
+ "path": [
+ {
+ "x": 20.0,
+ "y": 60.0
+ },
+ {
+ "x": 20.0,
+ "y": 20.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O1"
+ },
+ "pin2": {
+ "compName": "halfadder#1",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#4",
+ "path": [
+ {
+ "x": 25.0,
+ "y": 70.0
+ },
+ {
+ "x": 25.0,
+ "y": 55.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O2"
+ },
+ "pin2": {
+ "compName": "halfadder#2",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#5",
+ "path": [
+ {
+ "x": 25.0,
+ "y": 80.0
+ },
+ {
+ "x": 25.0,
+ "y": 90.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#0",
+ "pinName": "O3"
+ },
+ "pin2": {
+ "compName": "halfadder#3",
+ "pinName": "B"
+ },
+ "name": "unnamedWire#6",
+ "path": [
+ {
+ "x": 20.0,
+ "y": 90.0
+ },
+ {
+ "x": 20.0,
+ "y": 125.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O0"
+ },
+ "pin2": {
+ "compName": "halfadder#0",
+ "pinName": "Y"
+ },
+ "name": "unnamedWire#7",
+ "path": [
+ {
+ "x": 80.0,
+ "y": 60.0
+ },
+ {
+ "x": 80.0,
+ "y": 10.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "halfadder#1",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O1"
+ },
+ "name": "unnamedWire#8",
+ "path": [
+ {
+ "x": 75.0,
+ "y": 45.0
+ },
+ {
+ "x": 75.0,
+ "y": 70.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "halfadder#2",
+ "pinName": "Y"
+ },
+ "pin2": {
+ "compName": "Splitter#1",
+ "pinName": "O2"
+ },
+ "name": "unnamedWire#9",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "O3"
+ },
+ "pin2": {
+ "compName": "halfadder#3",
+ "pinName": "Y"
+ },
+ "name": "unnamedWire#10",
+ "path": [
+ {
+ "x": 75.0,
+ "y": 90.0
+ },
+ {
+ "x": 75.0,
+ "y": 115.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "A"
+ },
+ "pin2": {
+ "compName": "Splitter#0",
+ "pinName": "I"
+ },
+ "name": "unnamedWire#11",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "_submodelinterface",
+ "pinName": "CI"
+ },
+ "pin2": {
+ "compName": "halfadder#0",
+ "pinName": "A"
+ },
+ "name": "unnamedWire#12",
+ "path": [
+ {
+ "x": 10.0,
+ "y": 25.0
+ },
+ {
+ "x": 10.0,
+ "y": 10.0
+ }
+ ]
+ },
+ {
+ "pin1": {
+ "compName": "Splitter#1",
+ "pinName": "I"
+ },
+ "pin2": {
+ "compName": "_submodelinterface",
+ "pinName": "Y"
+ },
+ "name": "unnamedWire#13",
+ "path": []
+ },
+ {
+ "pin1": {
+ "compName": "halfadder#3",
+ "pinName": "Z"
+ },
+ "pin2": {
+ "compName": "_submodelinterface",
+ "pinName": "Z"
+ },
+ "name": "unnamedWire#14",
+ "path": [
+ {
+ "x": 10.0,
+ "y": 135.0
+ },
+ {
+ "x": 10.0,
+ "y": 125.0
+ }
+ ]
+ }
+ ],
+ "version": "0.1.1"
+ },
+ "symbolRendererSnippetID": "simpleRectangularLike",
+ "symbolRendererParams": {
+ "centerText": "Incrementer\n4 bit",
+ "centerTextHeight": 5.0,
+ "horizontalComponentCenter": 10.0,
+ "pinLabelHeight": 3.5,
+ "pinLabelMargin": 0.5
+ },
+ "outlineRendererSnippetID": "default",
+ "highLevelStateHandlerSnippetID": "default",
+ "version": "0.1.5"
+}
\ No newline at end of file
+++ /dev/null
-package net.mograsim.logic.model.am2900.components;
-
-import static net.mograsim.logic.core.types.Bit.U;
-import static net.mograsim.logic.core.types.Bit.X;
-import static net.mograsim.logic.core.types.Bit.Z;
-import static net.mograsim.logic.core.types.Bit.ZERO;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import net.mograsim.logic.core.types.Bit;
-import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.LogicModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.PinUsage;
-import net.mograsim.logic.model.serializing.IdentifyParams;
-import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
-import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
-
-public class Modelinc extends SimpleRectangularHardcodedModelComponent
-{
- private final int logicWidth;
-
- public Modelinc(LogicModelModifiable model, String name, int logicWidth)
- {
- super(model, "inc", name, "Incrementer", false);
- this.logicWidth = logicWidth;
- setSize(40, 20);
- addPin(new Pin(model, this, "A", logicWidth, PinUsage.INPUT, 20, 20), Position.TOP);
- addPin(new Pin(model, this, "CI", 1, PinUsage.INPUT, 40, 10), Position.LEFT);
- addPin(new Pin(model, this, "Y", logicWidth, PinUsage.OUTPUT, 20, 0), Position.BOTTOM);
-
- init();
- }
-
- @Override
- public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
- {
- Bit[] ABits = readEnds.get("A").getValues().getBits();
- Bit CIVal = readEnds.get("CI").getValue();
- Bit[] YBits = new Bit[logicWidth];
- if (CIVal == X)
- Arrays.fill(YBits, X);
- else if (CIVal == U)
- Arrays.fill(YBits, U);
- else if (CIVal == Z)
- Arrays.fill(YBits, X);
- else if (CIVal == ZERO)
- YBits = ABits;
- else
- {
- Bit carry = Bit.ONE;
- // TODO extract to helper. This code almost also exists in ModelAm2910RegCntr.
- for (int i = logicWidth - 1; i >= 0; i--)
- {
- Bit a = ABits[i];
- YBits[i] = a.xor(carry);
- carry = a.and(carry);
- }
- }
- readWriteEnds.get("Y").feedSignals(YBits);
- return null;
- }
-
- @Override
- public Integer getParamsForSerializing(IdentifyParams idParams)
- {
- return logicWidth;
- }
-
- static
- {
- IndirectModelComponentCreator.setComponentSupplier(Modelinc.class.getCanonicalName(),
- (m, p, n) -> new Modelinc(m, n, p.getAsInt()));
- }
-}
\ No newline at end of file
"Am2904ShiftInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.ModelAm2904ShiftInstrDecode",
"Am2910RegCntr": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.ModelAm2910RegCntr",
"Am2910SP": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.ModelAm2910SP",
- "inc": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modelinc",
"ram5_12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modelram5_12",
"sel4_12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modelsel4_12",
"Am2900": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/Am2900.json",
"dlatch80": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch80.json",
"fulladder": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/fulladder.json",
"halfadder": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/halfadder.json",
+ "halfadder_invz": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/halfadder_invz.json",
+ "inc4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/inc4.json",
+ "inc12": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/inc12.json",
+ "inc16": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/inc16.json",
"mux1": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1.json",
"mux1_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1_4.json",
"mux1_8": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1_8.json",
import net.mograsim.logic.model.SimpleLogicUIStandalone;
import net.mograsim.logic.model.am2900.Am2900Loader;
+import net.mograsim.logic.model.am2900.machine.StrictAm2900MachineDefinition;
import net.mograsim.logic.model.model.LogicModelModifiable;
import net.mograsim.logic.model.model.components.ModelComponent;
import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
import net.mograsim.logic.model.model.wires.ModelWire;
import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.model.wires.PinUsage;
-import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
public class ModelComponentTestbench
{
public static void createTestbench(LogicModelModifiable model)
{
Am2900Loader.setup();
-// ModelComponent comp = new StrictAm2900MachineDefinition().createNew(model).getAm2900();
- ModelComponent comp = IndirectModelComponentCreator.createComponent(model, "dff4_finewe");
+ ModelComponent comp = new StrictAm2900MachineDefinition().createNew(model).getAm2900();
+// ModelComponent comp = IndirectModelComponentCreator.createComponent(model, "inc12");
List<String> inputPinNames = new ArrayList<>();
List<String> outputPinNames = new ArrayList<>();