From: Daniel Kirschten Date: Thu, 5 Sep 2019 15:47:07 +0000 (+0200) Subject: Renamed GUI to Model: X-Git-Url: https://mograsim.net/gitweb/?a=commitdiff_plain;h=93b398d6271a538a2a4c9f4de07a3b4a8a2a7fd4;p=Mograsim.git Renamed GUI to Model: -Renamed GUIComponents to have the common prefix Model instead of GUI. -Renamed JSONs to have no prefix -Rename IDs to have no prefix --- diff --git a/net.mograsim.logic.model.am2900/GUIAm2904Testbench.json b/net.mograsim.logic.model.am2900/GUIAm2904Testbench.json index b96609a8..2146f401 100644 --- a/net.mograsim.logic.model.am2900/GUIAm2904Testbench.json +++ b/net.mograsim.logic.model.am2900/GUIAm2904Testbench.json @@ -6,7 +6,7 @@ "submodel": { "components": [ { - "id": "GUIAm2904", + "id": "Am2904", "name": "Am2904", "pos": { "x": 220.0, @@ -14,8 +14,8 @@ } }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#0", + "id": "BitDisplay", + "name": "BitDisplay#0", "pos": { "x": 391.0, "y": 150.0 @@ -23,8 +23,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#1", + "id": "BitDisplay", + "name": "BitDisplay#1", "pos": { "x": 391.0, "y": 165.0 @@ -32,8 +32,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#2", + "id": "BitDisplay", + "name": "BitDisplay#2", "pos": { "x": 391.0, "y": 180.0 @@ -41,8 +41,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#3", + "id": "BitDisplay", + "name": "BitDisplay#3", "pos": { "x": 391.0, "y": 195.0 @@ -50,8 +50,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#4", + "id": "BitDisplay", + "name": "BitDisplay#4", "pos": { "x": 365.0, "y": 240.0 @@ -59,8 +59,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#5", + "id": "BitDisplay", + "name": "BitDisplay#5", "pos": { "x": 365.0, "y": 275.0 @@ -68,8 +68,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#6", + "id": "BitDisplay", + "name": "BitDisplay#6", "pos": { "x": 365.0, "y": 370.0 @@ -77,8 +77,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#7", + "id": "BitDisplay", + "name": "BitDisplay#7", "pos": { "x": 365.0, "y": 385.0 @@ -86,8 +86,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#8", + "id": "BitDisplay", + "name": "BitDisplay#8", "pos": { "x": 365.0, "y": 330.0 @@ -95,8 +95,8 @@ "params": 1 }, { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#9", + "id": "BitDisplay", + "name": "BitDisplay#9", "pos": { "x": 365.0, "y": 315.0 @@ -104,8 +104,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#0", + "id": "ManualSwitch", + "name": "ManualSwitch#0", "pos": { "x": 255.0, "y": 152.5 @@ -113,8 +113,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#1", + "id": "ManualSwitch", + "name": "ManualSwitch#1", "pos": { "x": 170.0, "y": 82.5 @@ -122,8 +122,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#10", + "id": "ManualSwitch", + "name": "ManualSwitch#10", "pos": { "x": 160.0, "y": 247.5 @@ -131,8 +131,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#11", + "id": "ManualSwitch", + "name": "ManualSwitch#11", "pos": { "x": 160.0, "y": 217.5 @@ -140,8 +140,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#12", + "id": "ManualSwitch", + "name": "ManualSwitch#12", "pos": { "x": 160.0, "y": 202.5 @@ -149,8 +149,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#13", + "id": "ManualSwitch", + "name": "ManualSwitch#13", "pos": { "x": 60.0, "y": 132.5 @@ -158,8 +158,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#14", + "id": "ManualSwitch", + "name": "ManualSwitch#14", "pos": { "x": 165.0, "y": 287.5 @@ -167,8 +167,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#15", + "id": "ManualSwitch", + "name": "ManualSwitch#15", "pos": { "x": 140.0, "y": 317.5 @@ -176,8 +176,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#16", + "id": "ManualSwitch", + "name": "ManualSwitch#16", "pos": { "x": 140.0, "y": 332.5 @@ -185,8 +185,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#17", + "id": "ManualSwitch", + "name": "ManualSwitch#17", "pos": { "x": 140.0, "y": 387.5 @@ -194,8 +194,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#18", + "id": "ManualSwitch", + "name": "ManualSwitch#18", "pos": { "x": 140.0, "y": 372.5 @@ -203,8 +203,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#19", + "id": "ManualSwitch", + "name": "ManualSwitch#19", "pos": { "x": 140.0, "y": 357.5 @@ -212,8 +212,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#2", + "id": "ManualSwitch", + "name": "ManualSwitch#2", "pos": { "x": 170.0, "y": 112.5 @@ -221,8 +221,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#20", + "id": "ManualSwitch", + "name": "ManualSwitch#20", "pos": { "x": 140.0, "y": 302.5 @@ -230,8 +230,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#21", + "id": "ManualSwitch", + "name": "ManualSwitch#21", "pos": { "x": 55.0, "y": 142.5 @@ -239,8 +239,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#22", + "id": "ManualSwitch", + "name": "ManualSwitch#22", "pos": { "x": 60.0, "y": 152.5 @@ -248,8 +248,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#23", + "id": "ManualSwitch", + "name": "ManualSwitch#23", "pos": { "x": 60.0, "y": 172.5 @@ -257,8 +257,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#24", + "id": "ManualSwitch", + "name": "ManualSwitch#24", "pos": { "x": 55.0, "y": 162.5 @@ -266,8 +266,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#25", + "id": "ManualSwitch", + "name": "ManualSwitch#25", "pos": { "x": 55.0, "y": 182.5 @@ -275,8 +275,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#26", + "id": "ManualSwitch", + "name": "ManualSwitch#26", "pos": { "x": 60.0, "y": 192.5 @@ -284,8 +284,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#27", + "id": "ManualSwitch", + "name": "ManualSwitch#27", "pos": { "x": 60.0, "y": 232.5 @@ -293,8 +293,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#28", + "id": "ManualSwitch", + "name": "ManualSwitch#28", "pos": { "x": 55.0, "y": 202.5 @@ -302,8 +302,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#29", + "id": "ManualSwitch", + "name": "ManualSwitch#29", "pos": { "x": 55.0, "y": 222.5 @@ -311,8 +311,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#3", + "id": "ManualSwitch", + "name": "ManualSwitch#3", "pos": { "x": 55.0, "y": 122.5 @@ -320,8 +320,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#30", + "id": "ManualSwitch", + "name": "ManualSwitch#30", "pos": { "x": 60.0, "y": 212.5 @@ -329,8 +329,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#31", + "id": "ManualSwitch", + "name": "ManualSwitch#31", "pos": { "x": 55.0, "y": 242.5 @@ -338,8 +338,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#32", + "id": "ManualSwitch", + "name": "ManualSwitch#32", "pos": { "x": 300.0, "y": 107.5 @@ -347,8 +347,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#33", + "id": "ManualSwitch", + "name": "ManualSwitch#33", "pos": { "x": 300.0, "y": 137.5 @@ -356,8 +356,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#34", + "id": "ManualSwitch", + "name": "ManualSwitch#34", "pos": { "x": 300.0, "y": 92.5 @@ -365,8 +365,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#35", + "id": "ManualSwitch", + "name": "ManualSwitch#35", "pos": { "x": 300.0, "y": 122.5 @@ -374,8 +374,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#36", + "id": "ManualSwitch", + "name": "ManualSwitch#36", "pos": { "x": 300.0, "y": 77.5 @@ -383,8 +383,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#37", + "id": "ManualSwitch", + "name": "ManualSwitch#37", "pos": { "x": 165.0, "y": 270.0 @@ -392,8 +392,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#38", + "id": "ManualSwitch", + "name": "ManualSwitch#38", "pos": { "x": 385.0, "y": 220.0 @@ -401,8 +401,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#4", + "id": "ManualSwitch", + "name": "ManualSwitch#4", "pos": { "x": 170.0, "y": 127.5 @@ -410,8 +410,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#5", + "id": "ManualSwitch", + "name": "ManualSwitch#5", "pos": { "x": 170.0, "y": 142.5 @@ -419,8 +419,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#6", + "id": "ManualSwitch", + "name": "ManualSwitch#6", "pos": { "x": 170.0, "y": 157.5 @@ -428,8 +428,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#7", + "id": "ManualSwitch", + "name": "ManualSwitch#7", "pos": { "x": 155.0, "y": 172.5 @@ -437,8 +437,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#8", + "id": "ManualSwitch", + "name": "ManualSwitch#8", "pos": { "x": 155.0, "y": 187.5 @@ -446,8 +446,8 @@ "params": 1 }, { - "id": "GUIManualSwitch", - "name": "GUIManualSwitch#9", + "id": "ManualSwitch", + "name": "ManualSwitch#9", "pos": { "x": 160.0, "y": 232.5 @@ -455,8 +455,8 @@ "params": 1 }, { - "id": "GUIMerger", - "name": "GUIMerger#0", + "id": "Merger", + "name": "Merger#0", "pos": { "x": 85.0, "y": 130.0 @@ -464,8 +464,8 @@ "params": 13 }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#0", + "id": "TriStateBuffer", + "name": "TriStateBuffer#0", "pos": { "x": 175.0, "y": 315.0 @@ -476,8 +476,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#1", + "id": "TriStateBuffer", + "name": "TriStateBuffer#1", "pos": { "x": 175.0, "y": 330.0 @@ -488,8 +488,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#2", + "id": "TriStateBuffer", + "name": "TriStateBuffer#2", "pos": { "x": 175.0, "y": 385.0 @@ -500,8 +500,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#3", + "id": "TriStateBuffer", + "name": "TriStateBuffer#3", "pos": { "x": 175.0, "y": 370.0 @@ -512,8 +512,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#4", + "id": "TriStateBuffer", + "name": "TriStateBuffer#4", "pos": { "x": 335.0, "y": 105.0 @@ -524,8 +524,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#5", + "id": "TriStateBuffer", + "name": "TriStateBuffer#5", "pos": { "x": 335.0, "y": 90.0 @@ -536,8 +536,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#6", + "id": "TriStateBuffer", + "name": "TriStateBuffer#6", "pos": { "x": 335.0, "y": 120.0 @@ -548,8 +548,8 @@ } }, { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#7", + "id": "TriStateBuffer", + "name": "TriStateBuffer#7", "pos": { "x": 335.0, "y": 135.0 @@ -1121,7 +1121,7 @@ "wires": [ { "pin1": { - "compName": "GUIManualSwitch#0", + "compName": "ManualSwitch#0", "pinName": "" }, "pin2": { @@ -1138,7 +1138,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#1", + "compName": "ManualSwitch#1", "pinName": "" }, "pin2": { @@ -1163,7 +1163,7 @@ "pinName": "_EOVR" }, "pin2": { - "compName": "GUIManualSwitch#10", + "compName": "ManualSwitch#10", "pinName": "" }, "name": "unnamedWire#10", @@ -1180,7 +1180,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#9", + "compName": "ManualSwitch#9", "pinName": "" }, "pin2": { @@ -1201,7 +1201,7 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "O" }, "pin2": { @@ -1230,7 +1230,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#14", + "compName": "ManualSwitch#14", "pinName": "" }, "pin2": { @@ -1284,7 +1284,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIBitDisplay#1", + "compName": "BitDisplay#1", "pinName": "" }, "name": "unnamedWire#16", @@ -1313,7 +1313,7 @@ "pinName": "CT" }, "pin2": { - "compName": "GUIBitDisplay#4", + "compName": "BitDisplay#4", "pinName": "" }, "name": "unnamedWire#18", @@ -1334,7 +1334,7 @@ "pinName": "C0" }, "pin2": { - "compName": "GUIBitDisplay#5", + "compName": "BitDisplay#5", "pinName": "" }, "name": "unnamedWire#19", @@ -1342,7 +1342,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#2", + "compName": "ManualSwitch#2", "pinName": "" }, "pin2": { @@ -1384,7 +1384,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#0", + "compName": "TriStateBuffer#0", "pinName": "OUT" }, "name": "unnamedWire#21", @@ -1409,7 +1409,7 @@ }, { "pin1": { - "compName": "GUITriStateBuffer#1", + "compName": "TriStateBuffer#1", "pinName": "OUT" }, "pin2": { @@ -1421,11 +1421,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#15", + "compName": "ManualSwitch#15", "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#0", + "compName": "TriStateBuffer#0", "pinName": "IN" }, "name": "unnamedWire#24", @@ -1433,11 +1433,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#16", + "compName": "ManualSwitch#16", "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#1", + "compName": "TriStateBuffer#1", "pinName": "IN" }, "name": "unnamedWire#25", @@ -1445,11 +1445,11 @@ }, { "pin1": { - "compName": "GUITriStateBuffer#2", + "compName": "TriStateBuffer#2", "pinName": "IN" }, "pin2": { - "compName": "GUIManualSwitch#17", + "compName": "ManualSwitch#17", "pinName": "" }, "name": "unnamedWire#26", @@ -1457,11 +1457,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#18", + "compName": "ManualSwitch#18", "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#3", + "compName": "TriStateBuffer#3", "pinName": "IN" }, "name": "unnamedWire#27", @@ -1469,7 +1469,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#19", + "compName": "ManualSwitch#19", "pinName": "" }, "pin2": { @@ -1485,7 +1485,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#3", + "compName": "TriStateBuffer#3", "pinName": "EN" }, "name": "unnamedWire#29", @@ -1497,7 +1497,7 @@ "pinName": "IC" }, "pin2": { - "compName": "GUIManualSwitch#4", + "compName": "ManualSwitch#4", "pinName": "" }, "name": "unnamedWire#3", @@ -1518,7 +1518,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#2", + "compName": "TriStateBuffer#2", "pinName": "EN" }, "name": "unnamedWire#30", @@ -1535,7 +1535,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#20", + "compName": "ManualSwitch#20", "pinName": "" }, "pin2": { @@ -1551,7 +1551,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#0", + "compName": "TriStateBuffer#0", "pinName": "EN" }, "name": "unnamedWire#32", @@ -1563,7 +1563,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#1", + "compName": "TriStateBuffer#1", "pinName": "EN" }, "name": "unnamedWire#33", @@ -1584,7 +1584,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIBitDisplay#9", + "compName": "BitDisplay#9", "pinName": "" }, "name": "unnamedWire#34", @@ -1605,7 +1605,7 @@ }, { "pin1": { - "compName": "GUIBitDisplay#8", + "compName": "BitDisplay#8", "pinName": "" }, "pin2": { @@ -1630,7 +1630,7 @@ }, { "pin1": { - "compName": "GUITriStateBuffer#3", + "compName": "TriStateBuffer#3", "pinName": "OUT" }, "pin2": { @@ -1659,7 +1659,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#2", + "compName": "TriStateBuffer#2", "pinName": "OUT" }, "name": "unnamedWire#37", @@ -1680,7 +1680,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIBitDisplay#7", + "compName": "BitDisplay#7", "pinName": "" }, "name": "unnamedWire#38", @@ -1693,7 +1693,7 @@ }, { "pin1": { - "compName": "GUIBitDisplay#6", + "compName": "BitDisplay#6", "pinName": "" }, "pin2": { @@ -1705,7 +1705,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#5", + "compName": "ManualSwitch#5", "pinName": "" }, "pin2": { @@ -1760,11 +1760,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#3", + "compName": "ManualSwitch#3", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I12" }, "name": "unnamedWire#42", @@ -1772,11 +1772,11 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I11" }, "pin2": { - "compName": "GUIManualSwitch#13", + "compName": "ManualSwitch#13", "pinName": "" }, "name": "unnamedWire#43", @@ -1784,11 +1784,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#21", + "compName": "ManualSwitch#21", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I10" }, "name": "unnamedWire#44", @@ -1796,11 +1796,11 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I9" }, "pin2": { - "compName": "GUIManualSwitch#22", + "compName": "ManualSwitch#22", "pinName": "" }, "name": "unnamedWire#45", @@ -1808,11 +1808,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#24", + "compName": "ManualSwitch#24", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I8" }, "name": "unnamedWire#46", @@ -1820,11 +1820,11 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I7" }, "pin2": { - "compName": "GUIManualSwitch#23", + "compName": "ManualSwitch#23", "pinName": "" }, "name": "unnamedWire#47", @@ -1832,11 +1832,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#25", + "compName": "ManualSwitch#25", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I6" }, "name": "unnamedWire#48", @@ -1844,11 +1844,11 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I5" }, "pin2": { - "compName": "GUIManualSwitch#26", + "compName": "ManualSwitch#26", "pinName": "" }, "name": "unnamedWire#49", @@ -1860,7 +1860,7 @@ "pinName": "IOVR" }, "pin2": { - "compName": "GUIManualSwitch#6", + "compName": "ManualSwitch#6", "pinName": "" }, "name": "unnamedWire#5", @@ -1877,11 +1877,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#28", + "compName": "ManualSwitch#28", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I4" }, "name": "unnamedWire#50", @@ -1889,11 +1889,11 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I3" }, "pin2": { - "compName": "GUIManualSwitch#30", + "compName": "ManualSwitch#30", "pinName": "" }, "name": "unnamedWire#51", @@ -1901,11 +1901,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#29", + "compName": "ManualSwitch#29", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I2" }, "name": "unnamedWire#52", @@ -1913,11 +1913,11 @@ }, { "pin1": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I1" }, "pin2": { - "compName": "GUIManualSwitch#27", + "compName": "ManualSwitch#27", "pinName": "" }, "name": "unnamedWire#53", @@ -1925,11 +1925,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#31", + "compName": "ManualSwitch#31", "pinName": "" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "Merger#0", "pinName": "I0" }, "name": "unnamedWire#54", @@ -1937,11 +1937,11 @@ }, { "pin1": { - "compName": "GUITriStateBuffer#7", + "compName": "TriStateBuffer#7", "pinName": "IN" }, "pin2": { - "compName": "GUIManualSwitch#33", + "compName": "ManualSwitch#33", "pinName": "" }, "name": "unnamedWire#55", @@ -1949,11 +1949,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#35", + "compName": "ManualSwitch#35", "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#6", + "compName": "TriStateBuffer#6", "pinName": "IN" }, "name": "unnamedWire#56", @@ -1961,11 +1961,11 @@ }, { "pin1": { - "compName": "GUITriStateBuffer#4", + "compName": "TriStateBuffer#4", "pinName": "IN" }, "pin2": { - "compName": "GUIManualSwitch#32", + "compName": "ManualSwitch#32", "pinName": "" }, "name": "unnamedWire#57", @@ -1973,11 +1973,11 @@ }, { "pin1": { - "compName": "GUIManualSwitch#34", + "compName": "ManualSwitch#34", "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#5", + "compName": "TriStateBuffer#5", "pinName": "IN" }, "name": "unnamedWire#58", @@ -1989,7 +1989,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#5", + "compName": "TriStateBuffer#5", "pinName": "EN" }, "name": "unnamedWire#59", @@ -1997,7 +1997,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#7", + "compName": "ManualSwitch#7", "pinName": "" }, "pin2": { @@ -2022,7 +2022,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIManualSwitch#36", + "compName": "ManualSwitch#36", "pinName": "" }, "name": "unnamedWire#60", @@ -2051,7 +2051,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#4", + "compName": "TriStateBuffer#4", "pinName": "EN" }, "name": "unnamedWire#62", @@ -2075,7 +2075,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#6", + "compName": "TriStateBuffer#6", "pinName": "EN" }, "name": "unnamedWire#64", @@ -2083,7 +2083,7 @@ }, { "pin1": { - "compName": "GUITriStateBuffer#7", + "compName": "TriStateBuffer#7", "pinName": "EN" }, "pin2": { @@ -2104,7 +2104,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIBitDisplay#0", + "compName": "BitDisplay#0", "pinName": "" }, "name": "unnamedWire#66", @@ -2116,7 +2116,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#5", + "compName": "TriStateBuffer#5", "pinName": "OUT" }, "name": "unnamedWire#67", @@ -2150,7 +2150,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#4", + "compName": "TriStateBuffer#4", "pinName": "OUT" }, "name": "unnamedWire#69", @@ -2167,7 +2167,7 @@ "pinName": "_CEmu" }, "pin2": { - "compName": "GUIManualSwitch#8", + "compName": "ManualSwitch#8", "pinName": "" }, "name": "unnamedWire#7", @@ -2188,7 +2188,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#6", + "compName": "TriStateBuffer#6", "pinName": "OUT" }, "name": "unnamedWire#70", @@ -2205,7 +2205,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIBitDisplay#2", + "compName": "BitDisplay#2", "pinName": "" }, "name": "unnamedWire#71", @@ -2217,7 +2217,7 @@ "pinName": "" }, "pin2": { - "compName": "GUIBitDisplay#3", + "compName": "BitDisplay#3", "pinName": "" }, "name": "unnamedWire#72", @@ -2234,7 +2234,7 @@ "pinName": "" }, "pin2": { - "compName": "GUITriStateBuffer#7", + "compName": "TriStateBuffer#7", "pinName": "OUT" }, "name": "unnamedWire#73", @@ -2251,7 +2251,7 @@ "pinName": "_SE" }, "pin2": { - "compName": "GUIManualSwitch#37", + "compName": "ManualSwitch#37", "pinName": "" }, "name": "unnamedWire#74", @@ -2268,7 +2268,7 @@ }, { "pin1": { - "compName": "GUIManualSwitch#38", + "compName": "ManualSwitch#38", "pinName": "" }, "pin2": { @@ -2301,7 +2301,7 @@ "pinName": "_EZ" }, "pin2": { - "compName": "GUIManualSwitch#12", + "compName": "ManualSwitch#12", "pinName": "" }, "name": "unnamedWire#8", @@ -2313,7 +2313,7 @@ "pinName": "_EC" }, "pin2": { - "compName": "GUIManualSwitch#11", + "compName": "ManualSwitch#11", "pinName": "" }, "name": "unnamedWire#9", diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json new file mode 100644 index 00000000..f52b2d39 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json @@ -0,0 +1,2222 @@ +{ + "width": 344.0, + "height": 242.0, + "interfacePins": [], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "Am2901", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 420.0, + "y": 240.0 + } + }, + { + "id": "Am2901", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 485.0, + "y": 240.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 320.0, + "y": 15.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#11", + "pos": { + "x": 320.0, + "y": 120.0 + } + }, + { + "id": "dff12_we", + "name": "DeserializedSubmodelComponent#12", + "pos": { + "x": 290.0, + "y": 485.0 + } + }, + { + "id": "mux1_12", + "name": "DeserializedSubmodelComponent#13", + "pos": { + "x": 170.0, + "y": 495.0 + } + }, + { + "id": "Am2901", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 550.0, + "y": 240.0 + } + }, + { + "id": "Am2901", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 615.0, + "y": 240.0 + } + }, + { + "id": "Am2904", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 240.0, + "y": 241.0 + } + }, + { + "id": "Am2910", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 100.0, + "y": 351.0 + } + }, + { + "id": "and", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 665.0, + "y": 501.0 + } + }, + { + "id": "and", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 550.0, + "y": 541.0 + } + }, + { + "id": "and", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 730.0, + "y": 526.0 + } + }, + { + "id": "dff16_invwe", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 135.0, + "y": 106.0 + } + }, + { + "id": "Clock", + "name": "Clock#0", + "pos": { + "x": 155.0, + "y": 246.0 + }, + "params": { + "delta": 1000, + "orientation": "DOWN" + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#0", + "pos": { + "x": 205.0, + "y": 211.0 + }, + "params": { + "bits": [ + "ZERO" + ] + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#1", + "pos": { + "x": 370.0, + "y": 301.0 + }, + "params": { + "bits": [ + "ZERO" + ] + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#11", + "pos": { + "x": 210.0, + "y": 281.0 + }, + "params": { + "bits": [ + "ZERO" + ] + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#3", + "pos": { + "x": 70.0, + "y": 346.0 + }, + "params": { + "bits": [ + "ONE" + ] + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#5", + "pos": { + "x": 175.0, + "y": 396.0 + }, + "params": { + "bits": [ + "ONE" + ] + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#7", + "pos": { + "x": 140.0, + "y": 431.0 + }, + "params": { + "bits": [ + "ZERO" + ] + } + }, + { + "id": "FixedOutput", + "name": "FixedOutput#9", + "pos": { + "x": 210.0, + "y": 316.0 + }, + "params": { + "bits": [ + "ZERO" + ] + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 235.0, + "y": 56.0 + }, + "params": 8 + }, + { + "id": "Merger", + "name": "Merger#1", + "pos": { + "x": 235.0, + "y": 136.0 + }, + "params": 4 + }, + { + "id": "Merger", + "name": "Merger#2", + "pos": { + "x": 235.0, + "y": 176.0 + }, + "params": 4 + }, + { + "id": "Merger", + "name": "Merger#3", + "pos": { + "x": 360.0, + "y": 20.0 + }, + "params": 4 + }, + { + "id": "Merger", + "name": "Merger#4", + "pos": { + "x": 360.0, + "y": 125.0 + }, + "params": 4 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 255.0, + "y": 495.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 270.0, + "y": 550.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 215.0, + "y": 56.0 + }, + "params": 16 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 305.0, + "y": 30.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#10", + "pos": { + "x": 600.0, + "y": 395.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#2", + "pos": { + "x": 305.0, + "y": 135.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#3", + "pos": { + "x": 405.0, + "y": 395.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#4", + "pos": { + "x": 405.0, + "y": 435.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#5", + "pos": { + "x": 470.0, + "y": 395.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#6", + "pos": { + "x": 470.0, + "y": 435.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#7", + "pos": { + "x": 535.0, + "y": 435.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#8", + "pos": { + "x": 535.0, + "y": 395.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#9", + "pos": { + "x": 600.0, + "y": 435.0 + }, + "params": 4 + }, + { + "id": "inc12", + "name": "inc12#0", + "pos": { + "x": 245.0, + "y": 525.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 200.0, + "y": 236.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 400.0, + "y": 231.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 415.0, + "y": 220.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 410.0, + "y": 225.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 266.0, + "y": 555.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 245.0, + "y": 490.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 355.0, + "y": 505.0 + }, + "params": 12 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 470.0, + "y": 231.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 535.0, + "y": 231.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 230.0, + "y": 176.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 235.0, + "y": 281.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 525.0, + "y": 225.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 530.0, + "y": 220.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 465.0, + "y": 220.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 460.0, + "y": 225.0 + }, + "params": 4 + } + ], + "wires": [ + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "CT" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "_CC" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Qn+3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Qn" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "QIOn" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Qn+3" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B0" + }, + "pin2": { + "compName": "Splitter#7", + "pinName": "O3" + }, + "name": "unnamedWire#100", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#8", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A3" + }, + "name": "unnamedWire#101", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A2" + }, + "pin2": { + "compName": "Splitter#8", + "pinName": "O1" + }, + "name": "unnamedWire#102", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#8", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A1" + }, + "name": "unnamedWire#103", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A0" + }, + "pin2": { + "compName": "Splitter#8", + "pinName": "O3" + }, + "name": "unnamedWire#104", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#10", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A0" + }, + "name": "unnamedWire#105", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A1" + }, + "pin2": { + "compName": "Splitter#10", + "pinName": "O2" + }, + "name": "unnamedWire#106", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#10", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A2" + }, + "name": "unnamedWire#107", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A3" + }, + "pin2": { + "compName": "Splitter#10", + "pinName": "O0" + }, + "name": "unnamedWire#108", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#9", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "B0" + }, + "name": "unnamedWire#109", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "IN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "F3" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "B1" + }, + "pin2": { + "compName": "Splitter#9", + "pinName": "O2" + }, + "name": "unnamedWire#110", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#9", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "B2" + }, + "name": "unnamedWire#111", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "B3" + }, + "pin2": { + "compName": "Splitter#9", + "pinName": "O0" + }, + "name": "unnamedWire#112", + "path": [] + }, + { + "pin1": { + "compName": "Merger#3", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#113", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "Merger#4", + "pinName": "O" + }, + "name": "unnamedWire#114", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#116", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#117", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#118", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "I" + }, + "name": "unnamedWire#119", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "F\u003d0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "B" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#120", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#6", + "pinName": "I" + }, + "name": "unnamedWire#121", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "I" + }, + "name": "unnamedWire#122", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#7", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#123", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#8", + "pinName": "I" + }, + "name": "unnamedWire#124", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#9", + "pinName": "I" + }, + "name": "unnamedWire#125", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#10", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#126", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "WE" + }, + "name": "unnamedWire#127", + "path": [] + }, + { + "pin1": { + "compName": "inc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "D" + }, + "name": "unnamedWire#128", + "path": [] + }, + { + "pin1": { + "compName": "inc12#0", + "pinName": "A" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "Y" + }, + "name": "unnamedWire#129", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "F\u003d0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "A" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "inc12#0", + "pinName": "CI" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "name": "unnamedWire#130", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#131", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#132", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#133", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I1" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#134", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "S" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#135", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#136", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#137", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#138", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "A" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "B" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "F\u003d0" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "F\u003d0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "A" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "IZ" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "OVR" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "IOVR" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "RAMn+3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "RAMn" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Cn+4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "IC" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Cn+4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Cn" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Cn+4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Cn" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Cn+4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Cn" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "Clock#0", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "C" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Qn+3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Qn" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "C" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Cn" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "C0" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "FixedOutput#1", + "pinName": "out" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "_OECT" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "FixedOutput#3", + "pinName": "out" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "_RLD" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "CI" + }, + "pin2": { + "compName": "FixedOutput#5", + "pinName": "out" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "_OE" + }, + "pin2": { + "compName": "FixedOutput#7", + "pinName": "out" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "FixedOutput#9", + "pinName": "out" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "_SE" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "RAMn" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "RAMn+3" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "FixedOutput#11", + "pinName": "out" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "_EZ" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "_EOVR" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "_EC" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "_EN" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O15" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I7" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I6" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O14" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O13" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I5" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I4" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O12" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "RAMn" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "RAMn+3" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I3" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "FixedOutput#0", + "pinName": "out" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 230.0, + "y": 221.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "Merger#1", + "pinName": "I3" + }, + "name": "unnamedWire#55", + "path": [ + { + "x": 230.0, + "y": 136.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "Merger#2", + "pinName": "I3" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "Merger#2", + "pinName": "I2" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "Merger#2", + "pinName": "I1" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "Merger#2", + "pinName": "I0" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Qn+3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Qn" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Merger#1", + "pinName": "I0" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "pin2": { + "compName": "Merger#1", + "pinName": "I1" + }, + "name": "unnamedWire#61", + "path": [] + }, + { + "pin1": { + "compName": "Merger#1", + "pinName": "I2" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "name": "unnamedWire#62", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I0_1" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I0_2" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I0_3" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I0_4" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I0_1" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I0_2" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "O2" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I0_3" + }, + "name": "unnamedWire#69", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Qn" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "QIO0" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I0_4" + }, + "name": "unnamedWire#70", + "path": [] + }, + { + "pin1": { + "compName": "Merger#2", + "pinName": "O" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "I" + }, + "name": "unnamedWire#71", + "path": [] + }, + { + "pin1": { + "compName": "Merger#1", + "pinName": "O" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "I" + }, + "name": "unnamedWire#72", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y1" + }, + "pin2": { + "compName": "Merger#3", + "pinName": "I3" + }, + "name": "unnamedWire#73", + "path": [] + }, + { + "pin1": { + "compName": "Merger#3", + "pinName": "I2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y2" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y3" + }, + "pin2": { + "compName": "Merger#3", + "pinName": "I1" + }, + "name": "unnamedWire#75", + "path": [] + }, + { + "pin1": { + "compName": "Merger#3", + "pinName": "I0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y4" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y1" + }, + "pin2": { + "compName": "Merger#4", + "pinName": "I3" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "Merger#4", + "pinName": "I2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y2" + }, + "name": "unnamedWire#78", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y3" + }, + "pin2": { + "compName": "Merger#4", + "pinName": "I1" + }, + "name": "unnamedWire#79", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "SIO0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "RAMn" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Merger#4", + "pinName": "I0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y4" + }, + "name": "unnamedWire#80", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B3" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O0" + }, + "name": "unnamedWire#81", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#4", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B2" + }, + "name": "unnamedWire#82", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B1" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O2" + }, + "name": "unnamedWire#83", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#4", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B0" + }, + "name": "unnamedWire#84", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A3" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O0" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A2" + }, + "name": "unnamedWire#86", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A1" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#87", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A0" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O3" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#5", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "A0" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "SIOn" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "RAMn+3" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "A1" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O2" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#5", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "A2" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "A3" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O0" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "B0" + }, + "pin2": { + "compName": "Splitter#6", + "pinName": "O3" + }, + "name": "unnamedWire#93", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#6", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "B1" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "B2" + }, + "pin2": { + "compName": "Splitter#6", + "pinName": "O1" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#6", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "B3" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#7", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B3" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B2" + }, + "pin2": { + "compName": "Splitter#7", + "pinName": "O1" + }, + "name": "unnamedWire#98", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#7", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B1" + }, + "name": "unnamedWire#99", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "_rsLatch", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIAm2900.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIAm2900.json deleted file mode 100644 index ede37c77..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIAm2900.json +++ /dev/null @@ -1,2222 +0,0 @@ -{ - "width": 344.0, - "height": 242.0, - "interfacePins": [], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUIAm2901", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 420.0, - "y": 240.0 - } - }, - { - "id": "GUIAm2901", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 485.0, - "y": 240.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#10", - "pos": { - "x": 320.0, - "y": 15.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#11", - "pos": { - "x": 320.0, - "y": 120.0 - } - }, - { - "id": "GUIdff12_we", - "name": "DeserializedSubmodelComponent#12", - "pos": { - "x": 290.0, - "y": 485.0 - } - }, - { - "id": "GUImux1_12", - "name": "DeserializedSubmodelComponent#13", - "pos": { - "x": 170.0, - "y": 495.0 - } - }, - { - "id": "GUIAm2901", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 550.0, - "y": 240.0 - } - }, - { - "id": "GUIAm2901", - "name": "DeserializedSubmodelComponent#3", - "pos": { - "x": 615.0, - "y": 240.0 - } - }, - { - "id": "GUIAm2904", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 240.0, - "y": 241.0 - } - }, - { - "id": "GUIAm2910", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 100.0, - "y": 351.0 - } - }, - { - "id": "GUIand", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 665.0, - "y": 501.0 - } - }, - { - "id": "GUIand", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 550.0, - "y": 541.0 - } - }, - { - "id": "GUIand", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 730.0, - "y": 526.0 - } - }, - { - "id": "GUIdff16_invwe", - "name": "DeserializedSubmodelComponent#9", - "pos": { - "x": 135.0, - "y": 106.0 - } - }, - { - "id": "GUIClock", - "name": "GUIClock#0", - "pos": { - "x": 155.0, - "y": 246.0 - }, - "params": { - "delta": 1000, - "orientation": "DOWN" - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#0", - "pos": { - "x": 205.0, - "y": 211.0 - }, - "params": { - "bits": [ - "ZERO" - ] - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#1", - "pos": { - "x": 370.0, - "y": 301.0 - }, - "params": { - "bits": [ - "ZERO" - ] - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#11", - "pos": { - "x": 210.0, - "y": 281.0 - }, - "params": { - "bits": [ - "ZERO" - ] - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#3", - "pos": { - "x": 70.0, - "y": 346.0 - }, - "params": { - "bits": [ - "ONE" - ] - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#5", - "pos": { - "x": 175.0, - "y": 396.0 - }, - "params": { - "bits": [ - "ONE" - ] - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#7", - "pos": { - "x": 140.0, - "y": 431.0 - }, - "params": { - "bits": [ - "ZERO" - ] - } - }, - { - "id": "GUIFixedOutput", - "name": "GUIFixedOutput#9", - "pos": { - "x": 210.0, - "y": 316.0 - }, - "params": { - "bits": [ - "ZERO" - ] - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 235.0, - "y": 56.0 - }, - "params": 8 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#1", - "pos": { - "x": 235.0, - "y": 136.0 - }, - "params": 4 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#2", - "pos": { - "x": 235.0, - "y": 176.0 - }, - "params": 4 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#3", - "pos": { - "x": 360.0, - "y": 20.0 - }, - "params": 4 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#4", - "pos": { - "x": 360.0, - "y": 125.0 - }, - "params": 4 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 255.0, - "y": 495.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 270.0, - "y": 550.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 215.0, - "y": 56.0 - }, - "params": 16 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 305.0, - "y": 30.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#10", - "pos": { - "x": 600.0, - "y": 395.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#2", - "pos": { - "x": 305.0, - "y": 135.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#3", - "pos": { - "x": 405.0, - "y": 395.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#4", - "pos": { - "x": 405.0, - "y": 435.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#5", - "pos": { - "x": 470.0, - "y": 395.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#6", - "pos": { - "x": 470.0, - "y": 435.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#7", - "pos": { - "x": 535.0, - "y": 435.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#8", - "pos": { - "x": 535.0, - "y": 395.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#9", - "pos": { - "x": 600.0, - "y": 435.0 - }, - "params": 4 - }, - { - "id": "GUIinc12", - "name": "GUIinc12#0", - "pos": { - "x": 245.0, - "y": 525.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 200.0, - "y": 236.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 400.0, - "y": 231.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 415.0, - "y": 220.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 410.0, - "y": 225.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 266.0, - "y": 555.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 245.0, - "y": 490.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 355.0, - "y": 505.0 - }, - "params": 12 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 470.0, - "y": 231.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 535.0, - "y": 231.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 230.0, - "y": 176.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 235.0, - "y": 281.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 525.0, - "y": 225.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 530.0, - "y": 220.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 465.0, - "y": 220.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 460.0, - "y": 225.0 - }, - "params": 4 - } - ], - "wires": [ - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "CT" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "_CC" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Qn+3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Qn" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "QIOn" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Qn+3" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "B0" - }, - "pin2": { - "compName": "GUISplitter#7", - "pinName": "O3" - }, - "name": "unnamedWire#100", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#8", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "A3" - }, - "name": "unnamedWire#101", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "A2" - }, - "pin2": { - "compName": "GUISplitter#8", - "pinName": "O1" - }, - "name": "unnamedWire#102", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#8", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "A1" - }, - "name": "unnamedWire#103", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "A0" - }, - "pin2": { - "compName": "GUISplitter#8", - "pinName": "O3" - }, - "name": "unnamedWire#104", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#10", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A0" - }, - "name": "unnamedWire#105", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A1" - }, - "pin2": { - "compName": "GUISplitter#10", - "pinName": "O2" - }, - "name": "unnamedWire#106", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#10", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A2" - }, - "name": "unnamedWire#107", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A3" - }, - "pin2": { - "compName": "GUISplitter#10", - "pinName": "O0" - }, - "name": "unnamedWire#108", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#9", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "B0" - }, - "name": "unnamedWire#109", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "IN" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "F3" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "B1" - }, - "pin2": { - "compName": "GUISplitter#9", - "pinName": "O2" - }, - "name": "unnamedWire#110", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#9", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "B2" - }, - "name": "unnamedWire#111", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "B3" - }, - "pin2": { - "compName": "GUISplitter#9", - "pinName": "O0" - }, - "name": "unnamedWire#112", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#3", - "pinName": "O" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#113", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIMerger#4", - "pinName": "O" - }, - "name": "unnamedWire#114", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#115", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#116", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#117", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#118", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#4", - "pinName": "I" - }, - "name": "unnamedWire#119", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "F\u003d0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "B" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#120", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#6", - "pinName": "I" - }, - "name": "unnamedWire#121", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#5", - "pinName": "I" - }, - "name": "unnamedWire#122", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#7", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#123", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#8", - "pinName": "I" - }, - "name": "unnamedWire#124", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#9", - "pinName": "I" - }, - "name": "unnamedWire#125", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#10", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#126", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "WE" - }, - "name": "unnamedWire#127", - "path": [] - }, - { - "pin1": { - "compName": "GUIinc12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "D" - }, - "name": "unnamedWire#128", - "path": [] - }, - { - "pin1": { - "compName": "GUIinc12#0", - "pinName": "A" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "Y" - }, - "name": "unnamedWire#129", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "F\u003d0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "A" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "GUIinc12#0", - "pinName": "CI" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "name": "unnamedWire#130", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#131", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#132", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#133", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I1" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#134", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "S" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#135", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#136", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#137", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#138", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "B" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "A" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "B" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "F\u003d0" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "F\u003d0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "A" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "IZ" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "OVR" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "IOVR" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "RAMn+3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "RAMn" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Cn+4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "IC" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Cn+4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Cn" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Cn+4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Cn" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Cn+4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Cn" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIClock#0", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "C" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Qn+3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Qn" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "C" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Cn" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "C0" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "GUIFixedOutput#1", - "pinName": "out" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "_OECT" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "GUIFixedOutput#3", - "pinName": "out" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "_RLD" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "CI" - }, - "pin2": { - "compName": "GUIFixedOutput#5", - "pinName": "out" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "_OE" - }, - "pin2": { - "compName": "GUIFixedOutput#7", - "pinName": "out" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "GUIFixedOutput#9", - "pinName": "out" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "_SE" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "RAMn" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "RAMn+3" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "GUIFixedOutput#11", - "pinName": "out" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "_EZ" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "_EOVR" - }, - "name": "unnamedWire#42", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "_EC" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "_EN" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "Q" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#45", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O15" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I7" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I6" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O14" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O13" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "name": "unnamedWire#48", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I4" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O12" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "RAMn" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "RAMn+3" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O11" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O9" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "GUIFixedOutput#0", - "pinName": "out" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#54", - "path": [ - { - "x": 230.0, - "y": 221.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "I3" - }, - "name": "unnamedWire#55", - "path": [ - { - "x": 230.0, - "y": 136.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIMerger#2", - "pinName": "I3" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#2", - "pinName": "I2" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "pin2": { - "compName": "GUIMerger#2", - "pinName": "I1" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#2", - "pinName": "I0" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "name": "unnamedWire#59", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Qn+3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Qn" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#1", - "pinName": "I0" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O5" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "I1" - }, - "name": "unnamedWire#61", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#1", - "pinName": "I2" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O6" - }, - "name": "unnamedWire#62", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I0_1" - }, - "name": "unnamedWire#63", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I0_2" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "name": "unnamedWire#64", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I0_3" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I0_4" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I0_1" - }, - "name": "unnamedWire#67", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I0_2" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "O2" - }, - "name": "unnamedWire#68", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I0_3" - }, - "name": "unnamedWire#69", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Qn" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "QIO0" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I0_4" - }, - "name": "unnamedWire#70", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#2", - "pinName": "O" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "I" - }, - "name": "unnamedWire#71", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#1", - "pinName": "O" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "name": "unnamedWire#72", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIMerger#3", - "pinName": "I3" - }, - "name": "unnamedWire#73", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#3", - "pinName": "I2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y2" - }, - "name": "unnamedWire#74", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIMerger#3", - "pinName": "I1" - }, - "name": "unnamedWire#75", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#3", - "pinName": "I0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y4" - }, - "name": "unnamedWire#76", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIMerger#4", - "pinName": "I3" - }, - "name": "unnamedWire#77", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#4", - "pinName": "I2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y2" - }, - "name": "unnamedWire#78", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIMerger#4", - "pinName": "I1" - }, - "name": "unnamedWire#79", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "SIO0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "RAMn" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#4", - "pinName": "I0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y4" - }, - "name": "unnamedWire#80", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "B3" - }, - "pin2": { - "compName": "GUISplitter#4", - "pinName": "O0" - }, - "name": "unnamedWire#81", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#4", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "B2" - }, - "name": "unnamedWire#82", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "B1" - }, - "pin2": { - "compName": "GUISplitter#4", - "pinName": "O2" - }, - "name": "unnamedWire#83", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#4", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "B0" - }, - "name": "unnamedWire#84", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "A3" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "O0" - }, - "name": "unnamedWire#85", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "A2" - }, - "name": "unnamedWire#86", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "A1" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "O2" - }, - "name": "unnamedWire#87", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "A0" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "O3" - }, - "name": "unnamedWire#88", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#5", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "A0" - }, - "name": "unnamedWire#89", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "SIOn" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "RAMn+3" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "A1" - }, - "pin2": { - "compName": "GUISplitter#5", - "pinName": "O2" - }, - "name": "unnamedWire#90", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#5", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "A2" - }, - "name": "unnamedWire#91", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "A3" - }, - "pin2": { - "compName": "GUISplitter#5", - "pinName": "O0" - }, - "name": "unnamedWire#92", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "B0" - }, - "pin2": { - "compName": "GUISplitter#6", - "pinName": "O3" - }, - "name": "unnamedWire#93", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#6", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "B1" - }, - "name": "unnamedWire#94", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "B2" - }, - "pin2": { - "compName": "GUISplitter#6", - "pinName": "O1" - }, - "name": "unnamedWire#95", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#6", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "B3" - }, - "name": "unnamedWire#96", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#7", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "B3" - }, - "name": "unnamedWire#97", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "B2" - }, - "pin2": { - "compName": "GUISplitter#7", - "pinName": "O1" - }, - "name": "unnamedWire#98", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#7", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "B1" - }, - "name": "unnamedWire#99", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "_rsLatch", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUI_rsLatch.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUI_rsLatch.json deleted file mode 100644 index 89eab0a4..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUI_rsLatch.json +++ /dev/null @@ -1,253 +0,0 @@ -{ - "width": 35.0, - "height": 20.0, - "interfacePins": [ - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "_Q", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "_R", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "_S", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 7.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 40.0, - "y": 12.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 34.0, - "y": 16.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 64.0, - "y": 36.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_Q" - }, - "name": "_q", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "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": { - "compName": "_submodelinterface", - "pinName": "_S" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_R" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 35.0, - "y": 37.5 - }, - { - "x": 35.0, - "y": 27.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 65.0, - "y": 22.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 65.0, - "y": 42.5 - }, - { - "x": 5.0, - "y": 42.5 - }, - { - "x": 5.0, - "y": 22.5 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "_rsLatch", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q": { - "id": "wireForcing", - "params": { - "wiresToForce": [ - "q" - ], - "wiresToForceInverted": [ - "_q" - ] - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIand.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIand.json deleted file mode 100644 index 5e343e09..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIand.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "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" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 20.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 50.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 44.0, - "y": 24.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#0" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#1" - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 45.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 45.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#5" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIand", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIand41.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIand41.json deleted file mode 100644 index c7ae05e5..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIand41.json +++ /dev/null @@ -1,355 +0,0 @@ -{ - "width": 35.0, - "height": 50.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "B", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUIand", - "name": "GUIand#0", - "pos": { - "x": 30.0, - "y": 7.5 - } - }, - { - "id": "GUIand", - "name": "GUIand#1", - "pos": { - "x": 30.0, - "y": 32.5 - } - }, - { - "id": "GUIand", - "name": "GUIand#2", - "pos": { - "x": 30.0, - "y": 57.5 - } - }, - { - "id": "GUIand", - "name": "GUIand#3", - "pos": { - "x": 30.0, - "y": 82.5 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 24.0, - "y": 46.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 24.0, - "y": 71.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 24.0, - "y": 96.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "A" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "GUIand#1", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "B" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 25.0, - "y": 22.5 - } - ] - }, - { - "pin1": { - "compName": "GUIand#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "GUIand#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUIand#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "GUIand#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "GUIand#2", - "pinName": "A" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "GUIand#3", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 25.0, - "y": 112.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#3", - "pinName": "B" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#2", - "pinName": "B" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#1", - "pinName": "B" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIand41", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIandor414.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIandor414.json deleted file mode 100644 index 5f6d292b..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIandor414.json +++ /dev/null @@ -1,520 +0,0 @@ -{ - "width": 35.0, - "height": 90.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "B", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "C2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "C3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "C4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUIand41", - "name": "GUIand41#0", - "pos": { - "x": 15.0, - "y": 137.5 - } - }, - { - "id": "GUIor_4", - "name": "GUIor_4#0", - "pos": { - "x": 35.0, - "y": 37.5 - } - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A1" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 10.0, - "y": 112.5 - }, - { - "x": 10.0, - "y": 142.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A2" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 5.0, - "y": 137.5 - }, - { - "x": 5.0, - "y": 152.5 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "B2" - }, - "name": "unnamedWire#10", - "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": { - "compName": "GUIand41#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "B3" - }, - "name": "unnamedWire#11", - "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": { - "compName": "GUIand41#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "B4" - }, - "name": "unnamedWire#12", - "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": { - "compName": "GUIor_4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 75.0, - "y": 42.5 - }, - { - "x": 75.0, - "y": 12.5 - } - ] - }, - { - "pin1": { - "compName": "GUIor_4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 80.0, - "y": 52.5 - }, - { - "x": 80.0, - "y": 37.5 - } - ] - }, - { - "pin1": { - "compName": "GUIor_4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "GUIor_4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 80.0, - "y": 72.5 - }, - { - "x": 80.0, - "y": 87.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A3" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A4" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 5.0, - "y": 187.5 - }, - { - "x": 5.0, - "y": 172.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 10.0, - "y": 212.5 - }, - { - "x": 10.0, - "y": 182.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C1" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "A1" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 10.0, - "y": 12.5 - }, - { - "x": 10.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C2" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "A2" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 5.0, - "y": 37.5 - }, - { - "x": 5.0, - "y": 52.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C3" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "A3" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C4" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "A4" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 5.0, - "y": 87.5 - }, - { - "x": 5.0, - "y": 72.5 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIor_4#0", - "pinName": "B1" - }, - "name": "unnamedWire#9", - "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 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIandor414", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdemux2.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdemux2.json deleted file mode 100644 index 7e28bfd7..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdemux2.json +++ /dev/null @@ -1,544 +0,0 @@ -{ - "width": 35.0, - "height": 40.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "S0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "S1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y00", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y01", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y10", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y11", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 10.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUIand", - "name": "GUIand#0", - "pos": { - "x": 40.0, - "y": 2.5 - } - }, - { - "id": "GUIand", - "name": "GUIand#1", - "pos": { - "x": 40.0, - "y": 27.5 - } - }, - { - "id": "GUIand", - "name": "GUIand#2", - "pos": { - "x": 40.0, - "y": 52.5 - } - }, - { - "id": "GUIand", - "name": "GUIand#3", - "pos": { - "x": 40.0, - "y": 77.5 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 6.5, - "y": 11.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 6.5, - "y": 16.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 36.5, - "y": 61.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 4.0, - "y": 36.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 4.0, - "y": 41.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 31.5, - "y": 66.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 31.5, - "y": 11.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 34.0, - "y": 36.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "A" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 32.5, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "B" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 35.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#1", - "pinName": "A" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 37.5, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#1", - "pinName": "B" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 35.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#2", - "pinName": "A" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 32.5, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#2", - "pinName": "B" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#3", - "pinName": "A" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 37.5, - "y": 82.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#3", - "pinName": "B" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 32.5, - "y": 92.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 7.5, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "GUIand#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y00" - }, - "name": "unnamedWire#20" - }, - { - "pin1": { - "compName": "GUIand#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y01" - }, - "name": "unnamedWire#21" - }, - { - "pin1": { - "compName": "GUIand#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y10" - }, - "name": "unnamedWire#22" - }, - { - "pin1": { - "compName": "GUIand#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y11" - }, - "name": "unnamedWire#23" - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 5.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 7.5, - "y": 62.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 5.0, - "y": 67.5 - }, - { - "x": 32.5, - "y": 67.5 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIdemux2", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff.json deleted file mode 100644 index 30c17e6c..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff.json +++ /dev/null @@ -1,362 +0,0 @@ -{ - "width": 35.0, - "height": 20.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "D", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "_Q", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 120.0, - "y": 60.0 - }, - "params": 1 - }, - { - "id": "GUI_rsLatch", - "name": "GUI_rsLatch#0", - "pos": { - "x": 40.0, - "y": 10.0 - } - }, - { - "id": "GUI_rsLatch", - "name": "GUI_rsLatch#1", - "pos": { - "x": 120.0, - "y": 30.0 - } - }, - { - "id": "GUInand3", - "name": "GUInand3#0", - "pos": { - "x": 40.0, - "y": 40.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 9.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 19.0, - "y": 64.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 99.0, - "y": 34.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 99.0, - "y": 44.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUI_rsLatch#0", - "pinName": "_R" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUInand3#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUI_rsLatch#1", - "pinName": "_R" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 100.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "GUI_rsLatch#1", - "pinName": "Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "unnamedWire#13" - }, - { - "pin1": { - "compName": "GUI_rsLatch#1", - "pinName": "_Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_Q" - }, - "name": "unnamedWire#14" - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUInand3#0", - "pinName": "B" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 10.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 145.0, - "y": 70.0 - }, - { - "x": 145.0, - "y": 85.0 - }, - { - "x": 20.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUI_rsLatch#0", - "pinName": "_S" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 20.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUInand3#0", - "pinName": "C" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUI_rsLatch#0", - "pinName": "_Q" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 100.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUInand3#0", - "pinName": "A" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 30.0, - "y": 35.0 - }, - { - "x": 30.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUI_rsLatch#1", - "pinName": "_S" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIdff", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q": { - "id": "delegating", - "params": { - "delegateTarget": "GUI_rsLatch#1", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff12_we.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff12_we.json deleted file mode 100644 index 5d61037d..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff12_we.json +++ /dev/null @@ -1,1154 +0,0 @@ -{ - "width": 55.0, - "height": 40.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "D", - "logicWidth": 12, - "usage": "INPUT" - }, - { - "location": { - "x": 55.0, - "y": 20.0 - }, - "name": "Q", - "logicWidth": 12, - "usage": "TRISTATE" - }, - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "WE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#10", - "pos": { - "x": 175.0, - "y": 170.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#11", - "pos": { - "x": 130.0, - "y": 160.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#12", - "pos": { - "x": 130.0, - "y": 130.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#13", - "pos": { - "x": 175.0, - "y": 80.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#14", - "pos": { - "x": 175.0, - "y": 110.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#15", - "pos": { - "x": 130.0, - "y": 100.0 - } - }, - { - "id": "GUImux1_12", - "name": "DeserializedSubmodelComponent#17", - "pos": { - "x": 15.0, - "y": 90.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 175.0, - "y": 20.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 175.0, - "y": 50.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 130.0, - "y": 10.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 130.0, - "y": 40.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 130.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#9", - "pos": { - "x": 175.0, - "y": 140.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 250.0, - "y": 45.0 - }, - "params": 12 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 70.0, - "y": 65.0 - }, - "params": 12 - }, - { - "id": "TextComponent", - "name": "TextComponent#0", - "pos": { - "x": -35.0, - "y": -5.0 - }, - "params": "a" - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 169.0, - "y": 54.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 169.0, - "y": 144.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 169.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 169.0, - "y": 84.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 169.0, - "y": 114.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 124.0, - "y": 14.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 124.0, - "y": 44.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 124.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 124.0, - "y": 134.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 124.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 264.0, - "y": 99.0 - }, - "params": 12 - } - ], - "wires": [ - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 125.0, - "y": 5.0 - }, - { - "x": 170.0, - "y": 5.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 55.0, - "y": 15.0 - }, - { - "x": 55.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O5" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 115.0, - "y": 115.0 - }, - { - "x": 115.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "D" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 120.0, - "y": 135.0 - }, - { - "x": 120.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "D" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 90.0, - "y": 175.0 - }, - { - "x": 90.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "D" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 85.0, - "y": 175.0 - }, - { - "x": 85.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "WE" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "S" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 10.0, - "y": 100.0 - }, - { - "x": 10.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "I1" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 5.0, - "y": 175.0 - }, - { - "x": 5.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "Y" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "C" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "C" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "C" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "C" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "I0" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 10.0, - "y": 110.0 - }, - { - "x": 10.0, - "y": 195.0 - }, - { - "x": 265.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "C" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 125.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 170.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "C" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "C" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "C" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "D" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 85.0, - "y": 65.0 - }, - { - "x": 85.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "C" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 90.0, - "y": 35.0 - }, - { - "x": 90.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Q" - }, - "name": "unnamedWire#53", - "path": [ - { - "x": 245.0, - "y": 45.0 - }, - { - "x": 245.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I10" - }, - "name": "unnamedWire#54", - "path": [ - { - "x": 235.0, - "y": 25.0 - }, - { - "x": 235.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Q" - }, - "name": "unnamedWire#55", - "path": [ - { - "x": 230.0, - "y": 65.0 - }, - { - "x": 230.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I8" - }, - "name": "unnamedWire#56", - "path": [ - { - "x": 225.0, - "y": 55.0 - }, - { - "x": 225.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Q" - }, - "name": "unnamedWire#57", - "path": [ - { - "x": 220.0, - "y": 85.0 - }, - { - "x": 220.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I6" - }, - "name": "unnamedWire#58", - "path": [ - { - "x": 215.0, - "y": 85.0 - }, - { - "x": 215.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "Q" - }, - "name": "unnamedWire#59", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O9" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 95.0, - "y": 55.0 - }, - { - "x": 95.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "Q" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "Q" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 215.0, - "y": 125.0 - }, - { - "x": 215.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 220.0, - "y": 145.0 - }, - { - "x": 220.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Q" - }, - "name": "unnamedWire#63", - "path": [ - { - "x": 225.0, - "y": 145.0 - }, - { - "x": 225.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#64", - "path": [ - { - "x": 230.0, - "y": 175.0 - }, - { - "x": 230.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "D" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 100.0, - "y": 95.0 - }, - { - "x": 100.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O7" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 105.0, - "y": 85.0 - }, - { - "x": 105.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O6" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "D" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 110.0, - "y": 115.0 - }, - { - "x": 110.0, - "y": 95.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "D flip flop\n12 bit", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 30.0, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "default", - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff16_invwe.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff16_invwe.json deleted file mode 100644 index 55424236..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff16_invwe.json +++ /dev/null @@ -1,1468 +0,0 @@ -{ - "width": 60.0, - "height": 60.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "D", - "logicWidth": 16, - "usage": "INPUT" - }, - { - "location": { - "x": 60.0, - "y": 25.0 - }, - "name": "Q", - "logicWidth": 16, - "usage": "TRISTATE" - }, - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "_WE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 140.0, - "y": 15.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 190.0, - "y": 25.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#10", - "pos": { - "x": 190.0, - "y": 235.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#11", - "pos": { - "x": 140.0, - "y": 225.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#12", - "pos": { - "x": 140.0, - "y": 195.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#13", - "pos": { - "x": 190.0, - "y": 145.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#14", - "pos": { - "x": 190.0, - "y": 175.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#15", - "pos": { - "x": 140.0, - "y": 165.0 - } - }, - { - "id": "GUImux1_16", - "name": "DeserializedSubmodelComponent#16", - "pos": { - "x": 15.0, - "y": 95.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 190.0, - "y": 55.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#3", - "pos": { - "x": 140.0, - "y": 45.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 190.0, - "y": 85.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 190.0, - "y": 115.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 140.0, - "y": 75.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 140.0, - "y": 105.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 140.0, - "y": 135.0 - } - }, - { - "id": "GUIdff", - "name": "DeserializedSubmodelComponent#9", - "pos": { - "x": 190.0, - "y": 205.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 275.0, - "y": 50.0 - }, - "params": 16 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 75.0, - "y": 70.0 - }, - "params": 16 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 134.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 134.0, - "y": 49.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 184.0, - "y": 29.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 184.0, - "y": 119.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 184.0, - "y": 209.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 184.0, - "y": 89.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 184.0, - "y": 149.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 184.0, - "y": 179.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 134.0, - "y": 79.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 134.0, - "y": 109.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 134.0, - "y": 169.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 134.0, - "y": 199.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 134.0, - "y": 139.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 289.0, - "y": 124.0 - }, - "params": 16 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 184.0, - "y": 59.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O15" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "D" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 90.0, - "y": 70.0 - }, - { - "x": 90.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O14" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 95.0, - "y": 40.0 - }, - { - "x": 95.0, - "y": 80.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O5" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 120.0, - "y": 180.0 - }, - { - "x": 120.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "D" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 115.0, - "y": 180.0 - }, - { - "x": 115.0, - "y": 190.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 110.0, - "y": 210.0 - }, - { - "x": 110.0, - "y": 190.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "D" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 105.0, - "y": 200.0 - }, - { - "x": 105.0, - "y": 220.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 100.0, - "y": 240.0 - }, - { - "x": 100.0, - "y": 210.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "D" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 95.0, - "y": 220.0 - }, - { - "x": 95.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "Y" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "C" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "C" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O13" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "D" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 100.0, - "y": 90.0 - }, - { - "x": 100.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "C" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "C" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "C" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "C" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O12" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 105.0, - "y": 70.0 - }, - { - "x": 105.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "C" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 135.0, - "y": 230.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 185.0, - "y": 240.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "C" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "C" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "C" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "D" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 110.0, - "y": 110.0 - }, - { - "x": 110.0, - "y": 90.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "C" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "C" - }, - "name": "unnamedWire#42", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "C" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 135.0, - "y": 10.0 - }, - { - "x": 185.0, - "y": 10.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_WE" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "S" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 35.0, - "y": 20.0 - }, - { - "x": 35.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I15" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Q" - }, - "name": "unnamedWire#49", - "path": [ - { - "x": 265.0, - "y": 50.0 - }, - { - "x": 265.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 115.0, - "y": 100.0 - }, - { - "x": 115.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I14" - }, - "name": "unnamedWire#50", - "path": [ - { - "x": 260.0, - "y": 30.0 - }, - { - "x": 260.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I13" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Q" - }, - "name": "unnamedWire#51", - "path": [ - { - "x": 255.0, - "y": 70.0 - }, - { - "x": 255.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I12" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Q" - }, - "name": "unnamedWire#52", - "path": [ - { - "x": 250.0, - "y": 80.0 - }, - { - "x": 250.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Q" - }, - "name": "unnamedWire#53", - "path": [ - { - "x": 245.0, - "y": 90.0 - }, - { - "x": 245.0, - "y": 80.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I10" - }, - "name": "unnamedWire#54", - "path": [ - { - "x": 240.0, - "y": 90.0 - }, - { - "x": 240.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Q" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I8" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Q" - }, - "name": "unnamedWire#57", - "path": [ - { - "x": 235.0, - "y": 130.0 - }, - { - "x": 235.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I6" - }, - "name": "unnamedWire#58", - "path": [ - { - "x": 240.0, - "y": 150.0 - }, - { - "x": 240.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "Q" - }, - "name": "unnamedWire#59", - "path": [ - { - "x": 245.0, - "y": 150.0 - }, - { - "x": 245.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O9" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 120.0, - "y": 120.0 - }, - { - "x": 120.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "Q" - }, - "name": "unnamedWire#60", - "path": [ - { - "x": 250.0, - "y": 160.0 - }, - { - "x": 250.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "Q" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 255.0, - "y": 170.0 - }, - { - "x": 255.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 260.0, - "y": 210.0 - }, - { - "x": 260.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Q" - }, - "name": "unnamedWire#63", - "path": [ - { - "x": 265.0, - "y": 190.0 - }, - { - "x": 265.0, - "y": 230.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Q" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#64", - "path": [ - { - "x": 270.0, - "y": 240.0 - }, - { - "x": 270.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "I1" - }, - "name": "unnamedWire#67", - "path": [ - { - "x": 290.0, - "y": 275.0 - }, - { - "x": 10.0, - "y": 275.0 - }, - { - "x": 10.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "I0" - }, - "name": "unnamedWire#68", - "path": [ - { - "x": 10.0, - "y": 175.0 - }, - { - "x": 10.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "D" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 125.0, - "y": 140.0 - }, - { - "x": 125.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "D" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O7" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O6" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "D" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "D flip flop\n16 bit", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 30, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "default", - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff4.json deleted file mode 100644 index a7178188..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff4.json +++ /dev/null @@ -1,727 +0,0 @@ -{ - "width": 35.0, - "height": 60.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Q2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Q3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Q4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "WE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 55.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#0", - "pos": { - "x": 115.0, - "y": 20.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#1", - "pos": { - "x": 115.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#2", - "pos": { - "x": 115.0, - "y": 120.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#3", - "pos": { - "x": 115.0, - "y": 170.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 104.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 104.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 104.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 169.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 164.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 159.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 154.0, - "y": 174.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIdff#0", - "pinName": "D" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 100.0, - "y": 75.0 - }, - { - "x": 100.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_1" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_2" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 5.0, - "y": 175.0 - }, - { - "x": 5.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 10.0, - "y": 225.0 - }, - { - "x": 10.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff#0", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q1" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "Q" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_4" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 15.0, - "y": 275.0 - }, - { - "x": 15.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff#2", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q3" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "D" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q4" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "Q" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIdff#2", - "pinName": "D" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 100.0, - "y": 95.0 - }, - { - "x": 100.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "D" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 95.0, - "y": 105.0 - }, - { - "x": 95.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_1" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 170.0, - "y": 195.0 - }, - { - "x": 50.0, - "y": 195.0 - }, - { - "x": 50.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_2" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 165.0, - "y": 200.0 - }, - { - "x": 45.0, - "y": 200.0 - }, - { - "x": 45.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_3" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 160.0, - "y": 205.0 - }, - { - "x": 40.0, - "y": 205.0 - }, - { - "x": 40.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_4" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 155.0, - "y": 210.0 - }, - { - "x": 35.0, - "y": 210.0 - }, - { - "x": 35.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#0", - "pinName": "C" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "C" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#2", - "pinName": "C" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "C" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 105.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "WE" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "D flip flop\n4 bit", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q1": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#0", - "subStateID": "q" - } - }, - "q2": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#1", - "subStateID": "q" - } - }, - "q": { - "id": "bitVectorSplitting", - "params": { - "vectorPartTargets": [ - "q1", - "q2", - "q3", - "q4" - ], - "vectorPartLengthes": [ - 1, - 1, - 1, - 1 - ] - } - }, - "q3": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#2", - "subStateID": "q" - } - }, - "q4": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#3", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff4_invwe.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff4_invwe.json deleted file mode 100644 index c34cb35f..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdff4_invwe.json +++ /dev/null @@ -1,736 +0,0 @@ -{ - "width": 35.0, - "height": 60.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Q2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Q3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Q4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "_WE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 55.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#0", - "pos": { - "x": 115.0, - "y": 20.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#1", - "pos": { - "x": 115.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#2", - "pos": { - "x": 115.0, - "y": 120.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#3", - "pos": { - "x": 115.0, - "y": 170.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 104.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 104.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 104.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 169.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 164.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 159.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 154.0, - "y": 174.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIdff#0", - "pinName": "D" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 100.0, - "y": 75.0 - }, - { - "x": 100.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_1" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 10.0, - "y": 125.0 - }, - { - "x": 10.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_2" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 15.0, - "y": 175.0 - }, - { - "x": 15.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_3" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 20.0, - "y": 225.0 - }, - { - "x": 20.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff#0", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q1" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "Q" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_4" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 25.0, - "y": 275.0 - }, - { - "x": 25.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff#2", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q3" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "D" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q4" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "Q" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIdff#2", - "pinName": "D" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 100.0, - "y": 95.0 - }, - { - "x": 100.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "D" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 95.0, - "y": 105.0 - }, - { - "x": 95.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_1" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 170.0, - "y": 205.0 - }, - { - "x": 50.0, - "y": 205.0 - }, - { - "x": 50.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_2" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 165.0, - "y": 210.0 - }, - { - "x": 45.0, - "y": 210.0 - }, - { - "x": 45.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 160.0, - "y": 215.0 - }, - { - "x": 40.0, - "y": 215.0 - }, - { - "x": 40.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_4" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 155.0, - "y": 220.0 - }, - { - "x": 35.0, - "y": 220.0 - }, - { - "x": 35.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#0", - "pinName": "C" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "C" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#2", - "pinName": "C" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "C" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 105.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_WE" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "D flip flop\n4 bit", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q1": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#0", - "subStateID": "q" - } - }, - "q2": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#1", - "subStateID": "q" - } - }, - "q": { - "id": "bitVectorSplitting", - "params": { - "vectorPartTargets": [ - "q1", - "q2", - "q3", - "q4" - ], - "vectorPartLengthes": [ - 1, - 1, - 1, - 1 - ] - } - }, - "q3": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#2", - "subStateID": "q" - } - }, - "q4": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff#3", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdlatch.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdlatch.json deleted file mode 100644 index b09c439c..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdlatch.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "width": 35.0, - "height": 20.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "D", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "E", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "_Q", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 15.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUI_rsLatch", - "name": "GUI_rsLatch#0", - "pos": { - "x": 45.0, - "y": 7.5 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 4.0, - "y": 36.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 34.0, - "y": 11.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#0" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "E" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 5.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 5.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 35.0, - "y": 25.0 - }, - { - "x": 10.0, - "y": 25.0 - }, - { - "x": 10.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUI_rsLatch#0", - "pinName": "_S" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUI_rsLatch#0", - "pinName": "_R" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 40.0, - "y": 37.5 - }, - { - "x": 40.0, - "y": 22.5 - } - ] - }, - { - "pin1": { - "compName": "GUI_rsLatch#0", - "pinName": "Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUI_rsLatch#0", - "pinName": "_Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_Q" - }, - "name": "unnamedWire#9" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIdlatch", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q": { - "id": "delegating", - "params": { - "delegateTarget": "GUI_rsLatch#0", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdlatch4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdlatch4.json deleted file mode 100644 index 3bc4df72..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIdlatch4.json +++ /dev/null @@ -1,405 +0,0 @@ -{ - "width": 35.0, - "height": 50.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Q2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Q3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Q4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUIdlatch", - "name": "GUIdlatch#0", - "pos": { - "x": 30.0, - "y": 7.5 - } - }, - { - "id": "GUIdlatch", - "name": "GUIdlatch#1", - "pos": { - "x": 30.0, - "y": 32.5 - } - }, - { - "id": "GUIdlatch", - "name": "GUIdlatch#2", - "pos": { - "x": 30.0, - "y": 57.5 - } - }, - { - "id": "GUIdlatch", - "name": "GUIdlatch#3", - "pos": { - "x": 30.0, - "y": 82.5 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 14.0, - "y": 46.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 14.0, - "y": 71.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 14.0, - "y": 96.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 15.0, - "y": 112.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch#3", - "pinName": "E" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "GUIdlatch#3", - "pinName": "D" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch#0", - "pinName": "Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q1" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch#1", - "pinName": "Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q2" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch#2", - "pinName": "Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q3" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch#3", - "pinName": "Q" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q4" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch#2", - "pinName": "E" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch#1", - "pinName": "E" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch#0", - "pinName": "E" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 15.0, - "y": 22.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "GUIdlatch#0", - "pinName": "D" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "GUIdlatch#1", - "pinName": "D" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "GUIdlatch#2", - "pinName": "D" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIdlatch4", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q1": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch#0", - "subStateID": "q" - } - }, - "q2": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch#1", - "subStateID": "q" - } - }, - "q": { - "id": "bitVectorSplitting", - "params": { - "vectorPartTargets": [ - "q1", - "q2", - "q3", - "q4" - ], - "vectorPartLengthes": [ - 1, - 1, - 1, - 1 - ] - } - }, - "q3": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch#2", - "subStateID": "q" - } - }, - "q4": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch#3", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIfulladder.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIfulladder.json deleted file mode 100644 index 8b41bd3e..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIfulladder.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "width": 35.0, - "height": 30.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": 0.0, - "y": 25.0 - }, - "name": "C", - "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": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 57.5, - "y": 40.0 - }, - "params": 1 - }, - { - "id": "GUIhalfadder", - "name": "GUIhalfadder#0", - "pos": { - "x": 5.0, - "y": 40.0 - } - }, - { - "id": "GUIhalfadder", - "name": "GUIhalfadder#1", - "pos": { - "x": 45.0, - "y": 7.5 - } - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A" - }, - "pin2": { - "compName": "GUIhalfadder#1", - "pinName": "A" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B" - }, - "pin2": { - "compName": "GUIhalfadder#0", - "pinName": "A" - }, - "name": "unnamedWire#1" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "GUIhalfadder#0", - "pinName": "B" - }, - "name": "unnamedWire#2" - }, - { - "pin1": { - "compName": "GUIhalfadder#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIhalfadder#1", - "pinName": "B" - }, - "name": "unnamedWire#3" - }, - { - "pin1": { - "compName": "GUIhalfadder#0", - "pinName": "_Z" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "GUIhalfadder#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "GUIhalfadder#1", - "pinName": "_Z" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#6", - "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": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Z" - }, - "name": "unnamedWire#7" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIfulladder", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIhalfadder.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIhalfadder.json deleted file mode 100644 index 92720a8e..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIhalfadder.json +++ /dev/null @@ -1,337 +0,0 @@ -{ - "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": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 40.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 40.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#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": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 5.0, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 62.5, - "y": 12.5 - }, - { - "x": 62.5, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 62.5, - "y": 37.5 - }, - { - "x": 62.5, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#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": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 5.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 5.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#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": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 35.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 35.0, - "y": 32.5 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIhalfadder", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1.json deleted file mode 100644 index 279f905d..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "width": 35.0, - "height": 30.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "S0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 7.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 35.0, - "y": 22.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 35.0, - "y": 47.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 60.0, - "y": 30.0 - }, - "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": 21.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#10" - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#4" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 5.0, - "y": 52.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#8" - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#9" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUImux1", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_12.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_12.json deleted file mode 100644 index ed0a82fa..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_12.json +++ /dev/null @@ -1,1836 +0,0 @@ -{ - "width": 50.0, - "height": 80.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "I0", - "logicWidth": 12, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 60.0 - }, - "name": "I1", - "logicWidth": 12, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "S", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 50.0, - "y": 30.0 - }, - "name": "Y", - "logicWidth": 12, - "usage": "OUTPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#10", - "pos": { - "x": 95.0, - "y": 145.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#11", - "pos": { - "x": 95.0, - "y": 205.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#12", - "pos": { - "x": 150.0, - "y": 285.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#13", - "pos": { - "x": 150.0, - "y": 225.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#14", - "pos": { - "x": 95.0, - "y": 265.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#15", - "pos": { - "x": 150.0, - "y": 345.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 150.0, - "y": 45.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 95.0, - "y": 85.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 150.0, - "y": 105.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 95.0, - "y": 25.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 95.0, - "y": 325.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#9", - "pos": { - "x": 150.0, - "y": 165.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 235.0, - "y": 95.0 - }, - "params": 12 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 55.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 5.0, - "y": 45.0 - }, - "params": 12 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 5.0, - "y": 245.0 - }, - "params": 12 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 144.0, - "y": 239.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 139.0, - "y": 229.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 144.0, - "y": 299.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 139.0, - "y": 289.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 89.0, - "y": 4.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 84.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 49.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 49.0, - "y": 14.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 84.0, - "y": 269.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 89.0, - "y": 279.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#20", - "pos": { - "x": 84.0, - "y": 209.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#21", - "pos": { - "x": 89.0, - "y": 219.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#22", - "pos": { - "x": 89.0, - "y": 159.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#23", - "pos": { - "x": 84.0, - "y": 149.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#24", - "pos": { - "x": 84.0, - "y": 89.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#25", - "pos": { - "x": 89.0, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#26", - "pos": { - "x": 84.0, - "y": 29.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#27", - "pos": { - "x": 89.0, - "y": 39.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 139.0, - "y": 49.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 144.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 144.0, - "y": 119.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 139.0, - "y": 109.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 139.0, - "y": 169.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 144.0, - "y": 179.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "S1" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I11" - }, - "name": "unnamedWire#103", - "path": [ - { - "x": 210.0, - "y": 30.0 - }, - { - "x": 210.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I10" - }, - "name": "unnamedWire#104", - "path": [ - { - "x": 205.0, - "y": 50.0 - }, - { - "x": 205.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y" - }, - "name": "unnamedWire#105", - "path": [ - { - "x": 200.0, - "y": 115.0 - }, - { - "x": 200.0, - "y": 90.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I8" - }, - "name": "unnamedWire#106", - "path": [ - { - "x": 195.0, - "y": 110.0 - }, - { - "x": 195.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y" - }, - "name": "unnamedWire#107", - "path": [ - { - "x": 195.0, - "y": 135.0 - }, - { - "x": 195.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I6" - }, - "name": "unnamedWire#108", - "path": [ - { - "x": 200.0, - "y": 170.0 - }, - { - "x": 200.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y" - }, - "name": "unnamedWire#109", - "path": [ - { - "x": 205.0, - "y": 155.0 - }, - { - "x": 205.0, - "y": 210.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "S2" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I4" - }, - "name": "unnamedWire#110", - "path": [ - { - "x": 210.0, - "y": 230.0 - }, - { - "x": 210.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "Y" - }, - "name": "unnamedWire#111", - "path": [ - { - "x": 215.0, - "y": 175.0 - }, - { - "x": 215.0, - "y": 270.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#112", - "path": [ - { - "x": 220.0, - "y": 290.0 - }, - { - "x": 220.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Y" - }, - "name": "unnamedWire#113", - "path": [ - { - "x": 225.0, - "y": 195.0 - }, - { - "x": 225.0, - "y": 330.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#114", - "path": [ - { - "x": 230.0, - "y": 350.0 - }, - { - "x": 230.0, - "y": 205.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#115", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#116", - "path": [ - { - "x": 50.0, - "y": 5.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "S2" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "S1" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 140.0, - "y": 350.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "S1" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 140.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "S1" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "S1" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "S1" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 145.0, - "y": 5.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S1" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#42", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "S2" - }, - "name": "unnamedWire#43", - "path": [ - { - "x": 145.0, - "y": 360.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#45", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "S1" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 85.0, - "y": 330.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "S2" - }, - "name": "unnamedWire#49", - "path": [ - { - "x": 90.0, - "y": 340.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S2" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "S1" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I1" - }, - "name": "unnamedWire#64", - "path": [ - { - "x": 75.0, - "y": 45.0 - }, - { - "x": 75.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I1" - }, - "name": "unnamedWire#65", - "path": [ - { - "x": 70.0, - "y": 55.0 - }, - { - "x": 70.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1" - }, - "name": "unnamedWire#66", - "path": [ - { - "x": 65.0, - "y": 65.0 - }, - { - "x": 65.0, - "y": 110.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I1" - }, - "name": "unnamedWire#67", - "path": [ - { - "x": 60.0, - "y": 75.0 - }, - { - "x": 60.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I1" - }, - "name": "unnamedWire#68", - "path": [ - { - "x": 55.0, - "y": 85.0 - }, - { - "x": 55.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O6" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "I1" - }, - "name": "unnamedWire#69", - "path": [ - { - "x": 50.0, - "y": 95.0 - }, - { - "x": 50.0, - "y": 190.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I1" - }, - "name": "unnamedWire#70", - "path": [ - { - "x": 45.0, - "y": 105.0 - }, - { - "x": 45.0, - "y": 230.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I1" - }, - "name": "unnamedWire#71", - "path": [ - { - "x": 40.0, - "y": 115.0 - }, - { - "x": 40.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "I1" - }, - "name": "unnamedWire#72", - "path": [ - { - "x": 35.0, - "y": 125.0 - }, - { - "x": 35.0, - "y": 290.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "I1" - }, - "name": "unnamedWire#73", - "path": [ - { - "x": 30.0, - "y": 135.0 - }, - { - "x": 30.0, - "y": 310.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "I1" - }, - "name": "unnamedWire#74", - "path": [ - { - "x": 25.0, - "y": 145.0 - }, - { - "x": 25.0, - "y": 350.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I1" - }, - "name": "unnamedWire#75", - "path": [ - { - "x": 20.0, - "y": 155.0 - }, - { - "x": 20.0, - "y": 370.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "name": "unnamedWire#76", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#77", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "S1" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I2" - }, - "name": "unnamedWire#82", - "path": [ - { - "x": 75.0, - "y": 245.0 - }, - { - "x": 75.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O10" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I2" - }, - "name": "unnamedWire#83", - "path": [ - { - "x": 70.0, - "y": 255.0 - }, - { - "x": 70.0, - "y": 80.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I2" - }, - "name": "unnamedWire#84", - "path": [ - { - "x": 65.0, - "y": 265.0 - }, - { - "x": 65.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O8" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I2" - }, - "name": "unnamedWire#85", - "path": [ - { - "x": 60.0, - "y": 275.0 - }, - { - "x": 60.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I2" - }, - "name": "unnamedWire#86", - "path": [ - { - "x": 55.0, - "y": 285.0 - }, - { - "x": 55.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O6" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "I2" - }, - "name": "unnamedWire#87", - "path": [ - { - "x": 50.0, - "y": 295.0 - }, - { - "x": 50.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I2" - }, - "name": "unnamedWire#88", - "path": [ - { - "x": 45.0, - "y": 305.0 - }, - { - "x": 45.0, - "y": 240.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I2" - }, - "name": "unnamedWire#89", - "path": [ - { - "x": 40.0, - "y": 315.0 - }, - { - "x": 40.0, - "y": 260.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "I2" - }, - "name": "unnamedWire#90", - "path": [ - { - "x": 35.0, - "y": 325.0 - }, - { - "x": 35.0, - "y": 300.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "I2" - }, - "name": "unnamedWire#91", - "path": [ - { - "x": 30.0, - "y": 335.0 - }, - { - "x": 30.0, - "y": 320.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "I2" - }, - "name": "unnamedWire#92", - "path": [ - { - "x": 45.0, - "y": 345.0 - }, - { - "x": 45.0, - "y": 360.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I2" - }, - "name": "unnamedWire#93", - "path": [ - { - "x": 40.0, - "y": 355.0 - }, - { - "x": 40.0, - "y": 380.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#94", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#95", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#96", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#97", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#98", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "MUX\n12 bit", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 23.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "default", - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_16.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_16.json deleted file mode 100644 index e03f2492..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_16.json +++ /dev/null @@ -1,2375 +0,0 @@ -{ - "width": 55.0, - "height": 110.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I0", - "logicWidth": 16, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 90.0 - }, - "name": "I1", - "logicWidth": 16, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "S", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 55.0, - "y": 50.0 - }, - "name": "Y", - "logicWidth": 16, - "usage": "OUTPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 115.0, - "y": 25.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 175.0, - "y": 45.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#10", - "pos": { - "x": 115.0, - "y": 265.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#11", - "pos": { - "x": 115.0, - "y": 325.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#12", - "pos": { - "x": 175.0, - "y": 405.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#13", - "pos": { - "x": 175.0, - "y": 345.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#14", - "pos": { - "x": 115.0, - "y": 385.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#15", - "pos": { - "x": 175.0, - "y": 465.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 115.0, - "y": 85.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#3", - "pos": { - "x": 175.0, - "y": 105.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 175.0, - "y": 165.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 115.0, - "y": 205.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 175.0, - "y": 225.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 115.0, - "y": 145.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 115.0, - "y": 445.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#9", - "pos": { - "x": 175.0, - "y": 285.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 260.0, - "y": 175.0 - }, - "params": 16 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 70.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 5.0, - "y": 50.0 - }, - "params": 16 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 5.0, - "y": 375.0 - }, - "params": 16 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 164.0, - "y": 49.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 169.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 169.0, - "y": 359.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 164.0, - "y": 349.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 169.0, - "y": 419.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 164.0, - "y": 409.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 109.0, - "y": 4.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 104.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 64.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 64.0, - "y": 14.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 104.0, - "y": 389.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 109.0, - "y": 399.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 164.0, - "y": 109.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#20", - "pos": { - "x": 104.0, - "y": 329.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#21", - "pos": { - "x": 109.0, - "y": 339.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#22", - "pos": { - "x": 109.0, - "y": 279.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#23", - "pos": { - "x": 104.0, - "y": 269.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#24", - "pos": { - "x": 104.0, - "y": 209.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#25", - "pos": { - "x": 109.0, - "y": 219.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#26", - "pos": { - "x": 104.0, - "y": 149.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#27", - "pos": { - "x": 109.0, - "y": 159.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#28", - "pos": { - "x": 109.0, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#29", - "pos": { - "x": 104.0, - "y": 89.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 169.0, - "y": 119.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#30", - "pos": { - "x": 104.0, - "y": 29.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#31", - "pos": { - "x": 109.0, - "y": 39.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 164.0, - "y": 169.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 169.0, - "y": 179.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 169.0, - "y": 239.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 164.0, - "y": 229.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 164.0, - "y": 289.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 169.0, - "y": 299.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S1" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S2" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "S1" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I14" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y" - }, - "name": "unnamedWire#100", - "path": [ - { - "x": 250.0, - "y": 185.0 - }, - { - "x": 250.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I13" - }, - "name": "unnamedWire#101", - "path": [ - { - "x": 245.0, - "y": 90.0 - }, - { - "x": 245.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I12" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y" - }, - "name": "unnamedWire#102", - "path": [ - { - "x": 240.0, - "y": 205.0 - }, - { - "x": 240.0, - "y": 110.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I11" - }, - "name": "unnamedWire#103", - "path": [ - { - "x": 235.0, - "y": 150.0 - }, - { - "x": 235.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I10" - }, - "name": "unnamedWire#104", - "path": [ - { - "x": 230.0, - "y": 170.0 - }, - { - "x": 230.0, - "y": 225.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y" - }, - "name": "unnamedWire#105", - "path": [ - { - "x": 225.0, - "y": 235.0 - }, - { - "x": 225.0, - "y": 210.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I8" - }, - "name": "unnamedWire#106", - "path": [ - { - "x": 220.0, - "y": 230.0 - }, - { - "x": 220.0, - "y": 245.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y" - }, - "name": "unnamedWire#107", - "path": [ - { - "x": 220.0, - "y": 255.0 - }, - { - "x": 220.0, - "y": 270.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I6" - }, - "name": "unnamedWire#108", - "path": [ - { - "x": 225.0, - "y": 290.0 - }, - { - "x": 225.0, - "y": 265.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y" - }, - "name": "unnamedWire#109", - "path": [ - { - "x": 230.0, - "y": 275.0 - }, - { - "x": 230.0, - "y": 330.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "S2" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I4" - }, - "name": "unnamedWire#110", - "path": [ - { - "x": 235.0, - "y": 350.0 - }, - { - "x": 235.0, - "y": 285.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "Y" - }, - "name": "unnamedWire#111", - "path": [ - { - "x": 240.0, - "y": 295.0 - }, - { - "x": 240.0, - "y": 390.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#112", - "path": [ - { - "x": 245.0, - "y": 410.0 - }, - { - "x": 245.0, - "y": 305.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Y" - }, - "name": "unnamedWire#113", - "path": [ - { - "x": 250.0, - "y": 315.0 - }, - { - "x": 250.0, - "y": 450.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#114", - "path": [ - { - "x": 255.0, - "y": 470.0 - }, - { - "x": 255.0, - "y": 325.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#115", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#116", - "path": [ - { - "x": 65.0, - "y": 5.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "S2" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "S1" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 165.0, - "y": 470.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "S1" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "S1" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "S1" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "S1" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "S1" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "S1" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "S2" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "S1" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S1" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#42", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "S2" - }, - "name": "unnamedWire#43", - "path": [ - { - "x": 170.0, - "y": 480.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#45", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "S1" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 105.0, - "y": 450.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "S2" - }, - "name": "unnamedWire#49", - "path": [ - { - "x": 110.0, - "y": 460.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S2" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#54", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#58", - "path": [ - { - "x": 165.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#59", - "path": [ - { - "x": 170.0, - "y": 5.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "S1" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O15" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O14" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 90.0, - "y": 60.0 - }, - { - "x": 90.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O13" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 85.0, - "y": 70.0 - }, - { - "x": 85.0, - "y": 110.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O12" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I1" - }, - "name": "unnamedWire#63", - "path": [ - { - "x": 80.0, - "y": 80.0 - }, - { - "x": 80.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I1" - }, - "name": "unnamedWire#64", - "path": [ - { - "x": 75.0, - "y": 90.0 - }, - { - "x": 75.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I1" - }, - "name": "unnamedWire#65", - "path": [ - { - "x": 70.0, - "y": 100.0 - }, - { - "x": 70.0, - "y": 190.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1" - }, - "name": "unnamedWire#66", - "path": [ - { - "x": 65.0, - "y": 110.0 - }, - { - "x": 65.0, - "y": 230.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I1" - }, - "name": "unnamedWire#67", - "path": [ - { - "x": 60.0, - "y": 120.0 - }, - { - "x": 60.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I1" - }, - "name": "unnamedWire#68", - "path": [ - { - "x": 55.0, - "y": 130.0 - }, - { - "x": 55.0, - "y": 290.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O6" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "I1" - }, - "name": "unnamedWire#69", - "path": [ - { - "x": 50.0, - "y": 140.0 - }, - { - "x": 50.0, - "y": 310.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I1" - }, - "name": "unnamedWire#70", - "path": [ - { - "x": 45.0, - "y": 150.0 - }, - { - "x": 45.0, - "y": 350.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I1" - }, - "name": "unnamedWire#71", - "path": [ - { - "x": 40.0, - "y": 160.0 - }, - { - "x": 40.0, - "y": 370.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "I1" - }, - "name": "unnamedWire#72", - "path": [ - { - "x": 35.0, - "y": 170.0 - }, - { - "x": 35.0, - "y": 410.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "I1" - }, - "name": "unnamedWire#73", - "path": [ - { - "x": 30.0, - "y": 180.0 - }, - { - "x": 30.0, - "y": 430.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "I1" - }, - "name": "unnamedWire#74", - "path": [ - { - "x": 25.0, - "y": 190.0 - }, - { - "x": 25.0, - "y": 470.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I1" - }, - "name": "unnamedWire#75", - "path": [ - { - "x": 20.0, - "y": 200.0 - }, - { - "x": 20.0, - "y": 490.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "name": "unnamedWire#76", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#77", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O15" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I2" - }, - "name": "unnamedWire#78", - "path": [ - { - "x": 95.0, - "y": 375.0 - }, - { - "x": 95.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O14" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I2" - }, - "name": "unnamedWire#79", - "path": [ - { - "x": 90.0, - "y": 385.0 - }, - { - "x": 90.0, - "y": 80.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "S1" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O13" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I2" - }, - "name": "unnamedWire#80", - "path": [ - { - "x": 85.0, - "y": 395.0 - }, - { - "x": 85.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O12" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I2" - }, - "name": "unnamedWire#81", - "path": [ - { - "x": 80.0, - "y": 405.0 - }, - { - "x": 80.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I2" - }, - "name": "unnamedWire#82", - "path": [ - { - "x": 75.0, - "y": 415.0 - }, - { - "x": 75.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O10" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I2" - }, - "name": "unnamedWire#83", - "path": [ - { - "x": 70.0, - "y": 425.0 - }, - { - "x": 70.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O9" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I2" - }, - "name": "unnamedWire#84", - "path": [ - { - "x": 65.0, - "y": 435.0 - }, - { - "x": 65.0, - "y": 240.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O8" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I2" - }, - "name": "unnamedWire#85", - "path": [ - { - "x": 60.0, - "y": 445.0 - }, - { - "x": 60.0, - "y": 260.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O7" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "I2" - }, - "name": "unnamedWire#86", - "path": [ - { - "x": 55.0, - "y": 455.0 - }, - { - "x": 55.0, - "y": 300.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O6" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "I2" - }, - "name": "unnamedWire#87", - "path": [ - { - "x": 50.0, - "y": 465.0 - }, - { - "x": 50.0, - "y": 320.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O5" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I2" - }, - "name": "unnamedWire#88", - "path": [ - { - "x": 45.0, - "y": 475.0 - }, - { - "x": 45.0, - "y": 360.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I2" - }, - "name": "unnamedWire#89", - "path": [ - { - "x": 40.0, - "y": 485.0 - }, - { - "x": 40.0, - "y": 380.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "S2" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "I2" - }, - "name": "unnamedWire#90", - "path": [ - { - "x": 35.0, - "y": 495.0 - }, - { - "x": 35.0, - "y": 420.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "I2" - }, - "name": "unnamedWire#91", - "path": [ - { - "x": 30.0, - "y": 505.0 - }, - { - "x": 30.0, - "y": 440.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "I2" - }, - "name": "unnamedWire#92", - "path": [ - { - "x": 25.0, - "y": 515.0 - }, - { - "x": 25.0, - "y": 480.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I2" - }, - "name": "unnamedWire#93", - "path": [ - { - "x": 20.0, - "y": 525.0 - }, - { - "x": 20.0, - "y": 500.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#94", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#95", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#96", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#97", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#98", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I15" - }, - "name": "unnamedWire#99", - "path": [ - { - "x": 255.0, - "y": 30.0 - }, - { - "x": 255.0, - "y": 175.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "MUX\n16 bit", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 23.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "default", - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_4.json deleted file mode 100644 index 1caab2c4..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux1_4.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "width": 35.0, - "height": 90.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I0_1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I0_2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "I0_3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "I0_4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "I1_1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "I1_2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "I1_3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "I1_4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "S0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUImux1", - "name": "GUImux1#0", - "pos": { - "x": 30.0, - "y": 7.5 - } - }, - { - "id": "GUImux1", - "name": "GUImux1#1", - "pos": { - "x": 30.0, - "y": 42.5 - } - }, - { - "id": "GUImux1", - "name": "GUImux1#2", - "pos": { - "x": 30.0, - "y": 77.5 - } - }, - { - "id": "GUImux1", - "name": "GUImux1#3", - "pos": { - "x": 30.0, - "y": 112.5 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 24.0, - "y": 11.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 24.0, - "y": 46.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 24.0, - "y": 81.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1#0", - "pinName": "S0" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1#2", - "pinName": "S0" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0_3" - }, - "pin2": { - "compName": "GUImux1#2", - "pinName": "I0" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 5.0, - "y": 87.5 - }, - { - "x": 5.0, - "y": 92.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1_3" - }, - "pin2": { - "compName": "GUImux1#2", - "pinName": "I1" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 20.0, - "y": 187.5 - }, - { - "x": 20.0, - "y": 102.5 - } - ] - }, - { - "pin1": { - "compName": "GUImux1#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#14" - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1#3", - "pinName": "S0" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 25.0, - "y": 117.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0_4" - }, - "pin2": { - "compName": "GUImux1#3", - "pinName": "I0" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 5.0, - "y": 112.5 - }, - { - "x": 5.0, - "y": 127.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1_4" - }, - "pin2": { - "compName": "GUImux1#3", - "pinName": "I1" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 25.0, - "y": 212.5 - }, - { - "x": 25.0, - "y": 137.5 - } - ] - }, - { - "pin1": { - "compName": "GUImux1#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#18" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0_1" - }, - "pin2": { - "compName": "GUImux1#0", - "pinName": "I0" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 5.0, - "y": 37.5 - }, - { - "x": 5.0, - "y": 22.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1_1" - }, - "pin2": { - "compName": "GUImux1#0", - "pinName": "I1" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 10.0, - "y": 137.5 - }, - { - "x": 10.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "GUImux1#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1#1", - "pinName": "S0" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0_2" - }, - "pin2": { - "compName": "GUImux1#1", - "pinName": "I0" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 5.0, - "y": 62.5 - }, - { - "x": 5.0, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1_2" - }, - "pin2": { - "compName": "GUImux1#1", - "pinName": "I1" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 15.0, - "y": 162.5 - }, - { - "x": 15.0, - "y": 67.5 - } - ] - }, - { - "pin1": { - "compName": "GUImux1#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#9" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUImux1_4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux2.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux2.json deleted file mode 100644 index c6b39308..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux2.json +++ /dev/null @@ -1,434 +0,0 @@ -{ - "width": 70.0, - "height": 70.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 30.0 - }, - "name": "I00", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 40.0 - }, - "name": "I01", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 50.0 - }, - "name": "I10", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 60.0 - }, - "name": "I11", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "S0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 10.0 - }, - "name": "S1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 70.0, - "y": 10.0 - }, - "name": "Y", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 60.0, - "y": 35.0 - } - }, - { - "id": "GUIsel1", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 60.0, - "y": 100.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 115.0, - "y": 20.0 - } - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 30.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 24.0, - "y": 29.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 24.0, - "y": 49.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 54.0, - "y": 39.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "S0" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S2" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 55.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "S2" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 25.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "S1" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 55.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 25.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I00" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 35.0, - "y": 75.0 - }, - { - "x": 35.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I01" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I2" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 40.0, - "y": 100.0 - }, - { - "x": 40.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I10" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I11" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I2" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 20.0, - "y": 150.0 - }, - { - "x": 20.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 105.0, - "y": 40.0 - }, - { - "x": 105.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 105.0, - "y": 105.0 - }, - { - "x": 105.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "S0" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 15.0, - "y": 25.0 - }, - { - "x": 15.0, - "y": 10.0 - }, - { - "x": 85.0, - "y": 10.0 - }, - { - "x": 85.0, - "y": 25.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUImux2", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux2_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux2_4.json deleted file mode 100644 index 7d1342a9..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux2_4.json +++ /dev/null @@ -1,700 +0,0 @@ -{ - "width": 62.0, - "height": 90.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 30.0 - }, - "name": "I00", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 40.0 - }, - "name": "I01", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 50.0 - }, - "name": "I10", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 60.0 - }, - "name": "I11", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 10.0 - }, - "name": "S0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "S1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 62.0, - "y": 16.0 - }, - "name": "Y", - "logicWidth": 4, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 40.0, - "y": 30.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 40.0, - "y": 125.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 100.0, - "y": 20.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 140.0, - "y": 25.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 25.0, - "y": 45.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 25.0, - "y": 85.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#2", - "pos": { - "x": 25.0, - "y": 140.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#3", - "pos": { - "x": 25.0, - "y": 180.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 19.0, - "y": 34.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_1" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_2" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "O1" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_1" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_4" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_4" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_3" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_2" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 20.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "S0" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 20.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "I00" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 15.0, - "y": 60.0 - }, - { - "x": 15.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_3" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I01" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "I" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "I10" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 15.0, - "y": 155.0 - }, - { - "x": 15.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I11" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "I" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 10.0, - "y": 150.0 - }, - { - "x": 10.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_1" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y2" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_3" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y4" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y1" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 80.0, - "y": 75.0 - }, - { - "x": 80.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_2" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 85.0, - "y": 140.0 - }, - { - "x": 85.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y3" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 90.0, - "y": 95.0 - }, - { - "x": 90.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_1" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_4" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 95.0, - "y": 160.0 - }, - { - "x": 95.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y1" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y3" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "S0" - }, - "name": "unnamedWire#36", - "path": [ - { - "x": 15.0, - "y": 50.0 - }, - { - "x": 15.0, - "y": 20.0 - }, - { - "x": 60.0, - "y": 20.0 - }, - { - "x": 60.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_4" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "O3" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_2" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_3" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "O2" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_4" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_2" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUImux1_4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux3.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux3.json deleted file mode 100644 index 222e948d..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUImux3.json +++ /dev/null @@ -1,483 +0,0 @@ -{ - "width": 80.0, - "height": 120.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 40.0 - }, - "name": "I000", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 50.0 - }, - "name": "I001", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 60.0 - }, - "name": "I010", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 70.0 - }, - "name": "I011", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 80.0 - }, - "name": "I100", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 90.0 - }, - "name": "I101", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 100.0 - }, - "name": "I110", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 110.0 - }, - "name": "I111", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 30.0 - }, - "name": "S0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "S1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 10.0 - }, - "name": "S2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 80.0, - "y": 10.0 - }, - "name": "Y", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUImux2", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 35.0, - "y": 185.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 125.0, - "y": 20.0 - } - }, - { - "id": "GUImux2", - "name": "DeserializedSubmodelComponent#3", - "pos": { - "x": 35.0, - "y": 85.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 19.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 24.0, - "y": 94.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 20.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "S1" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 25.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I11" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "I011" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 15.0, - "y": 145.0 - }, - { - "x": 15.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I00" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "I100" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 10.0, - "y": 215.0 - }, - { - "x": 10.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I101" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I01" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I10" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "I110" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 10.0, - "y": 235.0 - }, - { - "x": 10.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I111" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I11" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 15.0, - "y": 275.0 - }, - { - "x": 15.0, - "y": 245.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 115.0, - "y": 195.0 - }, - { - "x": 115.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 110.0, - "y": 95.0 - }, - { - "x": 110.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "S0" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "S2" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "S1" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S1" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 25.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 20.0, - "y": 205.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I000" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I00" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 10.0, - "y": 100.0 - }, - { - "x": 10.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I01" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "I001" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I010" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I10" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 10.0, - "y": 150.0 - }, - { - "x": 10.0, - "y": 135.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUImux3", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUInand3.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUInand3.json deleted file mode 100644 index 28b9a601..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUInand3.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "width": 35.0, - "height": 30.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": 0.0, - "y": 25.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 35.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 62.5, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 31.5, - "y": 24.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#0" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#1" - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 32.5, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 32.5, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 57.5, - "y": 25.0 - }, - { - "x": 57.5, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 60.0, - "y": 62.5 - }, - { - "x": 60.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#7", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUInand3", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUInot4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUInot4.json deleted file mode 100644 index b80166a2..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUInot4.json +++ /dev/null @@ -1,401 +0,0 @@ -{ - "width": 35.0, - "height": 40.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 30.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 30.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 30.0, - "y": 52.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 30.0, - "y": 77.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 14.0, - "y": 11.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 14.0, - "y": 36.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 14.0, - "y": 61.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 14.0, - "y": 86.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 15.0, - "y": 67.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 15.0, - "y": 92.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 15.0, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 15.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 15.0, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 15.0, - "y": 82.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 15.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 15.0, - "y": 42.5 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUInot4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIor4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIor4.json deleted file mode 100644 index 9b6e1bf9..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIor4.json +++ /dev/null @@ -1,558 +0,0 @@ -{ - "width": 35.0, - "height": 40.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 20.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 20.0, - "y": 65.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 20.0, - "y": 115.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 20.0, - "y": 165.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 50.0, - "y": 40.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 50.0, - "y": 140.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 110.0, - "y": 40.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 110.0, - "y": 140.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#8", - "pos": { - "x": 140.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 14.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 14.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 14.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 14.0, - "y": 174.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 104.0, - "y": 49.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 104.0, - "y": 149.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 15.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 15.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#12" - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#13" - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#14" - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#15" - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 105.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 105.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 105.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 105.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "A" - }, - "name": "unnamedWire#22" - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "B" - }, - "name": "unnamedWire#23" - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#24" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 15.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 15.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 15.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 15.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 15.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 15.0, - "y": 80.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIor4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIor_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIor_4.json deleted file mode 100644 index 232a77f8..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIor_4.json +++ /dev/null @@ -1,897 +0,0 @@ -{ - "width": 35.0, - "height": 80.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "B2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "B3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "B4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 15.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 15.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#10", - "pos": { - "x": 65.0, - "y": 52.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#11", - "pos": { - "x": 65.0, - "y": 77.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 15.0, - "y": 52.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 15.0, - "y": 77.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 15.0, - "y": 102.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 15.0, - "y": 127.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 15.0, - "y": 152.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 15.0, - "y": 177.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#8", - "pos": { - "x": 65.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#9", - "pos": { - "x": 65.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 6.5, - "y": 11.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 6.5, - "y": 36.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 6.5, - "y": 61.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 6.5, - "y": 86.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 6.5, - "y": 111.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 6.5, - "y": 136.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 6.5, - "y": 161.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 6.5, - "y": 186.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 7.5, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 7.5, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 7.5, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 7.5, - "y": 67.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 7.5, - "y": 82.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 7.5, - "y": 92.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 7.5, - "y": 107.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 7.5, - "y": 117.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 7.5, - "y": 132.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 7.5, - "y": 142.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 7.5, - "y": 157.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 7.5, - "y": 167.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 7.5, - "y": 182.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 7.5, - "y": 192.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "A" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 40.0, - "y": 12.5 - }, - { - "x": 40.0, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "B" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 45.0, - "y": 112.5 - }, - { - "x": 45.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "A" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 40.0, - "y": 37.5 - }, - { - "x": 40.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "B" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 50.0, - "y": 137.5 - }, - { - "x": 50.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "A" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 40.0, - "y": 62.5 - }, - { - "x": 40.0, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "B" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 55.0, - "y": 162.5 - }, - { - "x": 55.0, - "y": 67.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "A" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 40.0, - "y": 87.5 - }, - { - "x": 40.0, - "y": 82.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "B" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 60.0, - "y": 187.5 - }, - { - "x": 60.0, - "y": 92.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#9", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#10", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#11", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B2" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B3" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B4" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 7.5, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 7.5, - "y": 17.5 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIor_4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIram2.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIram2.json deleted file mode 100644 index 63221104..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIram2.json +++ /dev/null @@ -1,3029 +0,0 @@ -{ - "width": 35.0, - "height": 90.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "A0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "B0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "QA1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "QA2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "QA3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "QA4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "QB1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "QB2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 65.0 - }, - "name": "QB3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 75.0 - }, - "name": "QB4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "WE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.1, - "submodel": { - "components": [ - { - "id": "GUIand41", - "name": "GUIand41#0", - "pos": { - "x": 130.0, - "y": 150.0 - } - }, - { - "id": "GUIand41", - "name": "GUIand41#1", - "pos": { - "x": 235.0, - "y": 375.0 - } - }, - { - "id": "GUIand41", - "name": "GUIand41#2", - "pos": { - "x": 135.0, - "y": 325.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#0", - "pos": { - "x": 235.0, - "y": 485.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#1", - "pos": { - "x": 235.0, - "y": 635.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#2", - "pos": { - "x": 235.0, - "y": 785.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#3", - "pos": { - "x": 135.0, - "y": 435.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#4", - "pos": { - "x": 135.0, - "y": 585.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#5", - "pos": { - "x": 135.0, - "y": 735.0 - } - }, - { - "id": "GUIdemux2", - "name": "GUIdemux2#0", - "pos": { - "x": 55.0, - "y": 45.0 - } - }, - { - "id": "GUIdemux2", - "name": "GUIdemux2#1", - "pos": { - "x": 55.0, - "y": 150.0 - } - }, - { - "id": "GUIdlatch4", - "name": "GUIdlatch4#0", - "pos": { - "x": 55.0, - "y": 325.0 - } - }, - { - "id": "GUIdlatch4", - "name": "GUIdlatch4#1", - "pos": { - "x": 55.0, - "y": 475.0 - } - }, - { - "id": "GUIdlatch4", - "name": "GUIdlatch4#2", - "pos": { - "x": 55.0, - "y": 625.0 - } - }, - { - "id": "GUIdlatch4", - "name": "GUIdlatch4#3", - "pos": { - "x": 55.0, - "y": 775.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 109.0, - "y": 154.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 104.0, - "y": 164.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 44.0, - "y": 499.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 49.0, - "y": 509.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 34.0, - "y": 629.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 39.0, - "y": 639.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 44.0, - "y": 649.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 49.0, - "y": 659.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 129.0, - "y": 329.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 124.0, - "y": 339.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 119.0, - "y": 349.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 114.0, - "y": 359.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 99.0, - "y": 174.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#20", - "pos": { - "x": 129.0, - "y": 479.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#21", - "pos": { - "x": 124.0, - "y": 489.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#22", - "pos": { - "x": 119.0, - "y": 499.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#23", - "pos": { - "x": 114.0, - "y": 509.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#24", - "pos": { - "x": 129.0, - "y": 629.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#25", - "pos": { - "x": 124.0, - "y": 639.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#26", - "pos": { - "x": 119.0, - "y": 649.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#27", - "pos": { - "x": 114.0, - "y": 659.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#28", - "pos": { - "x": 129.0, - "y": 779.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#29", - "pos": { - "x": 124.0, - "y": 789.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 94.0, - "y": 184.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#30", - "pos": { - "x": 119.0, - "y": 799.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#31", - "pos": { - "x": 114.0, - "y": 809.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 34.0, - "y": 549.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 39.0, - "y": 649.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 44.0, - "y": 749.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 49.0, - "y": 809.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 34.0, - "y": 479.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 39.0, - "y": 489.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A0" - }, - "pin2": { - "compName": "GUIdemux2#0", - "pinName": "S0" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUIdemux2#0", - "pinName": "S1" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 10.0, - "y": 150.0 - }, - { - "x": 10.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A3" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A4" - }, - "name": "unnamedWire#100", - "path": [] - }, - { - "pin1": { - "compName": "GUIand41#1", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C1" - }, - "name": "unnamedWire#101", - "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": { - "compName": "GUIand41#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C2" - }, - "name": "unnamedWire#102", - "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": { - "compName": "GUIand41#1", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C3" - }, - "name": "unnamedWire#103", - "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": { - "compName": "GUIand41#1", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C4" - }, - "name": "unnamedWire#104", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C1" - }, - "name": "unnamedWire#105", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C2" - }, - "name": "unnamedWire#106", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C3" - }, - "name": "unnamedWire#107", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C4" - }, - "name": "unnamedWire#108", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C1" - }, - "name": "unnamedWire#109", - "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": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A4" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "GUIandor414#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C2" - }, - "name": "unnamedWire#110", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C3" - }, - "name": "unnamedWire#111", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C4" - }, - "name": "unnamedWire#112", - "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": { - "compName": "GUIandor414#2", - "pinName": "Y1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA1" - }, - "name": "unnamedWire#113", - "path": [ - { - "x": 300.0, - "y": 790.0 - }, - { - "x": 300.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#2", - "pinName": "Y2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA2" - }, - "name": "unnamedWire#114", - "path": [ - { - "x": 305.0, - "y": 800.0 - }, - { - "x": 305.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#2", - "pinName": "Y3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA3" - }, - "name": "unnamedWire#115", - "path": [ - { - "x": 310.0, - "y": 810.0 - }, - { - "x": 310.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#2", - "pinName": "Y4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA4" - }, - "name": "unnamedWire#116", - "path": [ - { - "x": 315.0, - "y": 820.0 - }, - { - "x": 315.0, - "y": 350.0 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#2", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C1" - }, - "name": "unnamedWire#117", - "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": { - "compName": "GUIand41#2", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C2" - }, - "name": "unnamedWire#118", - "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": { - "compName": "GUIand41#2", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C3" - }, - "name": "unnamedWire#119", - "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": { - "compName": "_submodelinterface", - "pinName": "WE" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "B" - }, - "name": "unnamedWire#12", - "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": { - "compName": "GUIand41#2", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C4" - }, - "name": "unnamedWire#120", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C1" - }, - "name": "unnamedWire#121", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C2" - }, - "name": "unnamedWire#122", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C3" - }, - "name": "unnamedWire#123", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C4" - }, - "name": "unnamedWire#124", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C1" - }, - "name": "unnamedWire#125", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C2" - }, - "name": "unnamedWire#126", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C3" - }, - "name": "unnamedWire#127", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C4" - }, - "name": "unnamedWire#128", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB1" - }, - "name": "unnamedWire#129", - "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": { - "compName": "GUIand41#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "C" - }, - "name": "unnamedWire#13", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB2" - }, - "name": "unnamedWire#130", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB3" - }, - "name": "unnamedWire#131", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB4" - }, - "name": "unnamedWire#132", - "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 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "C" - }, - "name": "unnamedWire#14", - "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": { - "compName": "GUIand41#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIdlatch4#2", - "pinName": "C" - }, - "name": "unnamedWire#15", - "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": { - "compName": "GUIand41#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIdlatch4#3", - "pinName": "C" - }, - "name": "unnamedWire#16", - "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": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B0" - }, - "pin2": { - "compName": "GUIdemux2#1", - "pinName": "S0" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 5.0, - "y": 250.0 - }, - { - "x": 5.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 50.0, - "y": 850.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D1" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 35.0, - "y": 330.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D2" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 40.0, - "y": 340.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D3" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 45.0, - "y": 350.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D4" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 50.0, - "y": 360.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D1" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D2" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D3" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D4" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "GUIdemux2#1", - "pinName": "S1" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 10.0, - "y": 350.0 - }, - { - "x": 10.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#2", - "pinName": "D1" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#2", - "pinName": "D2" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#2", - "pinName": "D3" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#2", - "pinName": "D4" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y00" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#3", - "pinName": "D1" - }, - "name": "unnamedWire#41", - "path": [ - { - "x": 35.0, - "y": 780.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#3", - "pinName": "D2" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 40.0, - "y": 790.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#3", - "pinName": "D3" - }, - "name": "unnamedWire#43", - "path": [ - { - "x": 45.0, - "y": 800.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#3", - "pinName": "D4" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#45", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "name": "unnamedWire#48", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y01" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#2", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#2", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#54", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#2", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#2", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#3", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#3", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#3", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "name": "unnamedWire#59", - "path": [] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y10" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#3", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y00" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "B" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 210.0, - "y": 50.0 - }, - { - "x": 210.0, - "y": 420.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y01" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "B" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 205.0, - "y": 60.0 - }, - { - "x": 205.0, - "y": 570.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y10" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "B" - }, - "name": "unnamedWire#63", - "path": [ - { - "x": 200.0, - "y": 70.0 - }, - { - "x": 200.0, - "y": 720.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y11" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "B" - }, - "name": "unnamedWire#64", - "path": [ - { - "x": 195.0, - "y": 80.0 - }, - { - "x": 195.0, - "y": 870.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "B" - }, - "name": "unnamedWire#65", - "path": [ - { - "x": 110.0, - "y": 370.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "B" - }, - "name": "unnamedWire#66", - "path": [ - { - "x": 105.0, - "y": 520.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "B" - }, - "name": "unnamedWire#67", - "path": [ - { - "x": 100.0, - "y": 670.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "B" - }, - "name": "unnamedWire#68", - "path": [ - { - "x": 95.0, - "y": 820.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A1" - }, - "name": "unnamedWire#69", - "path": [ - { - "x": 130.0, - "y": 380.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y11" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A2" - }, - "name": "unnamedWire#70", - "path": [ - { - "x": 125.0, - "y": 390.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A3" - }, - "name": "unnamedWire#71", - "path": [ - { - "x": 120.0, - "y": 400.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A4" - }, - "name": "unnamedWire#72", - "path": [ - { - "x": 115.0, - "y": 410.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A1" - }, - "name": "unnamedWire#73", - "path": [ - { - "x": 130.0, - "y": 530.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A2" - }, - "name": "unnamedWire#74", - "path": [ - { - "x": 125.0, - "y": 540.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A3" - }, - "name": "unnamedWire#75", - "path": [ - { - "x": 120.0, - "y": 550.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A4" - }, - "name": "unnamedWire#76", - "path": [ - { - "x": 115.0, - "y": 560.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A1" - }, - "name": "unnamedWire#77", - "path": [ - { - "x": 130.0, - "y": 680.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A2" - }, - "name": "unnamedWire#78", - "path": [ - { - "x": 125.0, - "y": 690.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A3" - }, - "name": "unnamedWire#79", - "path": [ - { - "x": 120.0, - "y": 700.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A1" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A4" - }, - "name": "unnamedWire#80", - "path": [ - { - "x": 115.0, - "y": 710.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A1" - }, - "name": "unnamedWire#81", - "path": [ - { - "x": 130.0, - "y": 830.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A2" - }, - "name": "unnamedWire#82", - "path": [ - { - "x": 125.0, - "y": 840.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A3" - }, - "name": "unnamedWire#83", - "path": [ - { - "x": 120.0, - "y": 850.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A4" - }, - "name": "unnamedWire#84", - "path": [ - { - "x": 115.0, - "y": 860.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A1" - }, - "name": "unnamedWire#85", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A2" - }, - "name": "unnamedWire#86", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A3" - }, - "name": "unnamedWire#87", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A4" - }, - "name": "unnamedWire#88", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A1" - }, - "name": "unnamedWire#89", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A2" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A2" - }, - "name": "unnamedWire#90", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A3" - }, - "name": "unnamedWire#91", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A4" - }, - "name": "unnamedWire#92", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A1" - }, - "name": "unnamedWire#93", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A2" - }, - "name": "unnamedWire#94", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A3" - }, - "name": "unnamedWire#95", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A4" - }, - "name": "unnamedWire#96", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A1" - }, - "name": "unnamedWire#97", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A2" - }, - "name": "unnamedWire#98", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A3" - }, - "name": "unnamedWire#99", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIram2", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": { - "c00": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch4#0" - } - }, - "c11": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch4#3" - } - }, - "c10": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch4#2" - } - }, - "c01": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdlatch4#1" - } - } - }, - "atomicHighLevelStates": { - "q": { - "id": "bitVectorSplitting", - "params": { - "vectorPartTargets": [ - "c11.q", - "c10.q", - "c01.q", - "c00.q" - ], - "vectorPartLengthes": [ - 4, - 4, - 4, - 4 - ] - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIram4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIram4.json deleted file mode 100644 index 55ddef82..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIram4.json +++ /dev/null @@ -1,3525 +0,0 @@ -{ - "width": 35.0, - "height": 130.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "A0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "B0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "B2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "B3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 95.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 105.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 115.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 125.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "QA1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "QA2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "QA3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "QA4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "QB1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "QB2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 65.0 - }, - "name": "QB3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 75.0 - }, - "name": "QB4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "WE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.1, - "submodel": { - "components": [ - { - "id": "GUIand41", - "name": "GUIand41#0", - "pos": { - "x": 235.0, - "y": 150.0 - } - }, - { - "id": "GUIand41", - "name": "GUIand41#1", - "pos": { - "x": 250.0, - "y": 375.0 - } - }, - { - "id": "GUIand41", - "name": "GUIand41#2", - "pos": { - "x": 155.0, - "y": 325.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#0", - "pos": { - "x": 250.0, - "y": 485.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#1", - "pos": { - "x": 250.0, - "y": 635.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#2", - "pos": { - "x": 250.0, - "y": 785.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#3", - "pos": { - "x": 155.0, - "y": 435.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#4", - "pos": { - "x": 155.0, - "y": 585.0 - } - }, - { - "id": "GUIandor414", - "name": "GUIandor414#5", - "pos": { - "x": 155.0, - "y": 735.0 - } - }, - { - "id": "GUIdemux2", - "name": "GUIdemux2#0", - "pos": { - "x": 55.0, - "y": 45.0 - } - }, - { - "id": "GUIdemux2", - "name": "GUIdemux2#1", - "pos": { - "x": 55.0, - "y": 150.0 - } - }, - { - "id": "GUIram2", - "name": "GUIram2#0", - "pos": { - "x": 80.0, - "y": 330.0 - } - }, - { - "id": "GUIram2", - "name": "GUIram2#1", - "pos": { - "x": 80.0, - "y": 480.0 - } - }, - { - "id": "GUIram2", - "name": "GUIram2#2", - "pos": { - "x": 80.0, - "y": 630.0 - } - }, - { - "id": "GUIram2", - "name": "GUIram2#3", - "pos": { - "x": 80.0, - "y": 780.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 229.0, - "y": 154.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 224.0, - "y": 164.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 69.0, - "y": 704.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 74.0, - "y": 714.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 59.0, - "y": 834.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 64.0, - "y": 844.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 69.0, - "y": 854.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 74.0, - "y": 864.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 39.0, - "y": 484.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 44.0, - "y": 494.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 49.0, - "y": 504.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 54.0, - "y": 514.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 219.0, - "y": 174.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#20", - "pos": { - "x": 39.0, - "y": 634.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#21", - "pos": { - "x": 44.0, - "y": 644.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#22", - "pos": { - "x": 49.0, - "y": 654.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#23", - "pos": { - "x": 54.0, - "y": 664.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#24", - "pos": { - "x": 39.0, - "y": 334.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#25", - "pos": { - "x": 44.0, - "y": 349.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#26", - "pos": { - "x": 49.0, - "y": 649.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#27", - "pos": { - "x": 54.0, - "y": 749.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 214.0, - "y": 184.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 59.0, - "y": 534.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 64.0, - "y": 544.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 69.0, - "y": 554.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 74.0, - "y": 564.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 59.0, - "y": 684.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 64.0, - "y": 694.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A0" - }, - "pin2": { - "compName": "GUIdemux2#0", - "pinName": "S0" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUIdemux2#0", - "pinName": "S1" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 10.0, - "y": 150.0 - }, - { - "x": 10.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A3" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QA4" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A4" - }, - "name": "unnamedWire#100", - "path": [ - { - "x": 140.0, - "y": 365.0 - }, - { - "x": 140.0, - "y": 360.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QA1" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A1" - }, - "name": "unnamedWire#101", - "path": [ - { - "x": 140.0, - "y": 485.0 - }, - { - "x": 140.0, - "y": 480.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QA2" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A2" - }, - "name": "unnamedWire#102", - "path": [ - { - "x": 140.0, - "y": 495.0 - }, - { - "x": 140.0, - "y": 490.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QA3" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A3" - }, - "name": "unnamedWire#103", - "path": [ - { - "x": 140.0, - "y": 505.0 - }, - { - "x": 140.0, - "y": 500.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QA4" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "A4" - }, - "name": "unnamedWire#104", - "path": [ - { - "x": 140.0, - "y": 515.0 - }, - { - "x": 140.0, - "y": 510.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QA1" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A1" - }, - "name": "unnamedWire#105", - "path": [ - { - "x": 140.0, - "y": 635.0 - }, - { - "x": 140.0, - "y": 630.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QA2" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A2" - }, - "name": "unnamedWire#106", - "path": [ - { - "x": 140.0, - "y": 645.0 - }, - { - "x": 140.0, - "y": 640.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QA3" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A3" - }, - "name": "unnamedWire#107", - "path": [ - { - "x": 140.0, - "y": 655.0 - }, - { - "x": 140.0, - "y": 650.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QA4" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "A4" - }, - "name": "unnamedWire#108", - "path": [ - { - "x": 140.0, - "y": 665.0 - }, - { - "x": 140.0, - "y": 660.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QA1" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A1" - }, - "name": "unnamedWire#109", - "path": [ - { - "x": 140.0, - "y": 785.0 - }, - { - "x": 140.0, - "y": 780.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A4" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QA2" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A2" - }, - "name": "unnamedWire#110", - "path": [ - { - "x": 140.0, - "y": 795.0 - }, - { - "x": 140.0, - "y": 790.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QA3" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A3" - }, - "name": "unnamedWire#111", - "path": [ - { - "x": 140.0, - "y": 805.0 - }, - { - "x": 140.0, - "y": 800.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QA4" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "A4" - }, - "name": "unnamedWire#112", - "path": [ - { - "x": 140.0, - "y": 815.0 - }, - { - "x": 140.0, - "y": 810.0 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#1", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C1" - }, - "name": "unnamedWire#113", - "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": { - "compName": "GUIand41#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C2" - }, - "name": "unnamedWire#114", - "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": { - "compName": "GUIand41#1", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C3" - }, - "name": "unnamedWire#115", - "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": { - "compName": "GUIand41#1", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "C4" - }, - "name": "unnamedWire#116", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C1" - }, - "name": "unnamedWire#117", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C2" - }, - "name": "unnamedWire#118", - "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": { - "compName": "GUIandor414#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C3" - }, - "name": "unnamedWire#119", - "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": { - "compName": "_submodelinterface", - "pinName": "WE" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "B" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 15.0, - "y": 850.0 - }, - { - "x": 15.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "C4" - }, - "name": "unnamedWire#120", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C1" - }, - "name": "unnamedWire#121", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C2" - }, - "name": "unnamedWire#122", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C3" - }, - "name": "unnamedWire#123", - "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": { - "compName": "GUIandor414#1", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "C4" - }, - "name": "unnamedWire#124", - "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": { - "compName": "GUIandor414#2", - "pinName": "Y1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB1" - }, - "name": "unnamedWire#125", - "path": [ - { - "x": 330.0, - "y": 790.0 - }, - { - "x": 330.0, - "y": 450.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#2", - "pinName": "Y2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB2" - }, - "name": "unnamedWire#126", - "path": [ - { - "x": 335.0, - "y": 800.0 - }, - { - "x": 335.0, - "y": 550.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#2", - "pinName": "Y3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB3" - }, - "name": "unnamedWire#127", - "path": [ - { - "x": 340.0, - "y": 810.0 - }, - { - "x": 340.0, - "y": 650.0 - } - ] - }, - { - "pin1": { - "compName": "GUIandor414#2", - "pinName": "Y4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QB4" - }, - "name": "unnamedWire#128", - "path": [ - { - "x": 345.0, - "y": 820.0 - }, - { - "x": 345.0, - "y": 750.0 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#2", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C1" - }, - "name": "unnamedWire#129", - "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": { - "compName": "GUIand41#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "WE" - }, - "name": "unnamedWire#13", - "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": { - "compName": "GUIand41#2", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C2" - }, - "name": "unnamedWire#130", - "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": { - "compName": "GUIand41#2", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C3" - }, - "name": "unnamedWire#131", - "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": { - "compName": "GUIand41#2", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "C4" - }, - "name": "unnamedWire#132", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C1" - }, - "name": "unnamedWire#133", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C2" - }, - "name": "unnamedWire#134", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C3" - }, - "name": "unnamedWire#135", - "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": { - "compName": "GUIandor414#3", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "C4" - }, - "name": "unnamedWire#136", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C1" - }, - "name": "unnamedWire#137", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C2" - }, - "name": "unnamedWire#138", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C3" - }, - "name": "unnamedWire#139", - "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": { - "compName": "GUIand41#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "WE" - }, - "name": "unnamedWire#14", - "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": { - "compName": "GUIandor414#4", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "C4" - }, - "name": "unnamedWire#140", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA1" - }, - "name": "unnamedWire#141", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA2" - }, - "name": "unnamedWire#142", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA3" - }, - "name": "unnamedWire#143", - "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": { - "compName": "GUIandor414#5", - "pinName": "Y4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QA4" - }, - "name": "unnamedWire#144", - "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 - } - ] - }, - { - "pin1": { - "compName": "GUIand41#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "WE" - }, - "name": "unnamedWire#15", - "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": { - "compName": "GUIand41#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "WE" - }, - "name": "unnamedWire#16", - "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": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "A0" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B0" - }, - "pin2": { - "compName": "GUIdemux2#1", - "pinName": "S0" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 5.0, - "y": 450.0 - }, - { - "x": 5.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "A1" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 45.0, - "y": 345.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "B0" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 50.0, - "y": 355.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "B1" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 55.0, - "y": 365.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "A0" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "A1" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "B0" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "B1" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "GUIdemux2#1", - "pinName": "S1" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 10.0, - "y": 550.0 - }, - { - "x": 10.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B2" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "A0" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "A1" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "B0" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "B1" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "A0" - }, - "name": "unnamedWire#37", - "path": [ - { - "x": 40.0, - "y": 785.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "A1" - }, - "name": "unnamedWire#38", - "path": [ - { - "x": 45.0, - "y": 795.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "B0" - }, - "name": "unnamedWire#39", - "path": [ - { - "x": 50.0, - "y": 805.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y00" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "B1" - }, - "name": "unnamedWire#41", - "path": [ - { - "x": 55.0, - "y": 815.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 40.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B3" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "D1" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 60.0, - "y": 385.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "D2" - }, - "name": "unnamedWire#46", - "path": [ - { - "x": 65.0, - "y": 395.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "D3" - }, - "name": "unnamedWire#47", - "path": [ - { - "x": 70.0, - "y": 405.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#0", - "pinName": "D4" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 75.0, - "y": 415.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "D1" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y01" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "D2" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "D3" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#1", - "pinName": "D4" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#54", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "D1" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "D2" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "D3" - }, - "name": "unnamedWire#59", - "path": [] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y10" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#2", - "pinName": "D4" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#61", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#62", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#63", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#64", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "D1" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "D2" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "D3" - }, - "name": "unnamedWire#67", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUIram2#3", - "pinName": "D4" - }, - "name": "unnamedWire#68", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#69", - "path": [ - { - "x": 60.0, - "y": 950.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#1", - "pinName": "Y11" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#70", - "path": [ - { - "x": 65.0, - "y": 1050.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#71", - "path": [ - { - "x": 70.0, - "y": 1150.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#72", - "path": [ - { - "x": 75.0, - "y": 1250.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y00" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "B" - }, - "name": "unnamedWire#73", - "path": [ - { - "x": 135.0, - "y": 50.0 - }, - { - "x": 135.0, - "y": 370.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y01" - }, - "pin2": { - "compName": "GUIandor414#3", - "pinName": "B" - }, - "name": "unnamedWire#74", - "path": [ - { - "x": 130.0, - "y": 60.0 - }, - { - "x": 130.0, - "y": 520.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y10" - }, - "pin2": { - "compName": "GUIandor414#4", - "pinName": "B" - }, - "name": "unnamedWire#75", - "path": [ - { - "x": 125.0, - "y": 70.0 - }, - { - "x": 125.0, - "y": 670.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdemux2#0", - "pinName": "Y11" - }, - "pin2": { - "compName": "GUIandor414#5", - "pinName": "B" - }, - "name": "unnamedWire#76", - "path": [ - { - "x": 120.0, - "y": 80.0 - }, - { - "x": 120.0, - "y": 820.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "B" - }, - "name": "unnamedWire#77", - "path": [ - { - "x": 230.0, - "y": 420.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "B" - }, - "name": "unnamedWire#78", - "path": [ - { - "x": 225.0, - "y": 570.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "B" - }, - "name": "unnamedWire#79", - "path": [ - { - "x": 220.0, - "y": 720.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A1" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "B" - }, - "name": "unnamedWire#80", - "path": [ - { - "x": 215.0, - "y": 870.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QB1" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A1" - }, - "name": "unnamedWire#81", - "path": [ - { - "x": 140.0, - "y": 375.0 - }, - { - "x": 140.0, - "y": 380.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QB2" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A2" - }, - "name": "unnamedWire#82", - "path": [ - { - "x": 140.0, - "y": 385.0 - }, - { - "x": 140.0, - "y": 390.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QB3" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A3" - }, - "name": "unnamedWire#83", - "path": [ - { - "x": 140.0, - "y": 395.0 - }, - { - "x": 140.0, - "y": 400.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QB4" - }, - "pin2": { - "compName": "GUIand41#1", - "pinName": "A4" - }, - "name": "unnamedWire#84", - "path": [ - { - "x": 140.0, - "y": 405.0 - }, - { - "x": 140.0, - "y": 410.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QB1" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A1" - }, - "name": "unnamedWire#85", - "path": [ - { - "x": 140.0, - "y": 525.0 - }, - { - "x": 140.0, - "y": 530.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QB2" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A2" - }, - "name": "unnamedWire#86", - "path": [ - { - "x": 140.0, - "y": 535.0 - }, - { - "x": 140.0, - "y": 540.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QB3" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A3" - }, - "name": "unnamedWire#87", - "path": [ - { - "x": 140.0, - "y": 545.0 - }, - { - "x": 140.0, - "y": 550.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#1", - "pinName": "QB4" - }, - "pin2": { - "compName": "GUIandor414#0", - "pinName": "A4" - }, - "name": "unnamedWire#88", - "path": [ - { - "x": 140.0, - "y": 555.0 - }, - { - "x": 140.0, - "y": 560.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QB1" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A1" - }, - "name": "unnamedWire#89", - "path": [ - { - "x": 140.0, - "y": 675.0 - }, - { - "x": 140.0, - "y": 680.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIand41#0", - "pinName": "A2" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QB2" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A2" - }, - "name": "unnamedWire#90", - "path": [ - { - "x": 140.0, - "y": 685.0 - }, - { - "x": 140.0, - "y": 690.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QB3" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A3" - }, - "name": "unnamedWire#91", - "path": [ - { - "x": 140.0, - "y": 695.0 - }, - { - "x": 140.0, - "y": 700.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#2", - "pinName": "QB4" - }, - "pin2": { - "compName": "GUIandor414#1", - "pinName": "A4" - }, - "name": "unnamedWire#92", - "path": [ - { - "x": 140.0, - "y": 705.0 - }, - { - "x": 140.0, - "y": 710.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QB1" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A1" - }, - "name": "unnamedWire#93", - "path": [ - { - "x": 140.0, - "y": 825.0 - }, - { - "x": 140.0, - "y": 830.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QB2" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A2" - }, - "name": "unnamedWire#94", - "path": [ - { - "x": 140.0, - "y": 835.0 - }, - { - "x": 140.0, - "y": 840.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QB3" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A3" - }, - "name": "unnamedWire#95", - "path": [ - { - "x": 140.0, - "y": 845.0 - }, - { - "x": 140.0, - "y": 850.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#3", - "pinName": "QB4" - }, - "pin2": { - "compName": "GUIandor414#2", - "pinName": "A4" - }, - "name": "unnamedWire#96", - "path": [ - { - "x": 140.0, - "y": 855.0 - }, - { - "x": 140.0, - "y": 860.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QA1" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A1" - }, - "name": "unnamedWire#97", - "path": [ - { - "x": 140.0, - "y": 335.0 - }, - { - "x": 140.0, - "y": 330.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QA2" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A2" - }, - "name": "unnamedWire#98", - "path": [ - { - "x": 140.0, - "y": 345.0 - }, - { - "x": 140.0, - "y": 340.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram2#0", - "pinName": "QA3" - }, - "pin2": { - "compName": "GUIand41#2", - "pinName": "A3" - }, - "name": "unnamedWire#99", - "path": [ - { - "x": 140.0, - "y": 355.0 - }, - { - "x": 140.0, - "y": 350.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIram4", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": { - "c00": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#0" - } - }, - "c11": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#3" - } - }, - "c10": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#2" - } - }, - "c01": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#1" - } - }, - "c1000": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#0", - "prefix": "c10" - } - }, - "c1011": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#3", - "prefix": "c10" - } - }, - "c1110": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#2", - "prefix": "c11" - } - }, - "c1001": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#1", - "prefix": "c10" - } - }, - "c1100": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#0", - "prefix": "c11" - } - }, - "c1111": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#3", - "prefix": "c11" - } - }, - "c0000": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#0", - "prefix": "c00" - } - }, - "c0011": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#3", - "prefix": "c00" - } - }, - "c0110": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#2", - "prefix": "c01" - } - }, - "c0010": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#2", - "prefix": "c00" - } - }, - "c1010": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#2", - "prefix": "c10" - } - }, - "c0101": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#1", - "prefix": "c01" - } - }, - "c0001": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#1", - "prefix": "c00" - } - }, - "c0100": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#0", - "prefix": "c01" - } - }, - "c0111": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#3", - "prefix": "c01" - } - }, - "c1101": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram2#1", - "prefix": "c11" - } - } - }, - "atomicHighLevelStates": { - "q": { - "id": "bitVectorSplitting", - "params": { - "vectorPartTargets": [ - "c11.q", - "c10.q", - "c01.q", - "c00.q" - ], - "vectorPartLengthes": [ - 16, - 16, - 16, - 16 - ] - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel1.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel1.json deleted file mode 100644 index 093657b9..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel1.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "width": 35.0, - "height": 40.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "I2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "S1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "S2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 35.0, - "y": 30.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 35.0, - "y": 55.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 60.0, - "y": 40.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S1" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 25.0, - "y": 12.5 - }, - { - "x": 25.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S2" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 15.0, - "y": 37.5 - }, - { - "x": 15.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#10" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 25.0, - "y": 62.5 - }, - { - "x": 25.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I2" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 15.0, - "y": 87.5 - }, - { - "x": 15.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#8" - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#9" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIsel1", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel2_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel2_4.json deleted file mode 100644 index a9234a2e..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel2_4.json +++ /dev/null @@ -1,863 +0,0 @@ -{ - "width": 35.0, - "height": 100.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "B2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "B3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 95.0 - }, - "name": "B4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "SA", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "SB", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 20.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 20.0, - "y": 52.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#10", - "pos": { - "x": 65.0, - "y": 52.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#11", - "pos": { - "x": 65.0, - "y": 77.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 20.0, - "y": 102.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 20.0, - "y": 152.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 20.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 20.0, - "y": 77.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 20.0, - "y": 127.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 20.0, - "y": 177.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#8", - "pos": { - "x": 65.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#9", - "pos": { - "x": 65.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 6.5, - "y": 16.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 6.5, - "y": 66.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 6.5, - "y": 116.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 4.0, - "y": 41.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 4.0, - "y": 91.5 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 4.0, - "y": 141.5 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 15.0, - "y": 62.5 - }, - { - "x": 15.0, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 17.5, - "y": 87.5 - }, - { - "x": 17.5, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#10" - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#11" - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#12" - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#13" - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#14" - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 7.5, - "y": 167.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#16" - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#17" - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#18" - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#19" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 17.5, - "y": 112.5 - }, - { - "x": 17.5, - "y": 107.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#20" - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 5.0, - "y": 192.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "A" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 42.5, - "y": 12.5 - }, - { - "x": 42.5, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "B" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 45.0, - "y": 37.5 - }, - { - "x": 45.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "A" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 47.5, - "y": 62.5 - }, - { - "x": 47.5, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "B" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 50.0, - "y": 87.5 - }, - { - "x": 50.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "A" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 52.5, - "y": 112.5 - }, - { - "x": 52.5, - "y": 57.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "B" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 55.0, - "y": 137.5 - }, - { - "x": 55.0, - "y": 67.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "A" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 57.5, - "y": 162.5 - }, - { - "x": 57.5, - "y": 82.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "B" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 60.0, - "y": 187.5 - }, - { - "x": 60.0, - "y": 92.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 17.5, - "y": 137.5 - }, - { - "x": 17.5, - "y": 157.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#9", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#10", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#11", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 10.0, - "y": 162.5 - }, - { - "x": 10.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B2" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 12.5, - "y": 187.5 - }, - { - "x": 12.5, - "y": 82.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B3" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 15.0, - "y": 212.5 - }, - { - "x": 15.0, - "y": 132.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B4" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 10.0, - "y": 237.5 - }, - { - "x": 10.0, - "y": 182.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "SA" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#8" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "SB" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#9" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIsel2_4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel3_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel3_4.json deleted file mode 100644 index 5951bdc5..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIsel3_4.json +++ /dev/null @@ -1,937 +0,0 @@ -{ - "width": 35.0, - "height": 150.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "B2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 95.0 - }, - "name": "B3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 105.0 - }, - "name": "B4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 115.0 - }, - "name": "C1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 125.0 - }, - "name": "C2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 135.0 - }, - "name": "C3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 145.0 - }, - "name": "C4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "SA", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "SB", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "SC", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 50.0, - "y": 570.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 50.0, - "y": 620.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 50.0, - "y": 670.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 50.0, - "y": 720.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 152.5, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 152.5, - "y": 65.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 152.5, - "y": 115.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 152.5, - "y": 165.0 - }, - "params": 1 - }, - { - "id": "GUInot4", - "name": "GUInot4#0", - "pos": { - "x": 75.0, - "y": 250.0 - } - }, - { - "id": "GUIsel2_4", - "name": "GUIsel2_4#0", - "pos": { - "x": 35.0, - "y": 250.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 29.0, - "y": 584.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 29.0, - "y": 634.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 29.0, - "y": 684.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "SA" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "SA" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 25.0, - "y": 25.0 - }, - { - "x": 25.0, - "y": 255.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "SB" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "SB" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 20.0, - "y": 75.0 - }, - { - "x": 20.0, - "y": 265.0 - } - ] - }, - { - "pin1": { - "compName": "GUIsel2_4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUInot4#0", - "pinName": "A1" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel2_4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUInot4#0", - "pinName": "A2" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel2_4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUInot4#0", - "pinName": "A3" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel2_4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUInot4#0", - "pinName": "A4" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "SC" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 30.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 30.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 30.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A1" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 15.0, - "y": 175.0 - }, - { - "x": 15.0, - "y": 275.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 30.0, - "y": 735.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C1" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C2" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C3" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C4" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "GUInot4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 115.0, - "y": 255.0 - }, - { - "x": 115.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "GUInot4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 120.0, - "y": 265.0 - }, - { - "x": 120.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "GUInot4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 125.0, - "y": 275.0 - }, - { - "x": 125.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "GUInot4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 130.0, - "y": 285.0 - }, - { - "x": 130.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 135.0, - "y": 580.0 - }, - { - "x": 135.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A2" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 10.0, - "y": 225.0 - }, - { - "x": 10.0, - "y": 285.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 140.0, - "y": 630.0 - }, - { - "x": 140.0, - "y": 80.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 145.0, - "y": 680.0 - }, - { - "x": 145.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#32", - "path": [ - { - "x": 150.0, - "y": 730.0 - }, - { - "x": 150.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A3" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 5.0, - "y": 275.0 - }, - { - "x": 5.0, - "y": 295.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A4" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 5.0, - "y": 325.0 - }, - { - "x": 5.0, - "y": 305.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B1" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 10.0, - "y": 375.0 - }, - { - "x": 10.0, - "y": 315.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B2" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B2" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 15.0, - "y": 425.0 - }, - { - "x": 15.0, - "y": 325.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B3" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B3" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 20.0, - "y": 475.0 - }, - { - "x": 20.0, - "y": 335.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B4" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B4" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 25.0, - "y": 525.0 - }, - { - "x": 25.0, - "y": 345.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIsel3_4", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIxor.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIxor.json deleted file mode 100644 index 48c22e59..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/GUIxor.json +++ /dev/null @@ -1,285 +0,0 @@ -{ - "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" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 7.5, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 35.0, - "y": 2.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 35.0, - "y": 27.5 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 62.5, - "y": 15.0 - }, - "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": 29.0, - "y": 24.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#10" - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#11" - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 5.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 5.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#4" - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 30.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 30.0, - "y": 32.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 5.0, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 5.0, - "y": 42.5 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#9" - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIxor", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/_rsLatch.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/_rsLatch.json new file mode 100644 index 00000000..7a0b4b2c --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/_rsLatch.json @@ -0,0 +1,253 @@ +{ + "width": 35.0, + "height": 20.0, + "interfacePins": [ + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "_Q", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "_R", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "_S", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 10.0, + "y": 7.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 40.0, + "y": 12.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 34.0, + "y": 16.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 64.0, + "y": 36.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_Q" + }, + "name": "_q", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "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": { + "compName": "_submodelinterface", + "pinName": "_S" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_R" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 35.0, + "y": 37.5 + }, + { + "x": 35.0, + "y": 27.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 65.0, + "y": 22.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 65.0, + "y": 42.5 + }, + { + "x": 5.0, + "y": 42.5 + }, + { + "x": 5.0, + "y": 22.5 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "_rsLatch", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q": { + "id": "wireForcing", + "params": { + "wiresToForce": [ + "q" + ], + "wiresToForceInverted": [ + "_q" + ] + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901.json new file mode 100644 index 00000000..70fbac01 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901.json @@ -0,0 +1,3708 @@ +{ + "width": 35.0, + "height": 270.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 155.0 + }, + "name": "A0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 165.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 175.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 185.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 195.0 + }, + "name": "B0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 205.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 215.0 + }, + "name": "B2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 225.0 + }, + "name": "B3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 95.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 105.0 + }, + "name": "Cn", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "Cn+4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 115.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 125.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 135.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 145.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 75.0 + }, + "name": "F3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "F\u003d0", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "I0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "I1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "I2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "I3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "I4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "I5", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I6", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I7", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "I8", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 65.0 + }, + "name": "OVR", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 255.0 + }, + "name": "Qn", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 35.0, + "y": 115.0 + }, + "name": "Qn+3", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 0.0, + "y": 235.0 + }, + "name": "RAMn", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 35.0, + "y": 95.0 + }, + "name": "RAMn+3", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.1, + "submodel": { + "components": [ + { + "id": "Am2901ALUInclSourceDecodeInclFunctionDecode", + "name": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pos": { + "x": 240.0, + "y": 2110.0 + } + }, + { + "id": "Am2901DestDecode", + "name": "Am2901DestDecode#0", + "pos": { + "x": 15.0, + "y": 45.0 + } + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 160.0, + "y": 75.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 320.0, + "y": 440.0 + }, + "params": 1 + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#0", + "pos": { + "x": 255.0, + "y": 2485.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#1", + "pos": { + "x": 270.0, + "y": 2435.0 + }, + "params": { + "logicWidth": 1, + "orientation": "DOWN" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#3", + "pos": { + "x": 300.0, + "y": 2515.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#4", + "pos": { + "x": 300.0, + "y": 2310.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT_ALT" + } + }, + { + "id": "and", + "name": "and#0", + "pos": { + "x": 190.0, + "y": 65.0 + } + }, + { + "id": "dff4", + "name": "dff4#0", + "pos": { + "x": 90.0, + "y": 2490.0 + } + }, + { + "id": "dlatch4", + "name": "dlatch4#0", + "pos": { + "x": 160.0, + "y": 2220.0 + } + }, + { + "id": "dlatch4", + "name": "dlatch4#1", + "pos": { + "x": 160.0, + "y": 2275.0 + } + }, + { + "id": "mux1_4", + "name": "mux1_4#0", + "pos": { + "x": 275.0, + "y": 135.0 + } + }, + { + "id": "or4", + "name": "or4#0", + "pos": { + "x": 275.0, + "y": 445.0 + } + }, + { + "id": "ram4", + "name": "ram4#0", + "pos": { + "x": 95.0, + "y": 2220.0 + } + }, + { + "id": "sel3_4", + "name": "sel3_4#0", + "pos": { + "x": 45.0, + "y": 2310.0 + } + }, + { + "id": "sel3_4", + "name": "sel3_4#1", + "pos": { + "x": 45.0, + "y": 2510.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 154.0, + "y": 949.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 154.0, + "y": 89.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 234.0, + "y": 2254.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 129.0, + "y": 2494.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 134.0, + "y": 2504.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 139.0, + "y": 2514.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 144.0, + "y": 2524.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 219.0, + "y": 2494.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 234.0, + "y": 2524.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 34.0, + "y": 2624.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 39.0, + "y": 2634.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 279.0, + "y": 2114.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 154.0, + "y": 2264.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 294.0, + "y": 2144.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 334.0, + "y": 2319.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 254.0, + "y": 2089.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 259.0, + "y": 2094.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 264.0, + "y": 2099.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 269.0, + "y": 2104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 254.0, + "y": 449.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 259.0, + "y": 459.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#28", + "pos": { + "x": 264.0, + "y": 469.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#29", + "pos": { + "x": 269.0, + "y": 479.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 154.0, + "y": 2319.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#30", + "pos": { + "x": 9.0, + "y": 2354.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#31", + "pos": { + "x": 14.0, + "y": 2364.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#32", + "pos": { + "x": 19.0, + "y": 2374.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#33", + "pos": { + "x": 14.0, + "y": 2394.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#34", + "pos": { + "x": 19.0, + "y": 2404.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#35", + "pos": { + "x": 24.0, + "y": 2414.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#36", + "pos": { + "x": 9.0, + "y": 2384.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#37", + "pos": { + "x": 14.0, + "y": 2424.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#38", + "pos": { + "x": 19.0, + "y": 2434.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#39", + "pos": { + "x": 24.0, + "y": 2444.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 39.0, + "y": 2314.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#40", + "pos": { + "x": 314.0, + "y": 449.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#41", + "pos": { + "x": 4.0, + "y": 2549.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#42", + "pos": { + "x": 4.0, + "y": 2349.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#43", + "pos": { + "x": 339.0, + "y": 2524.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#44", + "pos": { + "x": 29.0, + "y": 2469.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#45", + "pos": { + "x": 264.0, + "y": 2469.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#46", + "pos": { + "x": 39.0, + "y": 2474.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#47", + "pos": { + "x": 309.0, + "y": 2474.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 34.0, + "y": 2324.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 29.0, + "y": 2334.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 219.0, + "y": 2224.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 224.0, + "y": 2234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 229.0, + "y": 2244.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I8" + }, + "pin2": { + "compName": "Am2901DestDecode#0", + "pinName": "I8" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I7" + }, + "pin2": { + "compName": "Am2901DestDecode#0", + "pinName": "I7" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 5.0, + "y": 150.0 + }, + { + "x": 5.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "F3" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#100", + "path": [ + { + "x": 290.0, + "y": 2135.0 + }, + { + "x": 290.0, + "y": 2100.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#101", + "path": [ + { + "x": 295.0, + "y": 2105.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#102", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#103", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "name": "unnamedWire#104", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "name": "unnamedWire#105", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "or4#0", + "pinName": "A1" + }, + "name": "unnamedWire#106", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "or4#0", + "pinName": "A2" + }, + "name": "unnamedWire#107", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "or4#0", + "pinName": "A3" + }, + "name": "unnamedWire#108", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "or4#0", + "pinName": "A4" + }, + "name": "unnamedWire#109", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 155.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#110", + "path": [ + { + "x": 255.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#111", + "path": [ + { + "x": 260.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#112", + "path": [ + { + "x": 265.0, + "y": 210.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#113", + "path": [ + { + "x": 270.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#114", + "path": [ + { + "x": 10.0, + "y": 2090.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "name": "unnamedWire#115", + "path": [ + { + "x": 15.0, + "y": 2095.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "name": "unnamedWire#116", + "path": [ + { + "x": 20.0, + "y": 2100.0 + } + ] + }, + { + "pin1": { + "compName": "sel3_4#1", + "pinName": "A1" + }, + "pin2": { + "compName": "WireCrossPoint#41", + "pinName": "" + }, + "name": "unnamedWire#117", + "path": [ + { + "x": 5.0, + "y": 2545.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A2" + }, + "name": "unnamedWire#118", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A3" + }, + "name": "unnamedWire#119", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A4" + }, + "name": "unnamedWire#120", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "name": "unnamedWire#121", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#34", + "pinName": "" + }, + "name": "unnamedWire#122", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#35", + "pinName": "" + }, + "name": "unnamedWire#123", + "path": [ + { + "x": 25.0, + "y": 2105.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#36", + "pinName": "" + }, + "name": "unnamedWire#124", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#36", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B1" + }, + "name": "unnamedWire#125", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B2" + }, + "name": "unnamedWire#126", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#34", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B3" + }, + "name": "unnamedWire#127", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#35", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B4" + }, + "name": "unnamedWire#128", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#37", + "pinName": "" + }, + "name": "unnamedWire#129", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#34", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#38", + "pinName": "" + }, + "name": "unnamedWire#130", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#35", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#39", + "pinName": "" + }, + "name": "unnamedWire#131", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#37", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C1" + }, + "name": "unnamedWire#132", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#38", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C2" + }, + "name": "unnamedWire#133", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#39", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C3" + }, + "name": "unnamedWire#134", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#3", + "pinName": "IN" + }, + "name": "unnamedWire#135", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#36", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "B1" + }, + "name": "unnamedWire#136", + "path": [ + { + "x": 10.0, + "y": 2585.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#37", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "B2" + }, + "name": "unnamedWire#137", + "path": [ + { + "x": 15.0, + "y": 2595.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#38", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "B3" + }, + "name": "unnamedWire#138", + "path": [ + { + "x": 20.0, + "y": 2605.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#39", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "B4" + }, + "name": "unnamedWire#139", + "path": [ + { + "x": 25.0, + "y": 2615.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "C" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "D1" + }, + "name": "unnamedWire#140", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "D2" + }, + "name": "unnamedWire#141", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "D3" + }, + "name": "unnamedWire#142", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "D4" + }, + "name": "unnamedWire#143", + "path": [] + }, + { + "pin1": { + "compName": "Am2901DestDecode#0", + "pinName": "RAMWE" + }, + "pin2": { + "compName": "and#0", + "pinName": "A" + }, + "name": "unnamedWire#144", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "and#0", + "pinName": "B" + }, + "name": "unnamedWire#145" + }, + { + "pin1": { + "compName": "and#0", + "pinName": "Y" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "WE" + }, + "name": "unnamedWire#146", + "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": { + "compName": "Am2901DestDecode#0", + "pinName": "QWE" + }, + "pin2": { + "compName": "dff4#0", + "pinName": "WE" + }, + "name": "unnamedWire#147", + "path": [ + { + "x": 85.0, + "y": 100.0 + }, + { + "x": 85.0, + "y": 2505.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901DestDecode#0", + "pinName": "YF" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "S0" + }, + "name": "unnamedWire#148", + "path": [ + { + "x": 70.0, + "y": 80.0 + }, + { + "x": 70.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "mux1_4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#149", + "path": [ + { + "x": 335.0, + "y": 140.0 + }, + { + "x": 335.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "mux1_4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#150", + "path": [] + }, + { + "pin1": { + "compName": "mux1_4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#151", + "path": [ + { + "x": 335.0, + "y": 160.0 + }, + { + "x": 335.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "mux1_4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#152", + "path": [ + { + "x": 325.0, + "y": 170.0 + }, + { + "x": 325.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "or4#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#40", + "pinName": "" + }, + "name": "unnamedWire#153", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#40", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#154", + "path": [ + { + "x": 315.0, + "y": 445.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#40", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#155", + "path": [ + { + "x": 315.0, + "y": 455.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F\u003d0" + }, + "name": "unnamedWire#156", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#3", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#43", + "pinName": "" + }, + "name": "unnamedWire#157", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#41", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#0", + "pinName": "OUT" + }, + "name": "unnamedWire#158", + "path": [ + { + "x": 5.0, + "y": 2690.0 + }, + { + "x": 280.0, + "y": 2690.0 + }, + { + "x": 280.0, + "y": 2495.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#1", + "pinName": "IN" + }, + "name": "unnamedWire#159", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "C" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A1" + }, + "name": "unnamedWire#160", + "path": [ + { + "x": 5.0, + "y": 2345.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#1", + "pinName": "OUT" + }, + "name": "unnamedWire#161", + "path": [ + { + "x": 5.0, + "y": 2465.0 + }, + { + "x": 280.0, + "y": 2465.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F3" + }, + "name": "unnamedWire#162", + "path": [ + { + "x": 330.0, + "y": 2145.0 + }, + { + "x": 330.0, + "y": 750.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Qn+3" + }, + "pin2": { + "compName": "WireCrossPoint#43", + "pinName": "" + }, + "name": "unnamedWire#163", + "path": [ + { + "x": 340.0, + "y": 1150.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#164", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#1", + "pinName": "EN" + }, + "name": "unnamedWire#165", + "path": [ + { + "x": 290.0, + "y": 2470.0 + }, + { + "x": 290.0, + "y": 2445.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#0", + "pinName": "EN" + }, + "name": "unnamedWire#166", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "name": "unnamedWire#167", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#168", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#47", + "pinName": "" + }, + "name": "unnamedWire#169", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "dff4#0", + "pinName": "C" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 155.0, + "y": 2485.0 + }, + { + "x": 80.0, + "y": 2485.0 + }, + { + "x": 80.0, + "y": 2495.0 + } + ] + }, + { + "pin1": { + "compName": "TriStateBuffer#3", + "pinName": "EN" + }, + "pin2": { + "compName": "WireCrossPoint#47", + "pinName": "" + }, + "name": "unnamedWire#170", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#4", + "pinName": "IN" + }, + "name": "unnamedWire#171", + "path": [ + { + "x": 295.0, + "y": 2320.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901DestDecode#0", + "pinName": "LSH" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 55.0, + "y": 90.0 + }, + { + "x": 55.0, + "y": 125.0 + }, + { + "x": 40.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901DestDecode#0", + "pinName": "NSH" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 60.0, + "y": 50.0 + }, + { + "x": 60.0, + "y": 120.0 + }, + { + "x": 35.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I6" + }, + "pin2": { + "compName": "Am2901DestDecode#0", + "pinName": "I6" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 10.0, + "y": 250.0 + }, + { + "x": 10.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901DestDecode#0", + "pinName": "RSH" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 65.0, + "y": 60.0 + }, + { + "x": 65.0, + "y": 115.0 + }, + { + "x": 30.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "SA" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "SB" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "SC" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "SA" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 40.0, + "y": 2515.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "SB" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 35.0, + "y": 2525.0 + } + ] + }, + { + "pin1": { + "compName": "sel3_4#1", + "pinName": "SC" + }, + "pin2": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 30.0, + "y": 2535.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A0" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "A0" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 80.0, + "y": 1550.0 + }, + { + "x": 80.0, + "y": 2225.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "A1" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 75.0, + "y": 1650.0 + }, + { + "x": 75.0, + "y": 2235.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "A2" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 70.0, + "y": 1750.0 + }, + { + "x": 70.0, + "y": 2245.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I5" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "I5" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 130.0, + "y": 350.0 + }, + { + "x": 130.0, + "y": 2115.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "A3" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 65.0, + "y": 1850.0 + }, + { + "x": 65.0, + "y": 2255.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B0" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "B0" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 60.0, + "y": 1950.0 + }, + { + "x": 60.0, + "y": 2265.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "B1" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 55.0, + "y": 2050.0 + }, + { + "x": 55.0, + "y": 2275.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B2" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "B2" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 50.0, + "y": 2150.0 + }, + { + "x": 50.0, + "y": 2285.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B3" + }, + "pin2": { + "compName": "ram4#0", + "pinName": "B3" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 45.0, + "y": 2250.0 + }, + { + "x": 45.0, + "y": 2295.0 + } + ] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QA1" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D1" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QA2" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D2" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QA3" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D3" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QA4" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D4" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QB1" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D1" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 150.0, + "y": 2265.0 + }, + { + "x": 150.0, + "y": 2280.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I4" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "I4" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 125.0, + "y": 450.0 + }, + { + "x": 125.0, + "y": 2125.0 + } + ] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QB2" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D2" + }, + "name": "unnamedWire#40", + "path": [ + { + "x": 145.0, + "y": 2275.0 + }, + { + "x": 145.0, + "y": 2290.0 + } + ] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QB3" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D3" + }, + "name": "unnamedWire#41", + "path": [ + { + "x": 140.0, + "y": 2285.0 + }, + { + "x": 140.0, + "y": 2300.0 + } + ] + }, + { + "pin1": { + "compName": "ram4#0", + "pinName": "QB4" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D4" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 135.0, + "y": 2295.0 + }, + { + "x": 135.0, + "y": 2310.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Cn" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "Cn" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 100.0, + "y": 1050.0 + }, + { + "x": 100.0, + "y": 2175.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "D1" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 180.0, + "y": 1150.0 + }, + { + "x": 180.0, + "y": 2185.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "D2" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 175.0, + "y": 1250.0 + }, + { + "x": 175.0, + "y": 2195.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "D3" + }, + "name": "unnamedWire#46", + "path": [ + { + "x": 170.0, + "y": 1350.0 + }, + { + "x": 170.0, + "y": 2205.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "D4" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 165.0, + "y": 1450.0 + }, + { + "x": 165.0, + "y": 2215.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I3" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "I3" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 120.0, + "y": 550.0 + }, + { + "x": 120.0, + "y": 2135.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#52", + "path": [ + { + "x": 220.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#53", + "path": [ + { + "x": 225.0, + "y": 160.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 230.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "mux1_4#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#55", + "path": [ + { + "x": 235.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "A1" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "A2" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "A3" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "A4" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I2" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "I2" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 115.0, + "y": 650.0 + }, + { + "x": 115.0, + "y": 2145.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q1" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "B1" + }, + "name": "unnamedWire#60", + "path": [ + { + "x": 200.0, + "y": 2280.0 + }, + { + "x": 200.0, + "y": 2265.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q2" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "B2" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 205.0, + "y": 2290.0 + }, + { + "x": 205.0, + "y": 2275.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q3" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "B3" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 210.0, + "y": 2300.0 + }, + { + "x": 210.0, + "y": 2285.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q4" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "B4" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 215.0, + "y": 2310.0 + }, + { + "x": 215.0, + "y": 2295.0 + } + ] + }, + { + "pin1": { + "compName": "dff4#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "dff4#0", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "dff4#0", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "dff4#0", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#0", + "pinName": "IN" + }, + "name": "unnamedWire#69", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "I1" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 110.0, + "y": 750.0 + }, + { + "x": 110.0, + "y": 2155.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#70", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Qn" + }, + "pin2": { + "compName": "WireCrossPoint#41", + "pinName": "" + }, + "name": "unnamedWire#71", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#72", + "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": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#73", + "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": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "C1" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "C2" + }, + "name": "unnamedWire#75", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "C3" + }, + "name": "unnamedWire#76", + "path": [ + { + "x": 145.0, + "y": 2680.0 + }, + { + "x": 40.0, + "y": 2680.0 + }, + { + "x": 40.0, + "y": 2645.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#43", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "C4" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "RAMn" + }, + "pin2": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "name": "unnamedWire#78", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "A2" + }, + "name": "unnamedWire#79", + "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": { + "compName": "_submodelinterface", + "pinName": "I0" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "I0" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 850.0 + }, + { + "x": 105.0, + "y": 2165.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "Q1" + }, + "name": "unnamedWire#80", + "path": [ + { + "x": 220.0, + "y": 2305.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "Q2" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 225.0, + "y": 2505.0 + }, + { + "x": 225.0, + "y": 2315.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "Q3" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 230.0, + "y": 2515.0 + }, + { + "x": 230.0, + "y": 2325.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "Q4" + }, + "name": "unnamedWire#83", + "path": [ + { + "x": 235.0, + "y": 2335.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "A3" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 35.0, + "y": 2565.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#1", + "pinName": "A4" + }, + "name": "unnamedWire#85", + "path": [ + { + "x": 40.0, + "y": 2575.0 + } + ] + }, + { + "pin1": { + "compName": "sel3_4#1", + "pinName": "Y1" + }, + "pin2": { + "compName": "dff4#0", + "pinName": "D1" + }, + "name": "unnamedWire#86", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "dff4#0", + "pinName": "D2" + }, + "name": "unnamedWire#87", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#1", + "pinName": "Y3" + }, + "pin2": { + "compName": "dff4#0", + "pinName": "D3" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "dff4#0", + "pinName": "D4" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "Cn+4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Cn+4" + }, + "name": "unnamedWire#90", + "path": [ + { + "x": 315.0, + "y": 2155.0 + }, + { + "x": 315.0, + "y": 550.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "OVR" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "OVR" + }, + "name": "unnamedWire#91", + "path": [ + { + "x": 320.0, + "y": 2165.0 + }, + { + "x": 320.0, + "y": 650.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "F1" + }, + "pin2": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "F4" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#93", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#4", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#47", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#4", + "pinName": "EN" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C4" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RAMn+3" + }, + "name": "unnamedWire#97", + "path": [ + { + "x": 335.0, + "y": 950.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#98", + "path": [ + { + "x": 280.0, + "y": 2090.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclSourceDecodeInclFunctionDecode#0", + "pinName": "F2" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#99", + "path": [ + { + "x": 285.0, + "y": 2125.0 + }, + { + "x": 285.0, + "y": 2095.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": { + "qreg": { + "id": "delegating", + "params": { + "delegateTarget": "dff4#0" + } + }, + "regs": { + "id": "delegating", + "params": { + "delegateTarget": "ram4#0" + } + } + }, + "atomicHighLevelStates": {} + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUFuncDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUFuncDecode.json new file mode 100644 index 00000000..ff3e377c --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUFuncDecode.json @@ -0,0 +1,725 @@ +{ + "width": 35.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "CinE", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "FN", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "I5", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "L", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "RN", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "SBE", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "SN", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.25, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 15.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 15.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 55.0, + "y": 45.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 55.0, + "y": 70.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 100.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "and", + "name": "and#0", + "pos": { + "x": 100.0, + "y": 135.0 + } + }, + { + "id": "nand3", + "name": "nand3#0", + "pos": { + "x": 55.0, + "y": 10.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 4.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 4.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 39.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 4.0, + "y": 44.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 9.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 9.0, + "y": 54.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 9.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 9.0, + "y": 84.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 49.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 49.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 39.0, + "y": 19.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I5" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 5.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SN" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 10.0, + "y": 105.0 + }, + { + "x": 135.0, + "y": 105.0 + }, + { + "x": 135.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I3" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 50.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RN" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 50.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "nand3#0", + "pinName": "B" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 50.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CinE" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 40.0, + "y": 5.0 + }, + { + "x": 115.0, + "y": 5.0 + }, + { + "x": 115.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "nand3#0", + "pinName": "C" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "and#0", + "pinName": "B" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 40.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "nand3#0", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#27" + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#28" + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "and#0", + "pinName": "A" + }, + "name": "unnamedWire#29" + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "L" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "and#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SBE" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 45.0, + "y": 45.0 + }, + { + "x": 45.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "FN" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 5.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "nand3#0", + "pinName": "A" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 10.0, + "y": 40.0 + }, + { + "x": 45.0, + "y": 40.0 + }, + { + "x": 45.0, + "y": 15.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901ALUFuncDecode", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclDecode.json new file mode 100644 index 00000000..314cfc23 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclDecode.json @@ -0,0 +1,1541 @@ +{ + "width": 35.0, + "height": 120.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "Cn", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "Cn+4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "F1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "F2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "F3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "F4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "I5", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "OVR", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "R1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "R2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "R3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "R4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "S1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 95.0 + }, + "name": "S2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 105.0 + }, + "name": "S3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 115.0 + }, + "name": "S4", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.25, + "submodel": { + "components": [ + { + "id": "Am2901ALUFuncDecode", + "name": "Am2901ALUFuncDecode#0", + "pos": { + "x": 20.0, + "y": 2.5 + } + }, + { + "id": "Am2901ALUOneBit", + "name": "Am2901ALUOneBit#0", + "pos": { + "x": 45.0, + "y": 80.0 + } + }, + { + "id": "Am2901ALUOneBit", + "name": "Am2901ALUOneBit#1", + "pos": { + "x": 45.0, + "y": 180.0 + } + }, + { + "id": "Am2901ALUOneBit", + "name": "Am2901ALUOneBit#2", + "pos": { + "x": 45.0, + "y": 280.0 + } + }, + { + "id": "Am2901ALUOneBit", + "name": "Am2901ALUOneBit#3", + "pos": { + "x": 45.0, + "y": 380.0 + } + }, + { + "id": "xor", + "name": "xor#0", + "pos": { + "x": 95.0, + "y": 400.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 24.0, + "y": 94.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 194.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 31.5, + "y": 244.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 31.5, + "y": 344.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 34.0, + "y": 154.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 34.0, + "y": 254.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 34.0, + "y": 354.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 36.5, + "y": 164.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 36.5, + "y": 264.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 36.5, + "y": 364.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 84.0, + "y": 374.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 84.0, + "y": 384.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 24.0, + "y": 294.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 26.5, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 26.5, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 26.5, + "y": 304.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 29.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 29.0, + "y": 224.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 29.0, + "y": 324.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 31.5, + "y": 144.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I5" + }, + "pin2": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "I5" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 5.0, + "y": 20.0 + }, + { + "x": 5.0, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I4" + }, + "pin2": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "I4" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 10.0, + "y": 60.0 + }, + { + "x": 10.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "CinE" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 70.0, + "y": 7.5 + }, + { + "x": 70.0, + "y": 77.5 + }, + { + "x": 27.5, + "y": 77.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "CinE" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "CinE" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "CinE" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "CinE" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 27.5, + "y": 405.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "RN" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 57.5, + "y": 57.5 + }, + { + "x": 57.5, + "y": 65.0 + }, + { + "x": 30.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I3" + }, + "pin2": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "I3" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 15.0, + "y": 100.0 + }, + { + "x": 15.0, + "y": 27.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "RN" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "RN" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "RN" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "RN" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 30.0, + "y": 425.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "SN" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 65.0, + "y": 27.5 + }, + { + "x": 65.0, + "y": 72.5 + }, + { + "x": 32.5, + "y": 72.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "SN" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "SN" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "SN" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "SBE" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 62.5, + "y": 37.5 + }, + { + "x": 62.5, + "y": 70.0 + }, + { + "x": 25.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "SN" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 32.5, + "y": 445.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "FN" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 60.0, + "y": 47.5 + }, + { + "x": 60.0, + "y": 67.5 + }, + { + "x": 35.0, + "y": 67.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "FN" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "FN" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "FN" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "FN" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 35.0, + "y": 455.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUFuncDecode#0", + "pinName": "L" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [ + { + "x": 67.5, + "y": 17.5 + }, + { + "x": 67.5, + "y": 75.0 + }, + { + "x": 37.5, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "L" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "L" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "L" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "L" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 37.5, + "y": 465.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "R1" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "R" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 10.0, + "y": 180.0 + }, + { + "x": 10.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "R2" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "R" + }, + "name": "unnamedWire#46", + "path": [ + { + "x": 10.0, + "y": 220.0 + }, + { + "x": 10.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "R3" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "R" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 10.0, + "y": 260.0 + }, + { + "x": 10.0, + "y": 315.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "R4" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "R" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 20.0, + "y": 300.0 + }, + { + "x": 20.0, + "y": 415.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "S" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 15.0, + "y": 340.0 + }, + { + "x": 15.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "S" + }, + "name": "unnamedWire#50", + "path": [ + { + "x": 5.0, + "y": 380.0 + }, + { + "x": 5.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S3" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "S" + }, + "name": "unnamedWire#51", + "path": [ + { + "x": 10.0, + "y": 420.0 + }, + { + "x": 10.0, + "y": 335.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S4" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "S" + }, + "name": "unnamedWire#52", + "path": [ + { + "x": 10.0, + "y": 460.0 + }, + { + "x": 10.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Cn" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "Cin" + }, + "name": "unnamedWire#53", + "path": [ + { + "x": 5.0, + "y": 140.0 + }, + { + "x": 5.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUOneBit#0", + "pinName": "Cout" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "Cin" + }, + "name": "unnamedWire#54", + "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": { + "compName": "Am2901ALUOneBit#1", + "pinName": "Cout" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "Cin" + }, + "name": "unnamedWire#55", + "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": { + "compName": "Am2901ALUOneBit#2", + "pinName": "Cout" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [ + { + "x": 85.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "Cin" + }, + "name": "unnamedWire#57", + "path": [ + { + "x": 40.0, + "y": 375.0 + }, + { + "x": 40.0, + "y": 385.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUOneBit#3", + "pinName": "Cout" + }, + "pin2": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUOneBit#0", + "pinName": "F" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F1" + }, + "name": "unnamedWire#59", + "path": [ + { + "x": 90.0, + "y": 95.0 + }, + { + "x": 90.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#0", + "pinName": "CoutE" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUOneBit#1", + "pinName": "F" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F2" + }, + "name": "unnamedWire#60", + "path": [ + { + "x": 95.0, + "y": 195.0 + }, + { + "x": 95.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUOneBit#2", + "pinName": "F" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F3" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 100.0, + "y": 295.0 + }, + { + "x": 100.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUOneBit#3", + "pinName": "F" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F4" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 105.0, + "y": 395.0 + }, + { + "x": 105.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "xor#0", + "pinName": "A" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 90.0, + "y": 375.0 + }, + { + "x": 90.0, + "y": 405.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "xor#0", + "pinName": "B" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 85.0, + "y": 415.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Cn+4" + }, + "name": "unnamedWire#65", + "path": [ + { + "x": 130.0, + "y": 385.0 + }, + { + "x": 130.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "xor#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "OVR" + }, + "name": "unnamedWire#66" + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#1", + "pinName": "CoutE" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#2", + "pinName": "CoutE" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "Am2901ALUOneBit#3", + "pinName": "CoutE" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 25.0, + "y": 395.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901ALUInclDecode", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclSourceDecodeInclFunctionDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclSourceDecodeInclFunctionDecode.json new file mode 100644 index 00000000..49a4cc6c --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclSourceDecodeInclFunctionDecode.json @@ -0,0 +1,1395 @@ +{ + "width": 35.0, + "height": 230.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 115.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 125.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 135.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 145.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 155.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 165.0 + }, + "name": "B2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 175.0 + }, + "name": "B3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 185.0 + }, + "name": "B4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "Cn", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "Cn+4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 95.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 105.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "F1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "F2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "F3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "F4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "I0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "I1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "I2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "I5", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "OVR", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 195.0 + }, + "name": "Q1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 205.0 + }, + "name": "Q2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 215.0 + }, + "name": "Q3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 225.0 + }, + "name": "Q4", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.25, + "submodel": { + "components": [ + { + "id": "Am2901ALUInclDecode", + "name": "Am2901ALUInclDecode#0", + "pos": { + "x": 60.0, + "y": 15.0 + } + }, + { + "id": "Am2901SourceDecode", + "name": "Am2901SourceDecode#0", + "pos": { + "x": 15.0, + "y": 165.0 + } + }, + { + "id": "sel2_4", + "name": "sel2_4#0", + "pos": { + "x": 45.0, + "y": 365.0 + } + }, + { + "id": "sel3_4", + "name": "sel3_4#0", + "pos": { + "x": 45.0, + "y": 575.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 9.0, + "y": 459.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 14.0, + "y": 499.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 19.0, + "y": 539.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 24.0, + "y": 579.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I5" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "I5" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I4" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "I4" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 5.0, + "y": 60.0 + }, + { + "x": 5.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A4" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B1" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 10.0, + "y": 430.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B2" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 15.0, + "y": 440.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B3" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 20.0, + "y": 450.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B4" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 25.0, + "y": 460.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A1" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 10.0, + "y": 610.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I3" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "I3" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 15.0, + "y": 100.0 + }, + { + "x": 15.0, + "y": 40.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A2" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 15.0, + "y": 620.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A3" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 20.0, + "y": 630.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "A4" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 25.0, + "y": 640.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B1" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 5.0, + "y": 620.0 + }, + { + "x": 5.0, + "y": 650.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B2" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B2" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B3" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B3" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 5.0, + "y": 700.0 + }, + { + "x": 5.0, + "y": 670.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B4" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "B4" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 10.0, + "y": 740.0 + }, + { + "x": 10.0, + "y": 680.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q1" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C1" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 15.0, + "y": 780.0 + }, + { + "x": 15.0, + "y": 690.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q2" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C2" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 20.0, + "y": 820.0 + }, + { + "x": 20.0, + "y": 700.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q3" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C3" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 25.0, + "y": 860.0 + }, + { + "x": 25.0, + "y": 710.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I2" + }, + "pin2": { + "compName": "Am2901SourceDecode#0", + "pinName": "I2" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 5.0, + "y": 140.0 + }, + { + "x": 5.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q4" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "C4" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 30.0, + "y": 900.0 + }, + { + "x": 30.0, + "y": 720.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901SourceDecode#0", + "pinName": "SQ" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "SC" + }, + "name": "unnamedWire#31", + "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": { + "compName": "Am2901SourceDecode#0", + "pinName": "RA" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "SB" + }, + "name": "unnamedWire#32", + "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": { + "compName": "Am2901SourceDecode#0", + "pinName": "SB" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "SB" + }, + "name": "unnamedWire#33", + "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": { + "compName": "Am2901SourceDecode#0", + "pinName": "SA" + }, + "pin2": { + "compName": "sel3_4#0", + "pinName": "SA" + }, + "name": "unnamedWire#34", + "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": { + "compName": "Am2901SourceDecode#0", + "pinName": "RD" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "SA" + }, + "name": "unnamedWire#35", + "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": { + "compName": "sel2_4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "R1" + }, + "name": "unnamedWire#36", + "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": { + "compName": "sel2_4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "R2" + }, + "name": "unnamedWire#37", + "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": { + "compName": "sel2_4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "R3" + }, + "name": "unnamedWire#38", + "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": { + "compName": "sel2_4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "R4" + }, + "name": "unnamedWire#39", + "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": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "Am2901SourceDecode#0", + "pinName": "I1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "sel3_4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "S1" + }, + "name": "unnamedWire#40", + "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": { + "compName": "sel3_4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "S2" + }, + "name": "unnamedWire#41", + "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": { + "compName": "sel3_4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "S3" + }, + "name": "unnamedWire#42", + "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": { + "compName": "sel3_4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "S4" + }, + "name": "unnamedWire#43", + "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": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "F1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F1" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "F2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F2" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 135.0, + "y": 30.0 + }, + { + "x": 135.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "F3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F3" + }, + "name": "unnamedWire#46", + "path": [ + { + "x": 130.0, + "y": 40.0 + }, + { + "x": 130.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "F4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F4" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 125.0, + "y": 50.0 + }, + { + "x": 125.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "Cn+4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Cn+4" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 120.0, + "y": 60.0 + }, + { + "x": 120.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "OVR" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "OVR" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 115.0, + "y": 70.0 + }, + { + "x": 115.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0" + }, + "pin2": { + "compName": "Am2901SourceDecode#0", + "pinName": "I0" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 5.0, + "y": 220.0 + }, + { + "x": 5.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Cn" + }, + "pin2": { + "compName": "Am2901ALUInclDecode#0", + "pinName": "Cn" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 10.0, + "y": 260.0 + }, + { + "x": 10.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A1" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 300.0 + }, + { + "x": 15.0, + "y": 390.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A2" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 10.0, + "y": 340.0 + }, + { + "x": 10.0, + "y": 400.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A3" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 5.0, + "y": 380.0 + }, + { + "x": 5.0, + "y": 410.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901ALUInclSourceDecodeInclFunctionDecode", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUOneBit.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUOneBit.json new file mode 100644 index 00000000..65ae6bef --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901ALUOneBit.json @@ -0,0 +1,557 @@ +{ + "width": 35.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "Cin", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "CinE", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Cout", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "CoutE", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "F", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "FN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "L", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "R", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "RN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "S", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "SN", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 60.0, + "y": 55.0 + }, + "params": 1 + }, + { + "id": "and", + "name": "and#0", + "pos": { + "x": 10.0, + "y": 20.0 + } + }, + { + "id": "and", + "name": "and#1", + "pos": { + "x": 135.0, + "y": 20.0 + } + }, + { + "id": "fulladder", + "name": "fulladder#0", + "pos": { + "x": 60.0, + "y": 20.0 + } + }, + { + "id": "mux1", + "name": "mux1#0", + "pos": { + "x": 90.0, + "y": 70.0 + } + }, + { + "id": "xor", + "name": "xor#0", + "pos": { + "x": 10.0, + "y": 190.0 + } + }, + { + "id": "xor", + "name": "xor#1", + "pos": { + "x": 10.0, + "y": 290.0 + } + }, + { + "id": "xor", + "name": "xor#2", + "pos": { + "x": 135.0, + "y": 70.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 49.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 54.0, + "y": 69.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Cin" + }, + "pin2": { + "compName": "and#0", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "CoutE" + }, + "pin2": { + "compName": "and#1", + "pinName": "A" + }, + "name": "unnamedWire#1", + "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": { + "compName": "xor#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 50.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "fulladder#0", + "pinName": "B" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 50.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "xor#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 55.0, + "y": 295.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "fulladder#0", + "pinName": "C" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 55.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "fulladder#0", + "pinName": "Y" + }, + "pin2": { + "compName": "mux1#0", + "pinName": "I0" + }, + "name": "unnamedWire#16", + "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": { + "compName": "fulladder#0", + "pinName": "Z" + }, + "pin2": { + "compName": "and#1", + "pinName": "B" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "mux1#0", + "pinName": "I1" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 82.5, + "y": 65.0 + }, + { + "x": 82.5, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "mux1#0", + "pinName": "Y" + }, + "pin2": { + "compName": "xor#2", + "pinName": "A" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "CinE" + }, + "pin2": { + "compName": "and#0", + "pinName": "B" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 7.5, + "y": 125.0 + }, + { + "x": 7.5, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "and#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Cout" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "xor#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "F" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "R" + }, + "pin2": { + "compName": "xor#0", + "pinName": "A" + }, + "name": "unnamedWire#3" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "RN" + }, + "pin2": { + "compName": "xor#0", + "pinName": "B" + }, + "name": "unnamedWire#4" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S" + }, + "pin2": { + "compName": "xor#1", + "pinName": "A" + }, + "name": "unnamedWire#5" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "SN" + }, + "pin2": { + "compName": "xor#1", + "pinName": "B" + }, + "name": "unnamedWire#6" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "FN" + }, + "pin2": { + "compName": "xor#2", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 130.0, + "y": 375.0 + }, + { + "x": 130.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "L" + }, + "pin2": { + "compName": "mux1#0", + "pinName": "S0" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 87.5, + "y": 425.0 + }, + { + "x": 87.5, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "and#0", + "pinName": "Y" + }, + "pin2": { + "compName": "fulladder#0", + "pinName": "A" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901ALUOneBit", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901DestDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901DestDecode.json new file mode 100644 index 00000000..27cd4f01 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901DestDecode.json @@ -0,0 +1,1095 @@ +{ + "width": 35.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I6", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I7", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "I8", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "LSH", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "NSH", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "QWE", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "RAMWE", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "RSH", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "YF", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.25, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 15.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 15.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#10", + "pos": { + "x": 80.0, + "y": 145.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#11", + "pos": { + "x": 110.0, + "y": 105.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#12", + "pos": { + "x": 115.0, + "y": 210.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 15.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 15.0, + "y": 150.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 50.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 50.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 50.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 50.0, + "y": 130.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 80.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#9", + "pos": { + "x": 80.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 4.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 4.0, + "y": 14.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 39.0, + "y": 134.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 74.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 74.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 74.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 74.0, + "y": 159.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 109.0, + "y": 214.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 4.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 9.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 9.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 9.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 4.0, + "y": 154.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 39.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 44.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 44.0, + "y": 54.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I8" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 5.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I6" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 5.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 5.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 5.0, + "y": 5.0 + }, + { + "x": 40.0, + "y": 5.0 + }, + { + "x": 40.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 40.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 40.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "NSH" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 45.0, + "y": 5.0 + }, + { + "x": 135.0, + "y": 5.0 + }, + { + "x": 135.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 45.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 10.0, + "y": 115.0 + }, + { + "x": 45.0, + "y": 115.0 + }, + { + "x": 45.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 40.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 40.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 75.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "B" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 75.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RAMWE" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 125.0, + "y": 60.0 + }, + { + "x": 125.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "A" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 75.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "LSH" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 125.0, + "y": 140.0 + }, + { + "x": 125.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 75.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "B" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RSH" + }, + "name": "unnamedWire#40", + "path": [ + { + "x": 130.0, + "y": 20.0 + }, + { + "x": 130.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "A" + }, + "name": "unnamedWire#41" + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "B" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 75.0, + "y": 170.0 + }, + { + "x": 105.0, + "y": 170.0 + }, + { + "x": 105.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 110.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#12", + "pinName": "A" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#12", + "pinName": "B" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 110.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#11", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YF" + }, + "name": "unnamedWire#46" + }, + { + "pin1": { + "compName": "NandGate#12", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QWE" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I7" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 10.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901DestDecode", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901SourceDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901SourceDecode.json new file mode 100644 index 00000000..25a64839 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/Am2901SourceDecode.json @@ -0,0 +1,1138 @@ +{ + "width": 35.0, + "height": 50.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "I2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "RA", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "RD", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "SA", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "SB", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "SQ", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.25, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 10.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 10.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#10", + "pos": { + "x": 70.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#11", + "pos": { + "x": 70.0, + "y": 130.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#12", + "pos": { + "x": 70.0, + "y": 170.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#13", + "pos": { + "x": 100.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#14", + "pos": { + "x": 100.0, + "y": 170.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 10.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 40.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 40.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 40.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 40.0, + "y": 130.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 40.0, + "y": 170.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 70.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#9", + "pos": { + "x": 70.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 4.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 6.5, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 36.5, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 64.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 64.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 64.0, + "y": 139.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 94.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 94.0, + "y": 179.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 4.0, + "y": 144.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 6.5, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 6.5, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 6.5, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 31.5, + "y": 54.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 34.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 34.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 34.0, + "y": 134.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I2" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 5.0, + "y": 5.0 + }, + { + "x": 35.0, + "y": 5.0 + }, + { + "x": 35.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 7.5, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 7.5, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 7.5, + "y": 112.5 + }, + { + "x": 32.5, + "y": 112.5 + }, + { + "x": 32.5, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 32.5, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 32.5, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 35.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 35.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "B" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 37.5, + "y": 35.0 + }, + { + "x": 65.0, + "y": 35.0 + }, + { + "x": 65.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 37.5, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#29" + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 7.5, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "A" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 65.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 65.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 65.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "B" + }, + "name": "unnamedWire#35", + "path": [ + { + "x": 65.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "A" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 65.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "B" + }, + "name": "unnamedWire#38", + "path": [ + { + "x": 65.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#12", + "pinName": "A" + }, + "name": "unnamedWire#39" + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 7.5, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#13", + "pinName": "A" + }, + "name": "unnamedWire#41", + "path": [ + { + "x": 95.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#13", + "pinName": "B" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 95.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RA" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SB" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#11", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SA" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#12", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#14", + "pinName": "A" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 95.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#14", + "pinName": "B" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 95.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#13", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SQ" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#14", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RD" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#12", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 5.0, + "y": 195.0 + }, + { + "x": 65.0, + "y": 195.0 + }, + { + "x": 65.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 7.5, + "y": 55.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2901SourceDecode", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901.json deleted file mode 100644 index 5b251e42..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901.json +++ /dev/null @@ -1,3708 +0,0 @@ -{ - "width": 35.0, - "height": 270.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 155.0 - }, - "name": "A0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 165.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 175.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 185.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 195.0 - }, - "name": "B0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 205.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 215.0 - }, - "name": "B2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 225.0 - }, - "name": "B3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 95.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 105.0 - }, - "name": "Cn", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "Cn+4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 115.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 125.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 135.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 145.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 75.0 - }, - "name": "F3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "F\u003d0", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "I0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "I1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "I2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "I3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "I4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "I5", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I6", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I7", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "I8", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 65.0 - }, - "name": "OVR", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 255.0 - }, - "name": "Qn", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 35.0, - "y": 115.0 - }, - "name": "Qn+3", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 0.0, - "y": 235.0 - }, - "name": "RAMn", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 35.0, - "y": 95.0 - }, - "name": "RAMn+3", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Y1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Y2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Y3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Y4", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.1, - "submodel": { - "components": [ - { - "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode", - "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pos": { - "x": 240.0, - "y": 2110.0 - } - }, - { - "id": "GUIAm2901DestDecode", - "name": "GUIAm2901DestDecode#0", - "pos": { - "x": 15.0, - "y": 45.0 - } - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 160.0, - "y": 75.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 320.0, - "y": 440.0 - }, - "params": 1 - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#0", - "pos": { - "x": 255.0, - "y": 2485.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#1", - "pos": { - "x": 270.0, - "y": 2435.0 - }, - "params": { - "logicWidth": 1, - "orientation": "DOWN" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#3", - "pos": { - "x": 300.0, - "y": 2515.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#4", - "pos": { - "x": 300.0, - "y": 2310.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT_ALT" - } - }, - { - "id": "GUIand", - "name": "GUIand#0", - "pos": { - "x": 190.0, - "y": 65.0 - } - }, - { - "id": "GUIdff4", - "name": "GUIdff4#0", - "pos": { - "x": 90.0, - "y": 2490.0 - } - }, - { - "id": "GUIdlatch4", - "name": "GUIdlatch4#0", - "pos": { - "x": 160.0, - "y": 2220.0 - } - }, - { - "id": "GUIdlatch4", - "name": "GUIdlatch4#1", - "pos": { - "x": 160.0, - "y": 2275.0 - } - }, - { - "id": "GUImux1_4", - "name": "GUImux1_4#0", - "pos": { - "x": 275.0, - "y": 135.0 - } - }, - { - "id": "GUIor4", - "name": "GUIor4#0", - "pos": { - "x": 275.0, - "y": 445.0 - } - }, - { - "id": "GUIram4", - "name": "GUIram4#0", - "pos": { - "x": 95.0, - "y": 2220.0 - } - }, - { - "id": "GUIsel3_4", - "name": "GUIsel3_4#0", - "pos": { - "x": 45.0, - "y": 2310.0 - } - }, - { - "id": "GUIsel3_4", - "name": "GUIsel3_4#1", - "pos": { - "x": 45.0, - "y": 2510.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 154.0, - "y": 949.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 154.0, - "y": 89.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 234.0, - "y": 2254.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 129.0, - "y": 2494.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 134.0, - "y": 2504.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 139.0, - "y": 2514.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 144.0, - "y": 2524.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 219.0, - "y": 2494.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 234.0, - "y": 2524.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 34.0, - "y": 2624.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 39.0, - "y": 2634.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 279.0, - "y": 2114.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 154.0, - "y": 2264.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#20", - "pos": { - "x": 294.0, - "y": 2144.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#21", - "pos": { - "x": 334.0, - "y": 2319.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#22", - "pos": { - "x": 254.0, - "y": 2089.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#23", - "pos": { - "x": 259.0, - "y": 2094.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#24", - "pos": { - "x": 264.0, - "y": 2099.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#25", - "pos": { - "x": 269.0, - "y": 2104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#26", - "pos": { - "x": 254.0, - "y": 449.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#27", - "pos": { - "x": 259.0, - "y": 459.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#28", - "pos": { - "x": 264.0, - "y": 469.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#29", - "pos": { - "x": 269.0, - "y": 479.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 154.0, - "y": 2319.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#30", - "pos": { - "x": 9.0, - "y": 2354.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#31", - "pos": { - "x": 14.0, - "y": 2364.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#32", - "pos": { - "x": 19.0, - "y": 2374.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#33", - "pos": { - "x": 14.0, - "y": 2394.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#34", - "pos": { - "x": 19.0, - "y": 2404.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#35", - "pos": { - "x": 24.0, - "y": 2414.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#36", - "pos": { - "x": 9.0, - "y": 2384.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#37", - "pos": { - "x": 14.0, - "y": 2424.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#38", - "pos": { - "x": 19.0, - "y": 2434.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#39", - "pos": { - "x": 24.0, - "y": 2444.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 39.0, - "y": 2314.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#40", - "pos": { - "x": 314.0, - "y": 449.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#41", - "pos": { - "x": 4.0, - "y": 2549.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#42", - "pos": { - "x": 4.0, - "y": 2349.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#43", - "pos": { - "x": 339.0, - "y": 2524.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#44", - "pos": { - "x": 29.0, - "y": 2469.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#45", - "pos": { - "x": 264.0, - "y": 2469.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#46", - "pos": { - "x": 39.0, - "y": 2474.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#47", - "pos": { - "x": 309.0, - "y": 2474.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 34.0, - "y": 2324.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 29.0, - "y": 2334.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 219.0, - "y": 2224.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 224.0, - "y": 2234.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 229.0, - "y": 2244.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I8" - }, - "pin2": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "I8" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I7" - }, - "pin2": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "I7" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 5.0, - "y": 150.0 - }, - { - "x": 5.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "F3" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#100", - "path": [ - { - "x": 290.0, - "y": 2135.0 - }, - { - "x": 290.0, - "y": 2100.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#101", - "path": [ - { - "x": 295.0, - "y": 2105.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#102", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#103", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "name": "unnamedWire#104", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "name": "unnamedWire#105", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "GUIor4#0", - "pinName": "A1" - }, - "name": "unnamedWire#106", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "GUIor4#0", - "pinName": "A2" - }, - "name": "unnamedWire#107", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "GUIor4#0", - "pinName": "A3" - }, - "name": "unnamedWire#108", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "pin2": { - "compName": "GUIor4#0", - "pinName": "A4" - }, - "name": "unnamedWire#109", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 155.0, - "y": 80.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I1_1" - }, - "name": "unnamedWire#110", - "path": [ - { - "x": 255.0, - "y": 190.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I1_2" - }, - "name": "unnamedWire#111", - "path": [ - { - "x": 260.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#112", - "path": [ - { - "x": 265.0, - "y": 210.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I1_4" - }, - "name": "unnamedWire#113", - "path": [ - { - "x": 270.0, - "y": 220.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "name": "unnamedWire#114", - "path": [ - { - "x": 10.0, - "y": 2090.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "name": "unnamedWire#115", - "path": [ - { - "x": 15.0, - "y": 2095.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#32", - "pinName": "" - }, - "name": "unnamedWire#116", - "path": [ - { - "x": 20.0, - "y": 2100.0 - } - ] - }, - { - "pin1": { - "compName": "GUIsel3_4#1", - "pinName": "A1" - }, - "pin2": { - "compName": "WireCrossPoint#41", - "pinName": "" - }, - "name": "unnamedWire#117", - "path": [ - { - "x": 5.0, - "y": 2545.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A2" - }, - "name": "unnamedWire#118", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A3" - }, - "name": "unnamedWire#119", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#32", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A4" - }, - "name": "unnamedWire#120", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#31", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#33", - "pinName": "" - }, - "name": "unnamedWire#121", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#32", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#34", - "pinName": "" - }, - "name": "unnamedWire#122", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#35", - "pinName": "" - }, - "name": "unnamedWire#123", - "path": [ - { - "x": 25.0, - "y": 2105.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#36", - "pinName": "" - }, - "name": "unnamedWire#124", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#36", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B1" - }, - "name": "unnamedWire#125", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#33", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B2" - }, - "name": "unnamedWire#126", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#34", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B3" - }, - "name": "unnamedWire#127", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#35", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B4" - }, - "name": "unnamedWire#128", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#33", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#37", - "pinName": "" - }, - "name": "unnamedWire#129", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#34", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#38", - "pinName": "" - }, - "name": "unnamedWire#130", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#35", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#39", - "pinName": "" - }, - "name": "unnamedWire#131", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#37", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C1" - }, - "name": "unnamedWire#132", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#38", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C2" - }, - "name": "unnamedWire#133", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#39", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C3" - }, - "name": "unnamedWire#134", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#3", - "pinName": "IN" - }, - "name": "unnamedWire#135", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#36", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "B1" - }, - "name": "unnamedWire#136", - "path": [ - { - "x": 10.0, - "y": 2585.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#37", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "B2" - }, - "name": "unnamedWire#137", - "path": [ - { - "x": 15.0, - "y": 2595.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#38", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "B3" - }, - "name": "unnamedWire#138", - "path": [ - { - "x": 20.0, - "y": 2605.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#39", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "B4" - }, - "name": "unnamedWire#139", - "path": [ - { - "x": 25.0, - "y": 2615.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "C" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "D1" - }, - "name": "unnamedWire#140", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "D2" - }, - "name": "unnamedWire#141", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "D3" - }, - "name": "unnamedWire#142", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "D4" - }, - "name": "unnamedWire#143", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "RAMWE" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "A" - }, - "name": "unnamedWire#144", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "B" - }, - "name": "unnamedWire#145" - }, - { - "pin1": { - "compName": "GUIand#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "WE" - }, - "name": "unnamedWire#146", - "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": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "QWE" - }, - "pin2": { - "compName": "GUIdff4#0", - "pinName": "WE" - }, - "name": "unnamedWire#147", - "path": [ - { - "x": 85.0, - "y": 100.0 - }, - { - "x": 85.0, - "y": 2505.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "YF" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "S0" - }, - "name": "unnamedWire#148", - "path": [ - { - "x": 70.0, - "y": 80.0 - }, - { - "x": 70.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "GUImux1_4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y1" - }, - "name": "unnamedWire#149", - "path": [ - { - "x": 335.0, - "y": 140.0 - }, - { - "x": 335.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "GUImux1_4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y2" - }, - "name": "unnamedWire#150", - "path": [] - }, - { - "pin1": { - "compName": "GUImux1_4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y3" - }, - "name": "unnamedWire#151", - "path": [ - { - "x": 335.0, - "y": 160.0 - }, - { - "x": 335.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "GUImux1_4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y4" - }, - "name": "unnamedWire#152", - "path": [ - { - "x": 325.0, - "y": 170.0 - }, - { - "x": 325.0, - "y": 350.0 - } - ] - }, - { - "pin1": { - "compName": "GUIor4#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#40", - "pinName": "" - }, - "name": "unnamedWire#153", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#40", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#154", - "path": [ - { - "x": 315.0, - "y": 445.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#40", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#155", - "path": [ - { - "x": 315.0, - "y": 455.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F\u003d0" - }, - "name": "unnamedWire#156", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#3", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#43", - "pinName": "" - }, - "name": "unnamedWire#157", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#41", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#0", - "pinName": "OUT" - }, - "name": "unnamedWire#158", - "path": [ - { - "x": 5.0, - "y": 2690.0 - }, - { - "x": 280.0, - "y": 2690.0 - }, - { - "x": 280.0, - "y": 2495.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#1", - "pinName": "IN" - }, - "name": "unnamedWire#159", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "C" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#42", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A1" - }, - "name": "unnamedWire#160", - "path": [ - { - "x": 5.0, - "y": 2345.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#42", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#1", - "pinName": "OUT" - }, - "name": "unnamedWire#161", - "path": [ - { - "x": 5.0, - "y": 2465.0 - }, - { - "x": 280.0, - "y": 2465.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F3" - }, - "name": "unnamedWire#162", - "path": [ - { - "x": 330.0, - "y": 2145.0 - }, - { - "x": 330.0, - "y": 750.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Qn+3" - }, - "pin2": { - "compName": "WireCrossPoint#43", - "pinName": "" - }, - "name": "unnamedWire#163", - "path": [ - { - "x": 340.0, - "y": 1150.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#44", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#164", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#45", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#1", - "pinName": "EN" - }, - "name": "unnamedWire#165", - "path": [ - { - "x": 290.0, - "y": 2470.0 - }, - { - "x": 290.0, - "y": 2445.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#45", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#0", - "pinName": "EN" - }, - "name": "unnamedWire#166", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#45", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#44", - "pinName": "" - }, - "name": "unnamedWire#167", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#46", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#168", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#46", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#47", - "pinName": "" - }, - "name": "unnamedWire#169", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff4#0", - "pinName": "C" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 155.0, - "y": 2485.0 - }, - { - "x": 80.0, - "y": 2485.0 - }, - { - "x": 80.0, - "y": 2495.0 - } - ] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#3", - "pinName": "EN" - }, - "pin2": { - "compName": "WireCrossPoint#47", - "pinName": "" - }, - "name": "unnamedWire#170", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#4", - "pinName": "IN" - }, - "name": "unnamedWire#171", - "path": [ - { - "x": 295.0, - "y": 2320.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "LSH" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 55.0, - "y": 90.0 - }, - { - "x": 55.0, - "y": 125.0 - }, - { - "x": 40.0, - "y": 125.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "NSH" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 60.0, - "y": 50.0 - }, - { - "x": 60.0, - "y": 120.0 - }, - { - "x": 35.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I6" - }, - "pin2": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "I6" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 10.0, - "y": 250.0 - }, - { - "x": 10.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901DestDecode#0", - "pinName": "RSH" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 65.0, - "y": 60.0 - }, - { - "x": 65.0, - "y": 115.0 - }, - { - "x": 30.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "SA" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "SB" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "SC" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#46", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "SA" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 40.0, - "y": 2515.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "SB" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 35.0, - "y": 2525.0 - } - ] - }, - { - "pin1": { - "compName": "GUIsel3_4#1", - "pinName": "SC" - }, - "pin2": { - "compName": "WireCrossPoint#44", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 30.0, - "y": 2535.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A0" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "A0" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 80.0, - "y": 1550.0 - }, - { - "x": 80.0, - "y": 2225.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "A1" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 75.0, - "y": 1650.0 - }, - { - "x": 75.0, - "y": 2235.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "A2" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 70.0, - "y": 1750.0 - }, - { - "x": 70.0, - "y": 2245.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I5" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "I5" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 130.0, - "y": 350.0 - }, - { - "x": 130.0, - "y": 2115.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "A3" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 65.0, - "y": 1850.0 - }, - { - "x": 65.0, - "y": 2255.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B0" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "B0" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 60.0, - "y": 1950.0 - }, - { - "x": 60.0, - "y": 2265.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "B1" - }, - "name": "unnamedWire#32", - "path": [ - { - "x": 55.0, - "y": 2050.0 - }, - { - "x": 55.0, - "y": 2275.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B2" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "B2" - }, - "name": "unnamedWire#33", - "path": [ - { - "x": 50.0, - "y": 2150.0 - }, - { - "x": 50.0, - "y": 2285.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B3" - }, - "pin2": { - "compName": "GUIram4#0", - "pinName": "B3" - }, - "name": "unnamedWire#34", - "path": [ - { - "x": 45.0, - "y": 2250.0 - }, - { - "x": 45.0, - "y": 2295.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QA1" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D1" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QA2" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D2" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QA3" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D3" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QA4" - }, - "pin2": { - "compName": "GUIdlatch4#0", - "pinName": "D4" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QB1" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D1" - }, - "name": "unnamedWire#39", - "path": [ - { - "x": 150.0, - "y": 2265.0 - }, - { - "x": 150.0, - "y": 2280.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I4" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "I4" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 125.0, - "y": 450.0 - }, - { - "x": 125.0, - "y": 2125.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QB2" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D2" - }, - "name": "unnamedWire#40", - "path": [ - { - "x": 145.0, - "y": 2275.0 - }, - { - "x": 145.0, - "y": 2290.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QB3" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D3" - }, - "name": "unnamedWire#41", - "path": [ - { - "x": 140.0, - "y": 2285.0 - }, - { - "x": 140.0, - "y": 2300.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram4#0", - "pinName": "QB4" - }, - "pin2": { - "compName": "GUIdlatch4#1", - "pinName": "D4" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 135.0, - "y": 2295.0 - }, - { - "x": 135.0, - "y": 2310.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Cn" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "Cn" - }, - "name": "unnamedWire#43", - "path": [ - { - "x": 100.0, - "y": 1050.0 - }, - { - "x": 100.0, - "y": 2175.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "D1" - }, - "name": "unnamedWire#44", - "path": [ - { - "x": 180.0, - "y": 1150.0 - }, - { - "x": 180.0, - "y": 2185.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "D2" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 175.0, - "y": 1250.0 - }, - { - "x": 175.0, - "y": 2195.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "D3" - }, - "name": "unnamedWire#46", - "path": [ - { - "x": 170.0, - "y": 1350.0 - }, - { - "x": 170.0, - "y": 2205.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "D4" - }, - "name": "unnamedWire#47", - "path": [ - { - "x": 165.0, - "y": 1450.0 - }, - { - "x": 165.0, - "y": 2215.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#48", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I3" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "I3" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 120.0, - "y": 550.0 - }, - { - "x": 120.0, - "y": 2135.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "GUIdlatch4#0", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I0_1" - }, - "name": "unnamedWire#52", - "path": [ - { - "x": 220.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I0_2" - }, - "name": "unnamedWire#53", - "path": [ - { - "x": 225.0, - "y": 160.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I0_3" - }, - "name": "unnamedWire#54", - "path": [ - { - "x": 230.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUImux1_4#0", - "pinName": "I0_4" - }, - "name": "unnamedWire#55", - "path": [ - { - "x": 235.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "A1" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "A2" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "A3" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "A4" - }, - "name": "unnamedWire#59", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I2" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "I2" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 115.0, - "y": 650.0 - }, - { - "x": 115.0, - "y": 2145.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q1" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "B1" - }, - "name": "unnamedWire#60", - "path": [ - { - "x": 200.0, - "y": 2280.0 - }, - { - "x": 200.0, - "y": 2265.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q2" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "B2" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 205.0, - "y": 2290.0 - }, - { - "x": 205.0, - "y": 2275.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q3" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "B3" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 210.0, - "y": 2300.0 - }, - { - "x": 210.0, - "y": 2285.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdlatch4#1", - "pinName": "Q4" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "B4" - }, - "name": "unnamedWire#63", - "path": [ - { - "x": 215.0, - "y": 2310.0 - }, - { - "x": 215.0, - "y": 2295.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4#0", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#64", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff4#0", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff4#0", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff4#0", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#67", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#68", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#0", - "pinName": "IN" - }, - "name": "unnamedWire#69", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "I1" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 110.0, - "y": 750.0 - }, - { - "x": 110.0, - "y": 2155.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#70", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Qn" - }, - "pin2": { - "compName": "WireCrossPoint#41", - "pinName": "" - }, - "name": "unnamedWire#71", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#72", - "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": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#73", - "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": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "C1" - }, - "name": "unnamedWire#74", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "C2" - }, - "name": "unnamedWire#75", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "C3" - }, - "name": "unnamedWire#76", - "path": [ - { - "x": 145.0, - "y": 2680.0 - }, - { - "x": 40.0, - "y": 2680.0 - }, - { - "x": 40.0, - "y": 2645.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#43", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "C4" - }, - "name": "unnamedWire#77", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "RAMn" - }, - "pin2": { - "compName": "WireCrossPoint#42", - "pinName": "" - }, - "name": "unnamedWire#78", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "A2" - }, - "name": "unnamedWire#79", - "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": { - "compName": "_submodelinterface", - "pinName": "I0" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "I0" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 105.0, - "y": 850.0 - }, - { - "x": 105.0, - "y": 2165.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "Q1" - }, - "name": "unnamedWire#80", - "path": [ - { - "x": 220.0, - "y": 2305.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "Q2" - }, - "name": "unnamedWire#81", - "path": [ - { - "x": 225.0, - "y": 2505.0 - }, - { - "x": 225.0, - "y": 2315.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "Q3" - }, - "name": "unnamedWire#82", - "path": [ - { - "x": 230.0, - "y": 2515.0 - }, - { - "x": 230.0, - "y": 2325.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "Q4" - }, - "name": "unnamedWire#83", - "path": [ - { - "x": 235.0, - "y": 2335.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "A3" - }, - "name": "unnamedWire#84", - "path": [ - { - "x": 35.0, - "y": 2565.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#1", - "pinName": "A4" - }, - "name": "unnamedWire#85", - "path": [ - { - "x": 40.0, - "y": 2575.0 - } - ] - }, - { - "pin1": { - "compName": "GUIsel3_4#1", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIdff4#0", - "pinName": "D1" - }, - "name": "unnamedWire#86", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIdff4#0", - "pinName": "D2" - }, - "name": "unnamedWire#87", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#1", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIdff4#0", - "pinName": "D3" - }, - "name": "unnamedWire#88", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#1", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIdff4#0", - "pinName": "D4" - }, - "name": "unnamedWire#89", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "Cn+4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Cn+4" - }, - "name": "unnamedWire#90", - "path": [ - { - "x": 315.0, - "y": 2155.0 - }, - { - "x": 315.0, - "y": 550.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "OVR" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "OVR" - }, - "name": "unnamedWire#91", - "path": [ - { - "x": 320.0, - "y": 2165.0 - }, - { - "x": 320.0, - "y": 650.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "F1" - }, - "pin2": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "name": "unnamedWire#92", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "F4" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#93", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#4", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#94", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#47", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#4", - "pinName": "EN" - }, - "name": "unnamedWire#95", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C4" - }, - "name": "unnamedWire#96", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "RAMn+3" - }, - "name": "unnamedWire#97", - "path": [ - { - "x": 335.0, - "y": 950.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#98", - "path": [ - { - "x": 280.0, - "y": 2090.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0", - "pinName": "F2" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#99", - "path": [ - { - "x": 285.0, - "y": 2125.0 - }, - { - "x": 285.0, - "y": 2095.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIAm2901", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": { - "qreg": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff4#0" - } - }, - "regs": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram4#0" - } - } - }, - "atomicHighLevelStates": {} - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUFuncDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUFuncDecode.json deleted file mode 100644 index 92d2200e..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUFuncDecode.json +++ /dev/null @@ -1,725 +0,0 @@ -{ - "width": 35.0, - "height": 60.0, - "interfacePins": [ - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "CinE", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "FN", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "I5", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "L", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "RN", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "SBE", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "SN", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.25, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 15.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 15.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 55.0, - "y": 45.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 55.0, - "y": 70.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 100.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUIand", - "name": "GUIand#0", - "pos": { - "x": 100.0, - "y": 135.0 - } - }, - { - "id": "GUInand3", - "name": "GUInand3#0", - "pos": { - "x": 55.0, - "y": 10.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 4.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 4.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 39.0, - "y": 34.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 4.0, - "y": 44.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 9.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 9.0, - "y": 54.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 9.0, - "y": 64.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 9.0, - "y": 84.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 49.0, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 49.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 39.0, - "y": 19.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I5" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 5.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SN" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 10.0, - "y": 105.0 - }, - { - "x": 135.0, - "y": 105.0 - }, - { - "x": 135.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I3" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 50.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "RN" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 50.0, - "y": 220.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUInand3#0", - "pinName": "B" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 50.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "CinE" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 40.0, - "y": 5.0 - }, - { - "x": 115.0, - "y": 5.0 - }, - { - "x": 115.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUInand3#0", - "pinName": "C" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "B" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 40.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "GUInand3#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#27" - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#28" - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "A" - }, - "name": "unnamedWire#29" - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "L" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "GUIand#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SBE" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 45.0, - "y": 45.0 - }, - { - "x": 45.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "FN" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 5.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I4" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUInand3#0", - "pinName": "A" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 10.0, - "y": 40.0 - }, - { - "x": 45.0, - "y": 40.0 - }, - { - "x": 45.0, - "y": 15.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIAm2901ALUFuncDecode", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclDecode.json deleted file mode 100644 index 2dec1af2..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclDecode.json +++ /dev/null @@ -1,1541 +0,0 @@ -{ - "width": 35.0, - "height": 120.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "Cn", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "Cn+4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "F1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "F2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "F3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "F4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "I5", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "OVR", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "R1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "R2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "R3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "R4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "S1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 95.0 - }, - "name": "S2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 105.0 - }, - "name": "S3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 115.0 - }, - "name": "S4", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.25, - "submodel": { - "components": [ - { - "id": "GUIAm2901ALUFuncDecode", - "name": "GUIAm2901ALUFuncDecode#0", - "pos": { - "x": 20.0, - "y": 2.5 - } - }, - { - "id": "GUIAm2901ALUOneBit", - "name": "GUIAm2901ALUOneBit#0", - "pos": { - "x": 45.0, - "y": 80.0 - } - }, - { - "id": "GUIAm2901ALUOneBit", - "name": "GUIAm2901ALUOneBit#1", - "pos": { - "x": 45.0, - "y": 180.0 - } - }, - { - "id": "GUIAm2901ALUOneBit", - "name": "GUIAm2901ALUOneBit#2", - "pos": { - "x": 45.0, - "y": 280.0 - } - }, - { - "id": "GUIAm2901ALUOneBit", - "name": "GUIAm2901ALUOneBit#3", - "pos": { - "x": 45.0, - "y": 380.0 - } - }, - { - "id": "GUIxor", - "name": "GUIxor#0", - "pos": { - "x": 95.0, - "y": 400.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 24.0, - "y": 94.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 24.0, - "y": 194.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 31.5, - "y": 244.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 31.5, - "y": 344.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 34.0, - "y": 154.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 34.0, - "y": 254.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 34.0, - "y": 354.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 36.5, - "y": 164.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 36.5, - "y": 264.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 36.5, - "y": 364.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 84.0, - "y": 374.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 84.0, - "y": 384.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 24.0, - "y": 294.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 26.5, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 26.5, - "y": 204.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 26.5, - "y": 304.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 29.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 29.0, - "y": 224.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 29.0, - "y": 324.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 31.5, - "y": 144.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I5" - }, - "pin2": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "I5" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 5.0, - "y": 20.0 - }, - { - "x": 5.0, - "y": 7.5 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I4" - }, - "pin2": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "I4" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 10.0, - "y": 60.0 - }, - { - "x": 10.0, - "y": 17.5 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "CinE" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 70.0, - "y": 7.5 - }, - { - "x": 70.0, - "y": 77.5 - }, - { - "x": 27.5, - "y": 77.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "CinE" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "CinE" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "CinE" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "CinE" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 27.5, - "y": 405.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "RN" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 57.5, - "y": 57.5 - }, - { - "x": 57.5, - "y": 65.0 - }, - { - "x": 30.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I3" - }, - "pin2": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "I3" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 15.0, - "y": 100.0 - }, - { - "x": 15.0, - "y": 27.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "RN" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "RN" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "RN" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "RN" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 30.0, - "y": 425.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "SN" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 65.0, - "y": 27.5 - }, - { - "x": 65.0, - "y": 72.5 - }, - { - "x": 32.5, - "y": 72.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "SN" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "SN" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "SN" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "SBE" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 62.5, - "y": 37.5 - }, - { - "x": 62.5, - "y": 70.0 - }, - { - "x": 25.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "SN" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 32.5, - "y": 445.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "FN" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 60.0, - "y": 47.5 - }, - { - "x": 60.0, - "y": 67.5 - }, - { - "x": 35.0, - "y": 67.5 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "FN" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "FN" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "FN" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "FN" - }, - "name": "unnamedWire#37", - "path": [ - { - "x": 35.0, - "y": 455.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUFuncDecode#0", - "pinName": "L" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [ - { - "x": 67.5, - "y": 17.5 - }, - { - "x": 67.5, - "y": 75.0 - }, - { - "x": 37.5, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "L" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "L" - }, - "name": "unnamedWire#42", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "L" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "L" - }, - "name": "unnamedWire#44", - "path": [ - { - "x": 37.5, - "y": 465.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "R1" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "R" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 10.0, - "y": 180.0 - }, - { - "x": 10.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "R2" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "R" - }, - "name": "unnamedWire#46", - "path": [ - { - "x": 10.0, - "y": 220.0 - }, - { - "x": 10.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "R3" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "R" - }, - "name": "unnamedWire#47", - "path": [ - { - "x": 10.0, - "y": 260.0 - }, - { - "x": 10.0, - "y": 315.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "R4" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "R" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 20.0, - "y": 300.0 - }, - { - "x": 20.0, - "y": 415.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S1" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "S" - }, - "name": "unnamedWire#49", - "path": [ - { - "x": 15.0, - "y": 340.0 - }, - { - "x": 15.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S2" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "S" - }, - "name": "unnamedWire#50", - "path": [ - { - "x": 5.0, - "y": 380.0 - }, - { - "x": 5.0, - "y": 235.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S3" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "S" - }, - "name": "unnamedWire#51", - "path": [ - { - "x": 10.0, - "y": 420.0 - }, - { - "x": 10.0, - "y": 335.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S4" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "S" - }, - "name": "unnamedWire#52", - "path": [ - { - "x": 10.0, - "y": 460.0 - }, - { - "x": 10.0, - "y": 435.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Cn" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "Cin" - }, - "name": "unnamedWire#53", - "path": [ - { - "x": 5.0, - "y": 140.0 - }, - { - "x": 5.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "Cout" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "Cin" - }, - "name": "unnamedWire#54", - "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": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "Cout" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "Cin" - }, - "name": "unnamedWire#55", - "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": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "Cout" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#56", - "path": [ - { - "x": 85.0, - "y": 285.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "Cin" - }, - "name": "unnamedWire#57", - "path": [ - { - "x": 40.0, - "y": 375.0 - }, - { - "x": 40.0, - "y": 385.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "Cout" - }, - "pin2": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "F" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F1" - }, - "name": "unnamedWire#59", - "path": [ - { - "x": 90.0, - "y": 95.0 - }, - { - "x": 90.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#0", - "pinName": "CoutE" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "F" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F2" - }, - "name": "unnamedWire#60", - "path": [ - { - "x": 95.0, - "y": 195.0 - }, - { - "x": 95.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "F" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F3" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 100.0, - "y": 295.0 - }, - { - "x": 100.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "F" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F4" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 105.0, - "y": 395.0 - }, - { - "x": 105.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "GUIxor#0", - "pinName": "A" - }, - "name": "unnamedWire#63", - "path": [ - { - "x": 90.0, - "y": 375.0 - }, - { - "x": 90.0, - "y": 405.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "GUIxor#0", - "pinName": "B" - }, - "name": "unnamedWire#64", - "path": [ - { - "x": 85.0, - "y": 415.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Cn+4" - }, - "name": "unnamedWire#65", - "path": [ - { - "x": 130.0, - "y": 385.0 - }, - { - "x": 130.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUIxor#0", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "OVR" - }, - "name": "unnamedWire#66" - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#1", - "pinName": "CoutE" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#2", - "pinName": "CoutE" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2901ALUOneBit#3", - "pinName": "CoutE" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 25.0, - "y": 395.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIAm2901ALUInclDecode", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json deleted file mode 100644 index 2fa5c1b1..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json +++ /dev/null @@ -1,1395 +0,0 @@ -{ - "width": 35.0, - "height": 230.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 115.0 - }, - "name": "A1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 125.0 - }, - "name": "A2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 135.0 - }, - "name": "A3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 145.0 - }, - "name": "A4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 155.0 - }, - "name": "B1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 165.0 - }, - "name": "B2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 175.0 - }, - "name": "B3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 185.0 - }, - "name": "B4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "Cn", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "Cn+4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "D1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "D2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 95.0 - }, - "name": "D3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 105.0 - }, - "name": "D4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "F1", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "F2", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "F3", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "F4", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "I0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "I1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "I2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I4", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "I5", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "OVR", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 195.0 - }, - "name": "Q1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 205.0 - }, - "name": "Q2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 215.0 - }, - "name": "Q3", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 225.0 - }, - "name": "Q4", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.25, - "submodel": { - "components": [ - { - "id": "GUIAm2901ALUInclDecode", - "name": "GUIAm2901ALUInclDecode#0", - "pos": { - "x": 60.0, - "y": 15.0 - } - }, - { - "id": "GUIAm2901SourceDecode", - "name": "GUIAm2901SourceDecode#0", - "pos": { - "x": 15.0, - "y": 165.0 - } - }, - { - "id": "GUIsel2_4", - "name": "GUIsel2_4#0", - "pos": { - "x": 45.0, - "y": 365.0 - } - }, - { - "id": "GUIsel3_4", - "name": "GUIsel3_4#0", - "pos": { - "x": 45.0, - "y": 575.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 9.0, - "y": 459.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 14.0, - "y": 499.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 19.0, - "y": 539.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 24.0, - "y": 579.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I5" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "I5" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I4" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "I4" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 5.0, - "y": 60.0 - }, - { - "x": 5.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A4" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A1" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A2" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A3" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "A4" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B1" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 10.0, - "y": 430.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B2" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 15.0, - "y": 440.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B3" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 20.0, - "y": 450.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "B4" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 25.0, - "y": 460.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A1" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 10.0, - "y": 610.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I3" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "I3" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 15.0, - "y": 100.0 - }, - { - "x": 15.0, - "y": 40.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A2" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 15.0, - "y": 620.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A3" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 20.0, - "y": 630.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "A4" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 25.0, - "y": 640.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B1" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B1" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 5.0, - "y": 620.0 - }, - { - "x": 5.0, - "y": 650.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B2" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B2" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B3" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B3" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 5.0, - "y": 700.0 - }, - { - "x": 5.0, - "y": 670.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "B4" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "B4" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 10.0, - "y": 740.0 - }, - { - "x": 10.0, - "y": 680.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q1" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C1" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 15.0, - "y": 780.0 - }, - { - "x": 15.0, - "y": 690.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q2" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C2" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 20.0, - "y": 820.0 - }, - { - "x": 20.0, - "y": 700.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q3" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C3" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 25.0, - "y": 860.0 - }, - { - "x": 25.0, - "y": 710.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I2" - }, - "pin2": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "I2" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 5.0, - "y": 140.0 - }, - { - "x": 5.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q4" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "C4" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 30.0, - "y": 900.0 - }, - { - "x": 30.0, - "y": 720.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "SQ" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "SC" - }, - "name": "unnamedWire#31", - "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": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "RA" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "SB" - }, - "name": "unnamedWire#32", - "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": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "SB" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "SB" - }, - "name": "unnamedWire#33", - "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": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "SA" - }, - "pin2": { - "compName": "GUIsel3_4#0", - "pinName": "SA" - }, - "name": "unnamedWire#34", - "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": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "RD" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "SA" - }, - "name": "unnamedWire#35", - "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": { - "compName": "GUIsel2_4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "R1" - }, - "name": "unnamedWire#36", - "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": { - "compName": "GUIsel2_4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "R2" - }, - "name": "unnamedWire#37", - "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": { - "compName": "GUIsel2_4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "R3" - }, - "name": "unnamedWire#38", - "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": { - "compName": "GUIsel2_4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "R4" - }, - "name": "unnamedWire#39", - "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": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "I1" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel3_4#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "S1" - }, - "name": "unnamedWire#40", - "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": { - "compName": "GUIsel3_4#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "S2" - }, - "name": "unnamedWire#41", - "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": { - "compName": "GUIsel3_4#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "S3" - }, - "name": "unnamedWire#42", - "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": { - "compName": "GUIsel3_4#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "S4" - }, - "name": "unnamedWire#43", - "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": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "F1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F1" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "F2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F2" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 135.0, - "y": 30.0 - }, - { - "x": 135.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "F3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F3" - }, - "name": "unnamedWire#46", - "path": [ - { - "x": 130.0, - "y": 40.0 - }, - { - "x": 130.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "F4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F4" - }, - "name": "unnamedWire#47", - "path": [ - { - "x": 125.0, - "y": 50.0 - }, - { - "x": 125.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "Cn+4" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Cn+4" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 120.0, - "y": 60.0 - }, - { - "x": 120.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "OVR" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "OVR" - }, - "name": "unnamedWire#49", - "path": [ - { - "x": 115.0, - "y": 70.0 - }, - { - "x": 115.0, - "y": 220.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0" - }, - "pin2": { - "compName": "GUIAm2901SourceDecode#0", - "pinName": "I0" - }, - "name": "unnamedWire#5", - "path": [ - { - "x": 5.0, - "y": 220.0 - }, - { - "x": 5.0, - "y": 190.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Cn" - }, - "pin2": { - "compName": "GUIAm2901ALUInclDecode#0", - "pinName": "Cn" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 10.0, - "y": 260.0 - }, - { - "x": 10.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A1" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 15.0, - "y": 300.0 - }, - { - "x": 15.0, - "y": 390.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A2" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 10.0, - "y": 340.0 - }, - { - "x": 10.0, - "y": 400.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "GUIsel2_4#0", - "pinName": "A3" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 5.0, - "y": 380.0 - }, - { - "x": 5.0, - "y": 410.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUOneBit.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUOneBit.json deleted file mode 100644 index 1fd3ed88..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUOneBit.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "width": 35.0, - "height": 90.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "Cin", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "CinE", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Cout", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "CoutE", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "F", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 75.0 - }, - "name": "FN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 85.0 - }, - "name": "L", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "R", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "RN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "S", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 65.0 - }, - "name": "SN", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 60.0, - "y": 55.0 - }, - "params": 1 - }, - { - "id": "GUIand", - "name": "GUIand#0", - "pos": { - "x": 10.0, - "y": 20.0 - } - }, - { - "id": "GUIand", - "name": "GUIand#1", - "pos": { - "x": 135.0, - "y": 20.0 - } - }, - { - "id": "GUIfulladder", - "name": "GUIfulladder#0", - "pos": { - "x": 60.0, - "y": 20.0 - } - }, - { - "id": "GUImux1", - "name": "GUImux1#0", - "pos": { - "x": 90.0, - "y": 70.0 - } - }, - { - "id": "GUIxor", - "name": "GUIxor#0", - "pos": { - "x": 10.0, - "y": 190.0 - } - }, - { - "id": "GUIxor", - "name": "GUIxor#1", - "pos": { - "x": 10.0, - "y": 290.0 - } - }, - { - "id": "GUIxor", - "name": "GUIxor#2", - "pos": { - "x": 135.0, - "y": 70.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 49.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 54.0, - "y": 69.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Cin" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "A" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "CoutE" - }, - "pin2": { - "compName": "GUIand#1", - "pinName": "A" - }, - "name": "unnamedWire#1", - "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": { - "compName": "GUIxor#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 50.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIfulladder#0", - "pinName": "B" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 50.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "GUIxor#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 55.0, - "y": 295.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIfulladder#0", - "pinName": "C" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 55.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "GUIfulladder#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUImux1#0", - "pinName": "I0" - }, - "name": "unnamedWire#16", - "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": { - "compName": "GUIfulladder#0", - "pinName": "Z" - }, - "pin2": { - "compName": "GUIand#1", - "pinName": "B" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUImux1#0", - "pinName": "I1" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 82.5, - "y": 65.0 - }, - { - "x": 82.5, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "GUImux1#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIxor#2", - "pinName": "A" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "CinE" - }, - "pin2": { - "compName": "GUIand#0", - "pinName": "B" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 7.5, - "y": 125.0 - }, - { - "x": 7.5, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "GUIand#1", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Cout" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "GUIxor#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "F" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "R" - }, - "pin2": { - "compName": "GUIxor#0", - "pinName": "A" - }, - "name": "unnamedWire#3" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "RN" - }, - "pin2": { - "compName": "GUIxor#0", - "pinName": "B" - }, - "name": "unnamedWire#4" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "S" - }, - "pin2": { - "compName": "GUIxor#1", - "pinName": "A" - }, - "name": "unnamedWire#5" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "SN" - }, - "pin2": { - "compName": "GUIxor#1", - "pinName": "B" - }, - "name": "unnamedWire#6" - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "FN" - }, - "pin2": { - "compName": "GUIxor#2", - "pinName": "B" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 130.0, - "y": 375.0 - }, - { - "x": 130.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "L" - }, - "pin2": { - "compName": "GUImux1#0", - "pinName": "S0" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 87.5, - "y": 425.0 - }, - { - "x": 87.5, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "GUIand#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIfulladder#0", - "pinName": "A" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIAm2901ALUOneBit", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901DestDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901DestDecode.json deleted file mode 100644 index 0b2d6111..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901DestDecode.json +++ /dev/null @@ -1,1095 +0,0 @@ -{ - "width": 35.0, - "height": 60.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I6", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I7", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "I8", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "LSH", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "NSH", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 55.0 - }, - "name": "QWE", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "RAMWE", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "RSH", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "YF", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.25, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 15.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 15.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#10", - "pos": { - "x": 80.0, - "y": 145.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#11", - "pos": { - "x": 110.0, - "y": 105.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#12", - "pos": { - "x": 115.0, - "y": 210.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 15.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 15.0, - "y": 150.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 50.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 50.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 50.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 50.0, - "y": 130.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#8", - "pos": { - "x": 80.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#9", - "pos": { - "x": 80.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 4.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 4.0, - "y": 14.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 39.0, - "y": 134.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 74.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 74.0, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 74.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 74.0, - "y": 159.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 109.0, - "y": 214.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 4.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 9.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 9.0, - "y": 64.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 9.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 4.0, - "y": 154.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 39.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 44.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 44.0, - "y": 54.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I8" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 5.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I6" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 5.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 5.0, - "y": 165.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 5.0, - "y": 5.0 - }, - { - "x": 40.0, - "y": 5.0 - }, - { - "x": 40.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 40.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 40.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "NSH" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 45.0, - "y": 5.0 - }, - { - "x": 135.0, - "y": 5.0 - }, - { - "x": 135.0, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 45.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 10.0, - "y": 115.0 - }, - { - "x": 45.0, - "y": 115.0 - }, - { - "x": 45.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 40.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 40.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "A" - }, - "name": "unnamedWire#29", - "path": [ - { - "x": 75.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "B" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 75.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "RAMWE" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 125.0, - "y": 60.0 - }, - { - "x": 125.0, - "y": 100.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "A" - }, - "name": "unnamedWire#33", - "path": [ - { - "x": 75.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "B" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "LSH" - }, - "name": "unnamedWire#36", - "path": [ - { - "x": 125.0, - "y": 140.0 - }, - { - "x": 125.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "A" - }, - "name": "unnamedWire#37", - "path": [ - { - "x": 75.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "B" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "RSH" - }, - "name": "unnamedWire#40", - "path": [ - { - "x": 130.0, - "y": 20.0 - }, - { - "x": 130.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#9", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "A" - }, - "name": "unnamedWire#41" - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "B" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 75.0, - "y": 170.0 - }, - { - "x": 105.0, - "y": 170.0 - }, - { - "x": 105.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#10", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#43", - "path": [ - { - "x": 110.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#12", - "pinName": "A" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#12", - "pinName": "B" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 110.0, - "y": 225.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#11", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "YF" - }, - "name": "unnamedWire#46" - }, - { - "pin1": { - "compName": "GUINandGate#12", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "QWE" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I7" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [ - { - "x": 10.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "GUIAm2901DestDecode", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901SourceDecode.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901SourceDecode.json deleted file mode 100644 index 112fecb7..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2901/GUIAm2901SourceDecode.json +++ /dev/null @@ -1,1138 +0,0 @@ -{ - "width": 35.0, - "height": 50.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "I0", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "I1", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "I2", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "RA", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 45.0 - }, - "name": "RD", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "SA", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "SB", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "SQ", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.25, - "submodel": { - "components": [ - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 10.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 10.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#10", - "pos": { - "x": 70.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#11", - "pos": { - "x": 70.0, - "y": 130.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#12", - "pos": { - "x": 70.0, - "y": 170.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#13", - "pos": { - "x": 100.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#14", - "pos": { - "x": 100.0, - "y": 170.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 10.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 40.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 40.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 40.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 40.0, - "y": 130.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 40.0, - "y": 170.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#8", - "pos": { - "x": 70.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#9", - "pos": { - "x": 70.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 4.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 6.5, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 36.5, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 64.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 64.0, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 64.0, - "y": 139.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 94.0, - "y": 19.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 94.0, - "y": 179.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 4.0, - "y": 144.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 6.5, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 6.5, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 6.5, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 31.5, - "y": 54.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 34.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 34.0, - "y": 64.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 34.0, - "y": 134.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I2" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 5.0, - "y": 5.0 - }, - { - "x": 35.0, - "y": 5.0 - }, - { - "x": 35.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 7.5, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I0" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 7.5, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 7.5, - "y": 112.5 - }, - { - "x": 32.5, - "y": 112.5 - }, - { - "x": 32.5, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 32.5, - "y": 20.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 32.5, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 35.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 35.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "B" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 37.5, - "y": 35.0 - }, - { - "x": 65.0, - "y": 35.0 - }, - { - "x": 65.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 37.5, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "A" - }, - "name": "unnamedWire#29" - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 7.5, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "A" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 65.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "B" - }, - "name": "unnamedWire#32", - "path": [ - { - "x": 65.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "A" - }, - "name": "unnamedWire#34", - "path": [ - { - "x": 65.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "B" - }, - "name": "unnamedWire#35", - "path": [ - { - "x": 65.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "A" - }, - "name": "unnamedWire#37", - "path": [ - { - "x": 65.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#11", - "pinName": "B" - }, - "name": "unnamedWire#38", - "path": [ - { - "x": 65.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#12", - "pinName": "A" - }, - "name": "unnamedWire#39" - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 7.5, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#13", - "pinName": "A" - }, - "name": "unnamedWire#41", - "path": [ - { - "x": 95.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#13", - "pinName": "B" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 95.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#9", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "RA" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#10", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SB" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#11", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SA" - }, - "name": "unnamedWire#45", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#12", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#14", - "pinName": "A" - }, - "name": "unnamedWire#47", - "path": [ - { - "x": 95.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#14", - "pinName": "B" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 95.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#13", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SQ" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#14", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "RD" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#12", - "pinName": "B" - }, - "name": "unnamedWire#7", - "path": [ - { - "x": 5.0, - "y": 195.0 - }, - { - "x": 65.0, - "y": 195.0 - }, - { - "x": 65.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I1" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#9", - "path": [ - { - "x": 7.5, - "y": 55.0 - } - ] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "Am2901SourceDecode", - "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904.json new file mode 100644 index 00000000..d32bca28 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904.json @@ -0,0 +1,3999 @@ +{ + "width": 120.0, + "height": 178.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 120.0, + "y": 108.0 + }, + "name": "C0", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 120.0, + "y": 60.0 + }, + "name": "CT", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 110.0 + }, + "name": "Cx", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 61.0 + }, + "name": "I", + "logicWidth": 13, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "IC", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "IN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "IOVR", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "IZ", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 120.0, + "y": 128.0 + }, + "name": "QIO0", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 0.0, + "y": 128.0 + }, + "name": "QIOn", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 120.0, + "y": 118.0 + }, + "name": "SIO0", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 0.0, + "y": 119.0 + }, + "name": "SIOn", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 120.0, + "y": 17.0 + }, + "name": "YC", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 120.0, + "y": 21.0 + }, + "name": "YN", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 120.0, + "y": 25.0 + }, + "name": "YOVR", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 120.0, + "y": 11.0 + }, + "name": "YZ", + "logicWidth": 1, + "usage": "TRISTATE" + }, + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "_CEM", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 33.0 + }, + "name": "_CEmu", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 38.0 + }, + "name": "_EC", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "_EN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 42.0 + }, + "name": "_EOVR", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 36.0 + }, + "name": "_EZ", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 120.0, + "y": 51.0 + }, + "name": "_OECT", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 61.0, + "y": 0.0 + }, + "name": "_OEY", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 83.0 + }, + "name": "_SE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "Am2904MSR", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 225.0, + "y": 95.0 + } + }, + { + "id": "Am2904muSR", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 270.0, + "y": 250.0 + } + }, + { + "id": "xor", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 455.0, + "y": 355.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#11", + "pos": { + "x": 265.0, + "y": 515.0 + } + }, + { + "id": "xor", + "name": "DeserializedSubmodelComponent#12", + "pos": { + "x": 315.0, + "y": 505.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#13", + "pos": { + "x": 365.0, + "y": 485.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#14", + "pos": { + "x": 415.0, + "y": 465.0 + } + }, + { + "id": "mux2", + "name": "DeserializedSubmodelComponent#15", + "pos": { + "x": 435.0, + "y": 575.0 + } + }, + { + "id": "mux2", + "name": "DeserializedSubmodelComponent#16", + "pos": { + "x": 435.0, + "y": 655.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#17", + "pos": { + "x": 190.0, + "y": 460.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#18", + "pos": { + "x": 135.0, + "y": 470.0 + } + }, + { + "id": "and", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 380.0, + "y": 125.0 + } + }, + { + "id": "xor", + "name": "DeserializedSubmodelComponent#21", + "pos": { + "x": 250.0, + "y": 820.0 + } + }, + { + "id": "mux2", + "name": "DeserializedSubmodelComponent#22", + "pos": { + "x": 120.0, + "y": 720.0 + } + }, + { + "id": "mux3", + "name": "DeserializedSubmodelComponent#23", + "pos": { + "x": 300.0, + "y": 715.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 470.0, + "y": 160.0 + } + }, + { + "id": "not4", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 135.0, + "y": 40.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 415.0, + "y": 210.0 + } + }, + { + "id": "Am2904TestLogic", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 225.0, + "y": 340.0 + } + }, + { + "id": "mux3", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 300.0, + "y": 310.0 + } + }, + { + "id": "xor", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 495.0, + "y": 295.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 450.0, + "y": 310.0 + } + }, + { + "id": "Am2904RegCTInstrDecode", + "name": "Am2904RegCTInstrDecode#0", + "pos": { + "x": 50.0, + "y": 240.0 + } + }, + { + "id": "Am2904ShiftInstrDecode", + "name": "Am2904ShiftInstrDecode#0", + "pos": { + "x": 50.0, + "y": 360.0 + } + }, + { + "id": "BitDisplay", + "name": "BitDisplay#0", + "pos": { + "x": 530.0, + "y": 70.0 + }, + "params": 4 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#1", + "pos": { + "x": 565.0, + "y": 180.0 + }, + "params": 4 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#2", + "pos": { + "x": 530.0, + "y": 200.0 + }, + "params": 4 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#3", + "pos": { + "x": 560.0, + "y": 150.0 + }, + "params": 1 + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 25.0, + "y": 315.0 + }, + "params": 6 + }, + { + "id": "Merger", + "name": "Merger#1", + "pos": { + "x": 25.0, + "y": 265.0 + }, + "params": 5 + }, + { + "id": "Merger", + "name": "Merger#2", + "pos": { + "x": 15.0, + "y": 65.0 + }, + "params": 4 + }, + { + "id": "Merger", + "name": "Merger#3", + "pos": { + "x": 510.0, + "y": 165.0 + }, + "params": 4 + }, + { + "id": "Merger", + "name": "Merger#4", + "pos": { + "x": 25.0, + "y": 245.0 + }, + "params": 2 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 190.0, + "y": 145.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 130.0, + "y": 5.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#10", + "pos": { + "x": 340.0, + "y": 120.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#12", + "pos": { + "x": 540.0, + "y": 265.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 225.0, + "y": 195.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 225.0, + "y": 215.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 225.0, + "y": 155.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 225.0, + "y": 175.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 205.0, + "y": 70.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 205.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 205.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#9", + "pos": { + "x": 205.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 10.0, + "y": 245.0 + }, + "params": 13 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 555.0, + "y": 80.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#10", + "pos": { + "x": 420.0, + "y": 410.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#11", + "pos": { + "x": 405.0, + "y": 585.0 + }, + "params": 3 + }, + { + "id": "Splitter", + "name": "Splitter#12", + "pos": { + "x": 410.0, + "y": 665.0 + }, + "params": 3 + }, + { + "id": "Splitter", + "name": "Splitter#13", + "pos": { + "x": 265.0, + "y": 725.0 + }, + "params": 3 + }, + { + "id": "Splitter", + "name": "Splitter#14", + "pos": { + "x": 90.0, + "y": 730.0 + }, + "params": 3 + }, + { + "id": "Splitter", + "name": "Splitter#15", + "pos": { + "x": 120.0, + "y": 455.0 + }, + "params": 2 + }, + { + "id": "Splitter", + "name": "Splitter#2", + "pos": { + "x": 395.0, + "y": 195.0 + }, + "params": 2 + }, + { + "id": "Splitter", + "name": "Splitter#3", + "pos": { + "x": 450.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#4", + "pos": { + "x": 395.0, + "y": 225.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#5", + "pos": { + "x": 395.0, + "y": 265.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#6", + "pos": { + "x": 285.0, + "y": 320.0 + }, + "params": 3 + }, + { + "id": "Splitter", + "name": "Splitter#7", + "pos": { + "x": 420.0, + "y": 325.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#8", + "pos": { + "x": 420.0, + "y": 365.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#9", + "pos": { + "x": 240.0, + "y": 475.0 + }, + "params": 4 + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#0", + "pos": { + "x": 535.0, + "y": 165.0 + }, + "params": { + "logicWidth": 4, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#1", + "pos": { + "x": 10.0, + "y": 650.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#2", + "pos": { + "x": 10.0, + "y": 605.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#3", + "pos": { + "x": 560.0, + "y": 595.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#4", + "pos": { + "x": 565.0, + "y": 655.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#5", + "pos": { + "x": 560.0, + "y": 290.0 + }, + "params": { + "logicWidth": 1, + "orientation": "RIGHT" + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 165.0, + "y": 150.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 180.0, + "y": 135.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 195.0, + "y": 55.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 195.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 195.0, + "y": 35.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 330.0, + "y": 125.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 520.0, + "y": 190.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 255.0, + "y": 265.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 255.0, + "y": 255.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 360.0, + "y": 495.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 35.0, + "y": 640.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 35.0, + "y": 595.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 295.0, + "y": 120.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 585.0, + "y": 590.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 585.0, + "y": 640.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 250.0, + "y": 540.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 330.0, + "y": 640.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 285.0, + "y": 745.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 285.0, + "y": 755.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 290.0, + "y": 805.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 440.0, + "y": 385.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#28", + "pos": { + "x": 440.0, + "y": 345.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 335.0, + "y": 270.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#30", + "pos": { + "x": 550.0, + "y": 570.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#32", + "pos": { + "x": 85.0, + "y": 590.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#33", + "pos": { + "x": 530.0, + "y": 270.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 150.0, + "y": 160.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 530.0, + "y": 100.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 120.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 215.0, + "y": 180.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 215.0, + "y": 160.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 215.0, + "y": 200.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 5.0, + "y": 25.0 + }, + { + "x": 5.0, + "y": 10.0 + } + ] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_MUX" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "MUX" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "Merger#1", + "pinName": "I0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_4" + }, + "name": "unnamedWire#100", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#101", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#4", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_1" + }, + "name": "unnamedWire#102", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_2" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O2" + }, + "name": "unnamedWire#103", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#4", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_3" + }, + "name": "unnamedWire#104", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_4" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O0" + }, + "name": "unnamedWire#105", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#4", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#106", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#5", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_4" + }, + "name": "unnamedWire#107", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_3" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O1" + }, + "name": "unnamedWire#108", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#5", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_2" + }, + "name": "unnamedWire#109", + "path": [] + }, + { + "pin1": { + "compName": "Merger#1", + "pinName": "I1" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O7" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_1" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O3" + }, + "name": "unnamedWire#110", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#5", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#111", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#0", + "pinName": "IN" + }, + "name": "unnamedWire#112", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I" + }, + "name": "unnamedWire#113", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y111" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I111" + }, + "name": "unnamedWire#114", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I110" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y110" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y101" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I101" + }, + "name": "unnamedWire#116", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I100" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y100" + }, + "name": "unnamedWire#117", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y011" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I011" + }, + "name": "unnamedWire#118", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y010" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I010" + }, + "name": "unnamedWire#119", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "Merger#1", + "pinName": "I2" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I001" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y001" + }, + "name": "unnamedWire#120", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y000" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I000" + }, + "name": "unnamedWire#121", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#12", + "pinName": "Y" + }, + "pin2": { + "compName": "TriStateBuffer#5", + "pinName": "EN" + }, + "name": "unnamedWire#122", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "B" + }, + "name": "unnamedWire#123", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#6", + "pinName": "I" + }, + "pin2": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "CT_MUX" + }, + "name": "unnamedWire#124", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#6", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S0" + }, + "name": "unnamedWire#125", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S1" + }, + "pin2": { + "compName": "Splitter#6", + "pinName": "O1" + }, + "name": "unnamedWire#126", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#6", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S2" + }, + "name": "unnamedWire#127", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "CT_EXP" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S0" + }, + "name": "unnamedWire#128", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I0" + }, + "name": "unnamedWire#129", + "path": [] + }, + { + "pin1": { + "compName": "Merger#1", + "pinName": "I3" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "A" + }, + "pin2": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "CT_INV" + }, + "name": "unnamedWire#130", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I1" + }, + "name": "unnamedWire#131", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I" + }, + "name": "unnamedWire#132", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#7", + "pinName": "I" + }, + "name": "unnamedWire#133", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#7", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "name": "unnamedWire#134", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#8", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#135", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "M" + }, + "name": "unnamedWire#136", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#8", + "pinName": "I" + }, + "name": "unnamedWire#137", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "OEN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B" + }, + "name": "unnamedWire#138", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "Merger#4", + "pinName": "I0" + }, + "name": "unnamedWire#139", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "pin2": { + "compName": "Merger#1", + "pinName": "I4" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "Merger#4", + "pinName": "I1" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O12" + }, + "name": "unnamedWire#140", + "path": [] + }, + { + "pin1": { + "compName": "Merger#4", + "pinName": "O" + }, + "pin2": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "I12-11" + }, + "name": "unnamedWire#141", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "C0_MUX" + }, + "pin2": { + "compName": "Splitter#9", + "pinName": "I" + }, + "name": "unnamedWire#142", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I1" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#143", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#10", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#144", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I0" + }, + "pin2": { + "compName": "Splitter#10", + "pinName": "O2" + }, + "name": "unnamedWire#145", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#9", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "S0" + }, + "name": "unnamedWire#146", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "B" + }, + "name": "unnamedWire#147", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "A" + }, + "pin2": { + "compName": "Splitter#9", + "pinName": "O0" + }, + "name": "unnamedWire#148", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#9", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#149", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "I5-0" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "S0" + }, + "name": "unnamedWire#150", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I1" + }, + "name": "unnamedWire#151", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I0" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Cx" + }, + "name": "unnamedWire#152", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "I1" + }, + "name": "unnamedWire#153", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "I0" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#154", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "S0" + }, + "pin2": { + "compName": "Splitter#9", + "pinName": "O3" + }, + "name": "unnamedWire#155", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "C0" + }, + "name": "unnamedWire#156", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "QIOn" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#157", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SIOn" + }, + "name": "unnamedWire#158", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SIO0" + }, + "name": "unnamedWire#159", + "path": [] + }, + { + "pin1": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "I" + }, + "pin2": { + "compName": "Merger#1", + "pinName": "O" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 40.0, + "y": 385.0 + }, + { + "x": 40.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "QIO0" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#160", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#1", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#161", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#2", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "name": "unnamedWire#162", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#3", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#163", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#4", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#164", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#3", + "pinName": "IN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "Y" + }, + "name": "unnamedWire#165", + "path": [] + }, + { + "pin1": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "SIO0_MUX" + }, + "pin2": { + "compName": "Splitter#11", + "pinName": "I" + }, + "name": "unnamedWire#166", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#11", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I00" + }, + "name": "unnamedWire#167", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#11", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "S1" + }, + "name": "unnamedWire#168", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "S0" + }, + "pin2": { + "compName": "Splitter#11", + "pinName": "O1" + }, + "name": "unnamedWire#169", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IOVR" + }, + "pin2": { + "compName": "Merger#2", + "pinName": "I0" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I01" + }, + "name": "unnamedWire#170", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I10" + }, + "name": "unnamedWire#171", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#8", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#172", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#173", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#12", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "S0" + }, + "name": "unnamedWire#174", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "S1" + }, + "pin2": { + "compName": "Splitter#12", + "pinName": "O2" + }, + "name": "unnamedWire#175", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#12", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "I00" + }, + "name": "unnamedWire#176", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "Y" + }, + "pin2": { + "compName": "TriStateBuffer#4", + "pinName": "IN" + }, + "name": "unnamedWire#177", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#12", + "pinName": "I" + }, + "pin2": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "QIO0_MUX" + }, + "name": "unnamedWire#178", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "I01" + }, + "name": "unnamedWire#179", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IN" + }, + "pin2": { + "compName": "Merger#2", + "pinName": "I1" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "I10" + }, + "name": "unnamedWire#180", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "I11" + }, + "name": "unnamedWire#181", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I11" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#182", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#13", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#183", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "S0" + }, + "name": "unnamedWire#184", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#185", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I000" + }, + "name": "unnamedWire#186", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I001" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#187", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#13", + "pinName": "I" + }, + "pin2": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "SIOn_MUX" + }, + "name": "unnamedWire#188", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#13", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "S2" + }, + "name": "unnamedWire#189", + "path": [] + }, + { + "pin1": { + "compName": "Merger#2", + "pinName": "I2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "IC" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#13", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "S1" + }, + "name": "unnamedWire#190", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I010" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#191", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I011" + }, + "name": "unnamedWire#192", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I100" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#193", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#21", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I111" + }, + "name": "unnamedWire#194", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#195", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I110" + }, + "pin2": { + "compName": "Splitter#7", + "pinName": "O1" + }, + "name": "unnamedWire#196", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "I01" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#197", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "I10" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#198", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "I101" + }, + "name": "unnamedWire#199", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_OVRRET" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "OVRRET" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IZ" + }, + "pin2": { + "compName": "Merger#2", + "pinName": "I3" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "B" + }, + "name": "unnamedWire#200", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "I11" + }, + "name": "unnamedWire#201", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "pin2": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "OEn" + }, + "name": "unnamedWire#202", + "path": [] + }, + { + "pin1": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "OE0" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#203", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "A" + }, + "name": "unnamedWire#204", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#21", + "pinName": "A" + }, + "name": "unnamedWire#205", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#21", + "pinName": "B" + }, + "pin2": { + "compName": "Splitter#7", + "pinName": "O0" + }, + "name": "unnamedWire#206", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "Y" + }, + "pin2": { + "compName": "TriStateBuffer#1", + "pinName": "IN" + }, + "name": "unnamedWire#207", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#14", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "S1" + }, + "name": "unnamedWire#208", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#14", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "S0" + }, + "name": "unnamedWire#209", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_CINV" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "CINV" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#14", + "pinName": "I" + }, + "pin2": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "QIOn_MUX" + }, + "name": "unnamedWire#210", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#14", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#22", + "pinName": "I00" + }, + "name": "unnamedWire#211", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#2", + "pinName": "IN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#23", + "pinName": "Y" + }, + "name": "unnamedWire#212", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_SE" + }, + "pin2": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "_SE" + }, + "name": "unnamedWire#213", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#3", + "pinName": "EN" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#214", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#4", + "pinName": "EN" + }, + "name": "unnamedWire#215", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#2", + "pinName": "EN" + }, + "pin2": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "name": "unnamedWire#218", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#1", + "pinName": "EN" + }, + "name": "unnamedWire#219", + "path": [] + }, + { + "pin1": { + "compName": "Merger#2", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#18", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "I0" + }, + "name": "unnamedWire#221", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "COVD_V" + }, + "name": "unnamedWire#222", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "I1" + }, + "pin2": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "name": "unnamedWire#223", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#18", + "pinName": "I0" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#224", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#18", + "pinName": "I1" + }, + "name": "unnamedWire#225", + "path": [] + }, + { + "pin1": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "MC_MUX" + }, + "pin2": { + "compName": "Splitter#15", + "pinName": "I" + }, + "name": "unnamedWire#226", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#15", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#18", + "pinName": "S0" + }, + "name": "unnamedWire#227", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#15", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "S0" + }, + "name": "unnamedWire#228", + "path": [] + }, + { + "pin1": { + "compName": "BitDisplay#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#229", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "OUT" + }, + "pin2": { + "compName": "BitDisplay#1", + "pinName": "" + }, + "name": "unnamedWire#230", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "IN" + }, + "pin2": { + "compName": "BitDisplay#2", + "pinName": "" + }, + "name": "unnamedWire#231", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "EN" + }, + "pin2": { + "compName": "BitDisplay#3", + "pinName": "" + }, + "name": "unnamedWire#232", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#12", + "pinName": "A" + }, + "name": "unnamedWire#233", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#12", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "name": "unnamedWire#234", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_OECT" + }, + "name": "unnamedWire#235", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#5", + "pinName": "OUT" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CT" + }, + "name": "unnamedWire#236", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#5", + "pinName": "IN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "name": "unnamedWire#237", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "mu" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "C" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "C" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "MSR_MUX" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "MUX" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "Am2904ShiftInstrDecode#0", + "pinName": "MC_EN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "COVD_EN" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_CEmu" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EOVR" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EN" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EC" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EZ" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "B" + }, + "pin2": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_WEZ" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_WEC" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YZ" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "YC" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YN" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "YOVR" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CEM" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "B" + }, + "pin2": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_WEN" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "muSR_WEOVR" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#61", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#62", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EOVR" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EN" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EC" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EZ" + }, + "name": "unnamedWire#69", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#70", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#71", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "B" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y2" + }, + "name": "unnamedWire#72", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#73", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y4" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EZ" + }, + "name": "unnamedWire#75", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EC" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A2" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EN" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EOVR" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A4" + }, + "name": "unnamedWire#78", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#79", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I4" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#80", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#81", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_OEY" + }, + "name": "unnamedWire#82", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A" + }, + "name": "unnamedWire#83", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "TriStateBuffer#0", + "pinName": "EN" + }, + "name": "unnamedWire#84", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_1" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y2" + }, + "name": "unnamedWire#86", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_3" + }, + "name": "unnamedWire#87", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y4" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "Merger#3", + "pinName": "I0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y4" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "Merger#3", + "pinName": "I1" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "Merger#3", + "pinName": "I2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y2" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "Merger#3", + "pinName": "I3" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "Merger#3", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#93", + "path": [] + }, + { + "pin1": { + "compName": "Am2904RegCTInstrDecode#0", + "pinName": "Y_MUX" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "I" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S0" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S0" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_1" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_2" + }, + "name": "unnamedWire#98", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_3" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O1" + }, + "name": "unnamedWire#99", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2904", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": { + "musr": { + "id": "delegating", + "params": { + "delegateTarget": "DeserializedSubmodelComponent#1" + } + }, + "msr": { + "id": "delegating", + "params": { + "delegateTarget": "DeserializedSubmodelComponent#0" + } + } + }, + "atomicHighLevelStates": {} + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904MSR.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904MSR.json new file mode 100644 index 00000000..5d492b49 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904MSR.json @@ -0,0 +1,1928 @@ +{ + "width": 45.0, + "height": 46.0, + "interfacePins": [ + { + "location": { + "x": 14.0, + "y": 46.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 27.5, + "y": 46.0 + }, + "name": "COVD_EN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 37.5, + "y": 46.0 + }, + "name": "COVD_V", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 31.0 + }, + "name": "I", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 4.0, + "y": 46.0 + }, + "name": "MUX", + "logicWidth": 3, + "usage": "INPUT" + }, + { + "location": { + "x": 45.0, + "y": 19.0 + }, + "name": "Q", + "logicWidth": 4, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 18.0 + }, + "name": "Y", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 15.5, + "y": 0.0 + }, + "name": "_EC", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 25.5, + "y": 0.0 + }, + "name": "_EN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.5, + "y": 0.2 + }, + "name": "_EOVR", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 5.5, + "y": 0.0 + }, + "name": "_EZ", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "mu", + "logicWidth": 4, + "usage": "INPUT" + } + ], + "innerScale": 0.1, + "submodel": { + "components": [ + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 55.0, + "y": 110.0 + } + }, + { + "id": "xor", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 35.0, + "y": 250.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 150.0, + "y": 280.0 + } + }, + { + "id": "not4", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 100.0, + "y": 330.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 110.0, + "y": 60.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 200.0, + "y": 230.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 250.0, + "y": 180.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 325.0, + "y": 290.0 + } + }, + { + "id": "and", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 380.0, + "y": 85.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 435.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 325.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 35.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 5.0, + "y": 165.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#2", + "pos": { + "x": 45.0, + "y": 425.0 + }, + "params": 3 + }, + { + "id": "Splitter", + "name": "Splitter#3", + "pos": { + "x": 5.0, + "y": 295.0 + }, + "params": 4 + }, + { + "id": "dff4_finewe", + "name": "dff4_finewe#0", + "pos": { + "x": 375.0, + "y": 170.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 29.0, + "y": 284.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 414.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 89.0, + "y": 84.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 89.0, + "y": 94.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 19.0, + "y": 294.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 194.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 89.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 319.0, + "y": 294.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 319.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 419.0, + "y": 184.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 424.0, + "y": 194.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 429.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 84.0, + "y": 344.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 94.0, + "y": 364.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 29.0, + "y": 254.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 74.0, + "y": 314.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 49.0, + "y": 114.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "C" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 140.0, + "y": 445.0 + }, + { + "x": 255.0, + "y": 445.0 + }, + { + "x": 255.0, + "y": 280.0 + }, + { + "x": 340.0, + "y": 280.0 + }, + { + "x": 340.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EOVR" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "_WE4" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 355.0, + "y": 30.0 + }, + { + "x": 355.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "mu" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "I" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 35.0, + "y": 125.0 + }, + { + "x": 35.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 30.0, + "y": 45.0 + }, + { + "x": 30.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 25.0, + "y": 55.0 + }, + { + "x": 25.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 20.0, + "y": 65.0 + }, + { + "x": 20.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EN" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "_WE3" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 255.0, + "y": 25.0 + }, + { + "x": 360.0, + "y": 25.0 + }, + { + "x": 360.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "MUX" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "I" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 40.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "I" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "B" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 25.0, + "y": 305.0 + }, + { + "x": 25.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 60.0, + "y": 445.0 + }, + { + "x": 60.0, + "y": 415.0 + }, + { + "x": 30.0, + "y": 415.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "Q4" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EC" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 155.0, + "y": 20.0 + }, + { + "x": 365.0, + "y": 20.0 + }, + { + "x": 365.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_1" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y2" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_3" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y4" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A1" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 415.0, + "y": 380.0 + }, + { + "x": 80.0, + "y": 380.0 + }, + { + "x": 80.0, + "y": 335.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [ + { + "x": 420.0, + "y": 385.0 + }, + { + "x": 85.0, + "y": 385.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A3" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 425.0, + "y": 390.0 + }, + { + "x": 90.0, + "y": 390.0 + }, + { + "x": 90.0, + "y": 355.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 430.0, + "y": 395.0 + }, + { + "x": 95.0, + "y": 395.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O3" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_4" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 85.0, + "y": 325.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EZ" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "_WE1" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 55.0, + "y": 15.0 + }, + { + "x": 370.0, + "y": 15.0 + }, + { + "x": 370.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_2" + }, + "name": "unnamedWire#40", + "path": [ + { + "x": 95.0, + "y": 305.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 30.0, + "y": 230.0 + }, + { + "x": 50.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_1" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 50.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_3" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_4" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_2" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_1" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 90.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A4" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_1" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_1" + }, + "name": "unnamedWire#59", + "path": [ + { + "x": 20.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 75.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_4" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 80.0, + "y": 325.0 + }, + { + "x": 80.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_1" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y2" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_3" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y4" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#67", + "path": [ + { + "x": 195.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S0" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "S0" + }, + "name": "unnamedWire#69", + "path": [ + { + "x": 105.0, + "y": 235.0 + }, + { + "x": 105.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y4" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "D4" + }, + "name": "unnamedWire#70", + "path": [ + { + "x": 295.0, + "y": 215.0 + }, + { + "x": 295.0, + "y": 255.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y3" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 300.0, + "y": 245.0 + }, + { + "x": 300.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "_WE2" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 420.0, + "y": 90.0 + }, + { + "x": 420.0, + "y": 110.0 + }, + { + "x": 365.0, + "y": 110.0 + }, + { + "x": 365.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y1" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 310.0, + "y": 225.0 + }, + { + "x": 310.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y4" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_3" + }, + "name": "unnamedWire#75", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y2" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_1" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y4" + }, + "name": "unnamedWire#78", + "path": [ + { + "x": 200.0, + "y": 225.0 + }, + { + "x": 200.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_3" + }, + "name": "unnamedWire#79", + "path": [ + { + "x": 205.0, + "y": 85.0 + }, + { + "x": 205.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y2" + }, + "name": "unnamedWire#80", + "path": [ + { + "x": 210.0, + "y": 205.0 + }, + { + "x": 210.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_1" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 215.0, + "y": 65.0 + }, + { + "x": 215.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "S0" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 245.0, + "y": 425.0 + }, + { + "x": 245.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#83", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "COVD_EN" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 275.0, + "y": 295.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S0" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "COVD_V" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I1" + }, + "name": "unnamedWire#86", + "path": [ + { + "x": 375.0, + "y": 325.0 + }, + { + "x": 320.0, + "y": 325.0 + }, + { + "x": 320.0, + "y": 315.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I0" + }, + "name": "unnamedWire#87", + "path": [ + { + "x": 305.0, + "y": 195.0 + }, + { + "x": 305.0, + "y": 305.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "D2" + }, + "name": "unnamedWire#88", + "path": [ + { + "x": 365.0, + "y": 295.0 + }, + { + "x": 365.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "B" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#92", + "path": [ + { + "x": 320.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#93", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "MSR", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q": { + "id": "delegating", + "params": { + "delegateTarget": "dff4_finewe#0", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904TestLogic.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904TestLogic.json new file mode 100644 index 00000000..3ec88ac4 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904TestLogic.json @@ -0,0 +1,775 @@ +{ + "width": 60.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 60.0, + "y": 10.0 + }, + "name": "Y000", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 20.0 + }, + "name": "Y001", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 30.0 + }, + "name": "Y010", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 40.0 + }, + "name": "Y011", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 50.0 + }, + "name": "Y100", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 60.0 + }, + "name": "Y101", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 70.0 + }, + "name": "Y110", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 80.0 + }, + "name": "Y111", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "xor", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 40.0, + "y": 20.0 + } + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 85.0, + "y": 20.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 45.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 120.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 45.0, + "y": 105.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 80.0, + "y": 115.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 80.0, + "y": 165.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 110.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 29.0, + "y": 129.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 34.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 39.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 79.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 79.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 19.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 24.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 39.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 74.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 74.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 24.0, + "y": 149.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "A" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 110.0, + "y": 20.0 + }, + { + "x": 110.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 20.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 40.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 115.0, + "y": 60.0 + }, + { + "x": 115.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y001" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 80.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y000" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 25.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y011" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 35.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y010" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y100" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 70.0, + "y": 115.0 + }, + { + "x": 70.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y101" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y110" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 30.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 75.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 40.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 25.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y111" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 30.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 20.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 35.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Test\nlogic", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904muSR.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904muSR.json new file mode 100644 index 00000000..79106b07 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904muSR.json @@ -0,0 +1,1101 @@ +{ + "width": 45.0, + "height": 46.0, + "interfacePins": [ + { + "location": { + "x": 14.0, + "y": 46.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 27.5, + "y": 46.0 + }, + "name": "CINV", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 31.0 + }, + "name": "I", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 13.5 + }, + "name": "M", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 4.0, + "y": 46.0 + }, + "name": "MUX", + "logicWidth": 2, + "usage": "INPUT" + }, + { + "location": { + "x": 37.5, + "y": 46.0 + }, + "name": "OVRRET", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 45.0, + "y": 19.0 + }, + "name": "Q", + "logicWidth": 4, + "usage": "OUTPUT" + }, + { + "location": { + "x": 15.5, + "y": 0.0 + }, + "name": "_EC", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 25.5, + "y": 0.0 + }, + "name": "_EN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.5, + "y": 0.0 + }, + "name": "_EOVR", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 5.5, + "y": 0.0 + }, + "name": "_EZ", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.1, + "submodel": { + "components": [ + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 45.0, + "y": 240.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 100.0, + "y": 190.0 + } + }, + { + "id": "xor", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 215.0, + "y": 200.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 435.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 245.0, + "y": 245.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 215.0, + "y": 255.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 215.0, + "y": 235.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 120.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 5.0, + "y": 295.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#2", + "pos": { + "x": 45.0, + "y": 430.0 + }, + "params": 2 + }, + { + "id": "dff4_finewe", + "name": "dff4_finewe#0", + "pos": { + "x": 375.0, + "y": 170.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 89.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 89.0, + "y": 224.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 89.0, + "y": 214.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 429.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 209.0, + "y": 244.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I3" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I2" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "Q2" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 20.0, + "y": 150.0 + }, + { + "x": 20.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 25.0, + "y": 140.0 + }, + { + "x": 25.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 30.0, + "y": 130.0 + }, + { + "x": 30.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "MUX" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "I" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 40.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 90.0, + "y": 440.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_4" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_2" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "Q3" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_1" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_1" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 90.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_2" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_4" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 40.0, + "y": 235.0 + }, + { + "x": 40.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S0" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 85.0, + "y": 430.0 + }, + { + "x": 85.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 240.0, + "y": 245.0 + }, + { + "x": 240.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "B" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 240.0, + "y": 260.0 + }, + { + "x": 240.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "OVRRET" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 375.0, + "y": 360.0 + }, + { + "x": 205.0, + "y": 360.0 + }, + { + "x": 205.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 430.0, + "y": 280.0 + }, + { + "x": 210.0, + "y": 280.0 + }, + { + "x": 210.0, + "y": 270.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "CINV" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 275.0, + "y": 390.0 + }, + { + "x": 190.0, + "y": 390.0 + }, + { + "x": 190.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "_WE1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EZ" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 370.0, + "y": 185.0 + }, + { + "x": 370.0, + "y": 5.0 + }, + { + "x": 55.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "C" + }, + "name": "unnamedWire#38", + "path": [ + { + "x": 140.0, + "y": 325.0 + }, + { + "x": 345.0, + "y": 325.0 + }, + { + "x": 345.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EOVR" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "_WE4" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 355.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "_WE3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EN" + }, + "name": "unnamedWire#40", + "path": [ + { + "x": 360.0, + "y": 205.0 + }, + { + "x": 360.0, + "y": 15.0 + }, + { + "x": 255.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EC" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "_WE2" + }, + "name": "unnamedWire#41", + "path": [ + { + "x": 155.0, + "y": 10.0 + }, + { + "x": 365.0, + "y": 10.0 + }, + { + "x": 365.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y1" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 315.0, + "y": 225.0 + }, + { + "x": 315.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "D2" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 310.0, + "y": 205.0 + }, + { + "x": 310.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "dff4_finewe#0", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y3" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 305.0, + "y": 245.0 + }, + { + "x": 305.0, + "y": 225.0 + }, + { + "x": 170.0, + "y": 225.0 + }, + { + "x": 170.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y4" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 160.0, + "y": 245.0 + }, + { + "x": 160.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "dff4_finewe#0", + "pinName": "D4" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 210.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 210.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 35.0, + "y": 120.0 + }, + { + "x": 35.0, + "y": 255.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "M" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "I" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "muSR", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q": { + "id": "delegating", + "params": { + "delegateTarget": "dff4_finewe#0", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904.json deleted file mode 100644 index 95fd7863..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904.json +++ /dev/null @@ -1,3999 +0,0 @@ -{ - "width": 120.0, - "height": 178.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 120.0, - "y": 108.0 - }, - "name": "C0", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 120.0, - "y": 60.0 - }, - "name": "CT", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 110.0 - }, - "name": "Cx", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 61.0 - }, - "name": "I", - "logicWidth": 13, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "IC", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 20.0 - }, - "name": "IN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "IOVR", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 10.0 - }, - "name": "IZ", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 120.0, - "y": 128.0 - }, - "name": "QIO0", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 0.0, - "y": 128.0 - }, - "name": "QIOn", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 120.0, - "y": 118.0 - }, - "name": "SIO0", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 0.0, - "y": 119.0 - }, - "name": "SIOn", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 120.0, - "y": 17.0 - }, - "name": "YC", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 120.0, - "y": 21.0 - }, - "name": "YN", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 120.0, - "y": 25.0 - }, - "name": "YOVR", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 120.0, - "y": 11.0 - }, - "name": "YZ", - "logicWidth": 1, - "usage": "TRISTATE" - }, - { - "location": { - "x": 0.0, - "y": 30.0 - }, - "name": "_CEM", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 33.0 - }, - "name": "_CEmu", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 38.0 - }, - "name": "_EC", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 40.0 - }, - "name": "_EN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 42.0 - }, - "name": "_EOVR", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 36.0 - }, - "name": "_EZ", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 120.0, - "y": 51.0 - }, - "name": "_OECT", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 61.0, - "y": 0.0 - }, - "name": "_OEY", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 83.0 - }, - "name": "_SE", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUIAm2904MSR", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 225.0, - "y": 95.0 - } - }, - { - "id": "GUIAm2904muSR", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 270.0, - "y": 250.0 - } - }, - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#10", - "pos": { - "x": 455.0, - "y": 355.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#11", - "pos": { - "x": 265.0, - "y": 515.0 - } - }, - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#12", - "pos": { - "x": 315.0, - "y": 505.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#13", - "pos": { - "x": 365.0, - "y": 485.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#14", - "pos": { - "x": 415.0, - "y": 465.0 - } - }, - { - "id": "GUImux2", - "name": "DeserializedSubmodelComponent#15", - "pos": { - "x": 435.0, - "y": 575.0 - } - }, - { - "id": "GUImux2", - "name": "DeserializedSubmodelComponent#16", - "pos": { - "x": 435.0, - "y": 655.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#17", - "pos": { - "x": 190.0, - "y": 460.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#18", - "pos": { - "x": 135.0, - "y": 470.0 - } - }, - { - "id": "GUIand", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 380.0, - "y": 125.0 - } - }, - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#21", - "pos": { - "x": 250.0, - "y": 820.0 - } - }, - { - "id": "GUImux2", - "name": "DeserializedSubmodelComponent#22", - "pos": { - "x": 120.0, - "y": 720.0 - } - }, - { - "id": "GUImux3", - "name": "DeserializedSubmodelComponent#23", - "pos": { - "x": 300.0, - "y": 715.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#3", - "pos": { - "x": 470.0, - "y": 160.0 - } - }, - { - "id": "GUInot4", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 135.0, - "y": 40.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 415.0, - "y": 210.0 - } - }, - { - "id": "GUIAm2904TestLogic", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 225.0, - "y": 340.0 - } - }, - { - "id": "GUImux3", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 300.0, - "y": 310.0 - } - }, - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 495.0, - "y": 295.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#9", - "pos": { - "x": 450.0, - "y": 310.0 - } - }, - { - "id": "GUIAm2904RegCTInstrDecode", - "name": "GUIAm2904RegCTInstrDecode#0", - "pos": { - "x": 50.0, - "y": 240.0 - } - }, - { - "id": "GUIAm2904ShiftInstrDecode", - "name": "GUIAm2904ShiftInstrDecode#0", - "pos": { - "x": 50.0, - "y": 360.0 - } - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#0", - "pos": { - "x": 530.0, - "y": 70.0 - }, - "params": 4 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#1", - "pos": { - "x": 565.0, - "y": 180.0 - }, - "params": 4 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#2", - "pos": { - "x": 530.0, - "y": 200.0 - }, - "params": 4 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#3", - "pos": { - "x": 560.0, - "y": 150.0 - }, - "params": 1 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 25.0, - "y": 315.0 - }, - "params": 6 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#1", - "pos": { - "x": 25.0, - "y": 265.0 - }, - "params": 5 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#2", - "pos": { - "x": 15.0, - "y": 65.0 - }, - "params": 4 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#3", - "pos": { - "x": 510.0, - "y": 165.0 - }, - "params": 4 - }, - { - "id": "GUIMerger", - "name": "GUIMerger#4", - "pos": { - "x": 25.0, - "y": 245.0 - }, - "params": 2 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 190.0, - "y": 145.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 130.0, - "y": 5.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#10", - "pos": { - "x": 340.0, - "y": 120.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#12", - "pos": { - "x": 540.0, - "y": 265.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 225.0, - "y": 195.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 225.0, - "y": 215.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 225.0, - "y": 155.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 225.0, - "y": 175.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#6", - "pos": { - "x": 205.0, - "y": 70.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#7", - "pos": { - "x": 205.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#8", - "pos": { - "x": 205.0, - "y": 30.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#9", - "pos": { - "x": 205.0, - "y": 10.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 10.0, - "y": 245.0 - }, - "params": 13 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 555.0, - "y": 80.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#10", - "pos": { - "x": 420.0, - "y": 410.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#11", - "pos": { - "x": 405.0, - "y": 585.0 - }, - "params": 3 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#12", - "pos": { - "x": 410.0, - "y": 665.0 - }, - "params": 3 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#13", - "pos": { - "x": 265.0, - "y": 725.0 - }, - "params": 3 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#14", - "pos": { - "x": 90.0, - "y": 730.0 - }, - "params": 3 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#15", - "pos": { - "x": 120.0, - "y": 455.0 - }, - "params": 2 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#2", - "pos": { - "x": 395.0, - "y": 195.0 - }, - "params": 2 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#3", - "pos": { - "x": 450.0, - "y": 175.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#4", - "pos": { - "x": 395.0, - "y": 225.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#5", - "pos": { - "x": 395.0, - "y": 265.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#6", - "pos": { - "x": 285.0, - "y": 320.0 - }, - "params": 3 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#7", - "pos": { - "x": 420.0, - "y": 325.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#8", - "pos": { - "x": 420.0, - "y": 365.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#9", - "pos": { - "x": 240.0, - "y": 475.0 - }, - "params": 4 - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#0", - "pos": { - "x": 535.0, - "y": 165.0 - }, - "params": { - "logicWidth": 4, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#1", - "pos": { - "x": 10.0, - "y": 650.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#2", - "pos": { - "x": 10.0, - "y": 605.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#3", - "pos": { - "x": 560.0, - "y": 595.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#4", - "pos": { - "x": 565.0, - "y": 655.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#5", - "pos": { - "x": 560.0, - "y": 290.0 - }, - "params": { - "logicWidth": 1, - "orientation": "RIGHT" - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 165.0, - "y": 150.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 180.0, - "y": 135.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 195.0, - "y": 55.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 195.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 195.0, - "y": 35.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 330.0, - "y": 125.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 520.0, - "y": 190.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 255.0, - "y": 265.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 255.0, - "y": 255.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#17", - "pos": { - "x": 360.0, - "y": 495.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#18", - "pos": { - "x": 35.0, - "y": 640.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#19", - "pos": { - "x": 35.0, - "y": 595.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 295.0, - "y": 120.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#20", - "pos": { - "x": 585.0, - "y": 590.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#21", - "pos": { - "x": 585.0, - "y": 640.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#22", - "pos": { - "x": 250.0, - "y": 540.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#23", - "pos": { - "x": 330.0, - "y": 640.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#24", - "pos": { - "x": 285.0, - "y": 745.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#25", - "pos": { - "x": 285.0, - "y": 755.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#26", - "pos": { - "x": 290.0, - "y": 805.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#27", - "pos": { - "x": 440.0, - "y": 385.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#28", - "pos": { - "x": 440.0, - "y": 345.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 335.0, - "y": 270.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#30", - "pos": { - "x": 550.0, - "y": 570.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#32", - "pos": { - "x": 85.0, - "y": 590.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#33", - "pos": { - "x": 530.0, - "y": 270.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 150.0, - "y": 160.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 530.0, - "y": 100.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 120.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 215.0, - "y": 180.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 215.0, - "y": 160.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 215.0, - "y": 200.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 5.0, - "y": 25.0 - }, - { - "x": 5.0, - "y": 10.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_MUX" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "MUX" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O6" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "I0" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I0_4" - }, - "name": "unnamedWire#100", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#101", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#4", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_1" - }, - "name": "unnamedWire#102", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_2" - }, - "pin2": { - "compName": "GUISplitter#4", - "pinName": "O2" - }, - "name": "unnamedWire#103", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#4", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_3" - }, - "name": "unnamedWire#104", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_4" - }, - "pin2": { - "compName": "GUISplitter#4", - "pinName": "O0" - }, - "name": "unnamedWire#105", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#4", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#106", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#5", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_4" - }, - "name": "unnamedWire#107", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_3" - }, - "pin2": { - "compName": "GUISplitter#5", - "pinName": "O1" - }, - "name": "unnamedWire#108", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#5", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_2" - }, - "name": "unnamedWire#109", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#1", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O7" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_1" - }, - "pin2": { - "compName": "GUISplitter#5", - "pinName": "O3" - }, - "name": "unnamedWire#110", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#5", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#111", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#0", - "pinName": "IN" - }, - "name": "unnamedWire#112", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I" - }, - "name": "unnamedWire#113", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y111" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I111" - }, - "name": "unnamedWire#114", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I110" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y110" - }, - "name": "unnamedWire#115", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y101" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I101" - }, - "name": "unnamedWire#116", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I100" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y100" - }, - "name": "unnamedWire#117", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y011" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I011" - }, - "name": "unnamedWire#118", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y010" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I010" - }, - "name": "unnamedWire#119", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "I2" - }, - "name": "unnamedWire#12", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I001" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y001" - }, - "name": "unnamedWire#120", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y000" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I000" - }, - "name": "unnamedWire#121", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#12", - "pinName": "Y" - }, - "pin2": { - "compName": "GUITriStateBuffer#5", - "pinName": "EN" - }, - "name": "unnamedWire#122", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "B" - }, - "name": "unnamedWire#123", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#6", - "pinName": "I" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "CT_MUX" - }, - "name": "unnamedWire#124", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#6", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S0" - }, - "name": "unnamedWire#125", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S1" - }, - "pin2": { - "compName": "GUISplitter#6", - "pinName": "O1" - }, - "name": "unnamedWire#126", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#6", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S2" - }, - "name": "unnamedWire#127", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "CT_EXP" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "S0" - }, - "name": "unnamedWire#128", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "I0" - }, - "name": "unnamedWire#129", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#1", - "pinName": "I3" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O9" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "A" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "CT_INV" - }, - "name": "unnamedWire#130", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#9", - "pinName": "I1" - }, - "name": "unnamedWire#131", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I" - }, - "name": "unnamedWire#132", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#7", - "pinName": "I" - }, - "name": "unnamedWire#133", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#7", - "pinName": "O2" - }, - "pin2": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "name": "unnamedWire#134", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#8", - "pinName": "O1" - }, - "pin2": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "name": "unnamedWire#135", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "M" - }, - "name": "unnamedWire#136", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#8", - "pinName": "I" - }, - "name": "unnamedWire#137", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "OEN" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "B" - }, - "name": "unnamedWire#138", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O11" - }, - "pin2": { - "compName": "GUIMerger#4", - "pinName": "I0" - }, - "name": "unnamedWire#139", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "I4" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#4", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O12" - }, - "name": "unnamedWire#140", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#4", - "pinName": "O" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "I12-11" - }, - "name": "unnamedWire#141", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "C0_MUX" - }, - "pin2": { - "compName": "GUISplitter#9", - "pinName": "I" - }, - "name": "unnamedWire#142", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I1" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#143", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#10", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#144", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "I0" - }, - "pin2": { - "compName": "GUISplitter#10", - "pinName": "O2" - }, - "name": "unnamedWire#145", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#9", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "S0" - }, - "name": "unnamedWire#146", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#11", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "B" - }, - "name": "unnamedWire#147", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "A" - }, - "pin2": { - "compName": "GUISplitter#9", - "pinName": "O0" - }, - "name": "unnamedWire#148", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#9", - "pinName": "O2" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#149", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "I5-0" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "S0" - }, - "name": "unnamedWire#150", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#12", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I1" - }, - "name": "unnamedWire#151", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "I0" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Cx" - }, - "name": "unnamedWire#152", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#13", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "I1" - }, - "name": "unnamedWire#153", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "I0" - }, - "pin2": { - "compName": "WireCrossPoint#17", - "pinName": "" - }, - "name": "unnamedWire#154", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "S0" - }, - "pin2": { - "compName": "GUISplitter#9", - "pinName": "O3" - }, - "name": "unnamedWire#155", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#14", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "C0" - }, - "name": "unnamedWire#156", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "QIOn" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#157", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SIOn" - }, - "name": "unnamedWire#158", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "SIO0" - }, - "name": "unnamedWire#159", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "I" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "O" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 40.0, - "y": 385.0 - }, - { - "x": 40.0, - "y": 285.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "QIO0" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#160", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#1", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "name": "unnamedWire#161", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#2", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "name": "unnamedWire#162", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#3", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#163", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#4", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#164", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#3", - "pinName": "IN" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "Y" - }, - "name": "unnamedWire#165", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "SIO0_MUX" - }, - "pin2": { - "compName": "GUISplitter#11", - "pinName": "I" - }, - "name": "unnamedWire#166", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#11", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I00" - }, - "name": "unnamedWire#167", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#11", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "S1" - }, - "name": "unnamedWire#168", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "S0" - }, - "pin2": { - "compName": "GUISplitter#11", - "pinName": "O1" - }, - "name": "unnamedWire#169", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "IOVR" - }, - "pin2": { - "compName": "GUIMerger#2", - "pinName": "I0" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I01" - }, - "name": "unnamedWire#170", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I10" - }, - "name": "unnamedWire#171", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#8", - "pinName": "O2" - }, - "pin2": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "name": "unnamedWire#172", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#22", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#173", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#12", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "S0" - }, - "name": "unnamedWire#174", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "S1" - }, - "pin2": { - "compName": "GUISplitter#12", - "pinName": "O2" - }, - "name": "unnamedWire#175", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#12", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "I00" - }, - "name": "unnamedWire#176", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "Y" - }, - "pin2": { - "compName": "GUITriStateBuffer#4", - "pinName": "IN" - }, - "name": "unnamedWire#177", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#12", - "pinName": "I" - }, - "pin2": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "QIO0_MUX" - }, - "name": "unnamedWire#178", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "I01" - }, - "name": "unnamedWire#179", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "IN" - }, - "pin2": { - "compName": "GUIMerger#2", - "pinName": "I1" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#18", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "I10" - }, - "name": "unnamedWire#180", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#16", - "pinName": "I11" - }, - "name": "unnamedWire#181", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#15", - "pinName": "I11" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#182", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#13", - "pinName": "O0" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#183", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "S0" - }, - "name": "unnamedWire#184", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#24", - "pinName": "" - }, - "name": "unnamedWire#185", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I000" - }, - "name": "unnamedWire#186", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I001" - }, - "pin2": { - "compName": "WireCrossPoint#25", - "pinName": "" - }, - "name": "unnamedWire#187", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#13", - "pinName": "I" - }, - "pin2": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "SIOn_MUX" - }, - "name": "unnamedWire#188", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#13", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "S2" - }, - "name": "unnamedWire#189", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#2", - "pinName": "I2" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "IC" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#13", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "S1" - }, - "name": "unnamedWire#190", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I010" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#191", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I011" - }, - "name": "unnamedWire#192", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I100" - }, - "pin2": { - "compName": "WireCrossPoint#23", - "pinName": "" - }, - "name": "unnamedWire#193", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#21", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I111" - }, - "name": "unnamedWire#194", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "name": "unnamedWire#195", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I110" - }, - "pin2": { - "compName": "GUISplitter#7", - "pinName": "O1" - }, - "name": "unnamedWire#196", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "I01" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#197", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "I10" - }, - "pin2": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "name": "unnamedWire#198", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "I101" - }, - "name": "unnamedWire#199", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_OVRRET" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "OVRRET" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "IZ" - }, - "pin2": { - "compName": "GUIMerger#2", - "pinName": "I3" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#27", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "B" - }, - "name": "unnamedWire#200", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#26", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "I11" - }, - "name": "unnamedWire#201", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#32", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "OEn" - }, - "name": "unnamedWire#202", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "OE0" - }, - "pin2": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "name": "unnamedWire#203", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#10", - "pinName": "A" - }, - "name": "unnamedWire#204", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#28", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#21", - "pinName": "A" - }, - "name": "unnamedWire#205", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#21", - "pinName": "B" - }, - "pin2": { - "compName": "GUISplitter#7", - "pinName": "O0" - }, - "name": "unnamedWire#206", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "Y" - }, - "pin2": { - "compName": "GUITriStateBuffer#1", - "pinName": "IN" - }, - "name": "unnamedWire#207", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#14", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "S1" - }, - "name": "unnamedWire#208", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#14", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "S0" - }, - "name": "unnamedWire#209", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_CINV" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "CINV" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#14", - "pinName": "I" - }, - "pin2": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "QIOn_MUX" - }, - "name": "unnamedWire#210", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#14", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#22", - "pinName": "I00" - }, - "name": "unnamedWire#211", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#2", - "pinName": "IN" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#23", - "pinName": "Y" - }, - "name": "unnamedWire#212", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_SE" - }, - "pin2": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "_SE" - }, - "name": "unnamedWire#213", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#3", - "pinName": "EN" - }, - "pin2": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "name": "unnamedWire#214", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#30", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#4", - "pinName": "EN" - }, - "name": "unnamedWire#215", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#2", - "pinName": "EN" - }, - "pin2": { - "compName": "WireCrossPoint#32", - "pinName": "" - }, - "name": "unnamedWire#218", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#32", - "pinName": "" - }, - "pin2": { - "compName": "GUITriStateBuffer#1", - "pinName": "EN" - }, - "name": "unnamedWire#219", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#2", - "pinName": "O" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#18", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "I0" - }, - "name": "unnamedWire#221", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "COVD_V" - }, - "name": "unnamedWire#222", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "I1" - }, - "pin2": { - "compName": "WireCrossPoint#19", - "pinName": "" - }, - "name": "unnamedWire#223", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#18", - "pinName": "I0" - }, - "pin2": { - "compName": "WireCrossPoint#20", - "pinName": "" - }, - "name": "unnamedWire#224", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#21", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#18", - "pinName": "I1" - }, - "name": "unnamedWire#225", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "MC_MUX" - }, - "pin2": { - "compName": "GUISplitter#15", - "pinName": "I" - }, - "name": "unnamedWire#226", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#15", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#18", - "pinName": "S0" - }, - "name": "unnamedWire#227", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#15", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#17", - "pinName": "S0" - }, - "name": "unnamedWire#228", - "path": [] - }, - { - "pin1": { - "compName": "GUIBitDisplay#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#229", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "OUT" - }, - "pin2": { - "compName": "GUIBitDisplay#1", - "pinName": "" - }, - "name": "unnamedWire#230", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "IN" - }, - "pin2": { - "compName": "GUIBitDisplay#2", - "pinName": "" - }, - "name": "unnamedWire#231", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "EN" - }, - "pin2": { - "compName": "GUIBitDisplay#3", - "pinName": "" - }, - "name": "unnamedWire#232", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#33", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#12", - "pinName": "A" - }, - "name": "unnamedWire#233", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#12", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#33", - "pinName": "" - }, - "name": "unnamedWire#234", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#33", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_OECT" - }, - "name": "unnamedWire#235", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#5", - "pinName": "OUT" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "CT" - }, - "name": "unnamedWire#236", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#5", - "pinName": "IN" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Y" - }, - "name": "unnamedWire#237", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "mu" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "C" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "C" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "MSR_MUX" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "MUX" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "MC_EN" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "COVD_EN" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_CEmu" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#42", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "_EOVR" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "_EN" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "_EC" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "name": "unnamedWire#45", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "_EZ" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_WEZ" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_WEC" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#48", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "YZ" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "YC" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "YN" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "YOVR" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y" - }, - "name": "unnamedWire#54", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_CEM" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_WEN" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "muSR_WEOVR" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "name": "unnamedWire#59", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "A" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#7", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#61", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#8", - "pinName": "A" - }, - "name": "unnamedWire#62", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#9", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#63", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "name": "unnamedWire#64", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#6", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "_EOVR" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "_EN" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "Y" - }, - "name": "unnamedWire#67", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "_EC" - }, - "name": "unnamedWire#68", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#9", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "_EZ" - }, - "name": "unnamedWire#69", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#70", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUINandGate#9", - "pinName": "B" - }, - "name": "unnamedWire#71", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#8", - "pinName": "B" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y2" - }, - "name": "unnamedWire#72", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUINandGate#7", - "pinName": "B" - }, - "name": "unnamedWire#73", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUINandGate#6", - "pinName": "B" - }, - "name": "unnamedWire#74", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "A1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_EZ" - }, - "name": "unnamedWire#75", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EC" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "A2" - }, - "name": "unnamedWire#76", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "A3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_EN" - }, - "name": "unnamedWire#77", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EOVR" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "A4" - }, - "name": "unnamedWire#78", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "OUT" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#79", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I4" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#10", - "pinName": "A" - }, - "name": "unnamedWire#80", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#10", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#81", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_OEY" - }, - "name": "unnamedWire#82", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#10", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "A" - }, - "name": "unnamedWire#83", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUITriStateBuffer#0", - "pinName": "EN" - }, - "name": "unnamedWire#84", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I1_1" - }, - "name": "unnamedWire#85", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I1_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y2" - }, - "name": "unnamedWire#86", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I1_3" - }, - "name": "unnamedWire#87", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I1_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y4" - }, - "name": "unnamedWire#88", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#3", - "pinName": "I0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y4" - }, - "name": "unnamedWire#89", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O5" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIMerger#3", - "pinName": "I1" - }, - "name": "unnamedWire#90", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#3", - "pinName": "I2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y2" - }, - "name": "unnamedWire#91", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIMerger#3", - "pinName": "I3" - }, - "name": "unnamedWire#92", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#3", - "pinName": "O" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#93", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "Y_MUX" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "I" - }, - "name": "unnamedWire#94", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "S0" - }, - "name": "unnamedWire#95", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "S0" - }, - "name": "unnamedWire#96", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I0_1" - }, - "name": "unnamedWire#97", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I0_2" - }, - "name": "unnamedWire#98", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "I0_3" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "O1" - }, - "name": "unnamedWire#99", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "Am2904", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": { - "musr": { - "id": "delegating", - "params": { - "delegateTarget": "DeserializedSubmodelComponent#1" - } - }, - "msr": { - "id": "delegating", - "params": { - "delegateTarget": "DeserializedSubmodelComponent#0" - } - } - }, - "atomicHighLevelStates": {} - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904MSR.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904MSR.json deleted file mode 100644 index c1b8cbc5..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904MSR.json +++ /dev/null @@ -1,1928 +0,0 @@ -{ - "width": 45.0, - "height": 46.0, - "interfacePins": [ - { - "location": { - "x": 14.0, - "y": 46.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 27.5, - "y": 46.0 - }, - "name": "COVD_EN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 37.5, - "y": 46.0 - }, - "name": "COVD_V", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 31.0 - }, - "name": "I", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 4.0, - "y": 46.0 - }, - "name": "MUX", - "logicWidth": 3, - "usage": "INPUT" - }, - { - "location": { - "x": 45.0, - "y": 19.0 - }, - "name": "Q", - "logicWidth": 4, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 18.0 - }, - "name": "Y", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 15.5, - "y": 0.0 - }, - "name": "_EC", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 25.5, - "y": 0.0 - }, - "name": "_EN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.5, - "y": 0.2 - }, - "name": "_EOVR", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 5.5, - "y": 0.0 - }, - "name": "_EZ", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "mu", - "logicWidth": 4, - "usage": "INPUT" - } - ], - "innerScale": 0.1, - "submodel": { - "components": [ - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 55.0, - "y": 110.0 - } - }, - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 35.0, - "y": 250.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 150.0, - "y": 280.0 - } - }, - { - "id": "GUInot4", - "name": "DeserializedSubmodelComponent#3", - "pos": { - "x": 100.0, - "y": 330.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#4", - "pos": { - "x": 110.0, - "y": 60.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#5", - "pos": { - "x": 200.0, - "y": 230.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#6", - "pos": { - "x": 250.0, - "y": 180.0 - } - }, - { - "id": "GUImux1", - "name": "DeserializedSubmodelComponent#7", - "pos": { - "x": 325.0, - "y": 290.0 - } - }, - { - "id": "GUIand", - "name": "DeserializedSubmodelComponent#8", - "pos": { - "x": 380.0, - "y": 85.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 435.0, - "y": 175.0 - }, - "params": 4 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 325.0, - "y": 90.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 5.0, - "y": 35.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 5.0, - "y": 165.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#2", - "pos": { - "x": 45.0, - "y": 425.0 - }, - "params": 3 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#3", - "pos": { - "x": 5.0, - "y": 295.0 - }, - "params": 4 - }, - { - "id": "GUIdff4_finewe", - "name": "GUIdff4_finewe#0", - "pos": { - "x": 375.0, - "y": 170.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 29.0, - "y": 284.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 414.0, - "y": 174.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 89.0, - "y": 84.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#11", - "pos": { - "x": 89.0, - "y": 94.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#12", - "pos": { - "x": 19.0, - "y": 294.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#13", - "pos": { - "x": 194.0, - "y": 234.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#14", - "pos": { - "x": 89.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#15", - "pos": { - "x": 319.0, - "y": 294.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#16", - "pos": { - "x": 319.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 419.0, - "y": 184.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 424.0, - "y": 194.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 429.0, - "y": 204.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 84.0, - "y": 344.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 94.0, - "y": 364.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 29.0, - "y": 254.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 74.0, - "y": 314.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 49.0, - "y": 114.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "C" - }, - "name": "unnamedWire#0", - "path": [ - { - "x": 140.0, - "y": 445.0 - }, - { - "x": 255.0, - "y": 445.0 - }, - { - "x": 255.0, - "y": 280.0 - }, - { - "x": 340.0, - "y": 280.0 - }, - { - "x": 340.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EOVR" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE4" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 355.0, - "y": 30.0 - }, - { - "x": 355.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "mu" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 35.0, - "y": 125.0 - }, - { - "x": 35.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_2" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 30.0, - "y": 45.0 - }, - { - "x": 30.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_3" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 25.0, - "y": 55.0 - }, - { - "x": 25.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_4" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 20.0, - "y": 65.0 - }, - { - "x": 20.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_1" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_2" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_4" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EN" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE3" - }, - "name": "unnamedWire#2", - "path": [ - { - "x": 255.0, - "y": 25.0 - }, - { - "x": 360.0, - "y": 25.0 - }, - { - "x": 360.0, - "y": 205.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "MUX" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "I" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 40.0, - "y": 435.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "I" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "B" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 25.0, - "y": 305.0 - }, - { - "x": 25.0, - "y": 265.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 60.0, - "y": 445.0 - }, - { - "x": 60.0, - "y": 415.0 - }, - { - "x": 30.0, - "y": 415.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q3" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q4" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EC" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 155.0, - "y": 20.0 - }, - { - "x": 365.0, - "y": 20.0 - }, - { - "x": 365.0, - "y": 90.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_1" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y2" - }, - "name": "unnamedWire#31", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_3" - }, - "name": "unnamedWire#32", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I1_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "Y4" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A1" - }, - "name": "unnamedWire#34", - "path": [ - { - "x": 415.0, - "y": 380.0 - }, - { - "x": 80.0, - "y": 380.0 - }, - { - "x": 80.0, - "y": 335.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#35", - "path": [ - { - "x": 420.0, - "y": 385.0 - }, - { - "x": 85.0, - "y": 385.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A3" - }, - "name": "unnamedWire#36", - "path": [ - { - "x": 425.0, - "y": 390.0 - }, - { - "x": 90.0, - "y": 390.0 - }, - { - "x": 90.0, - "y": 355.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#37", - "path": [ - { - "x": 430.0, - "y": 395.0 - }, - { - "x": 95.0, - "y": 395.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#3", - "pinName": "O3" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_4" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#39", - "path": [ - { - "x": 85.0, - "y": 325.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EZ" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE1" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 55.0, - "y": 15.0 - }, - { - "x": 370.0, - "y": 15.0 - }, - { - "x": 370.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_2" - }, - "name": "unnamedWire#40", - "path": [ - { - "x": 95.0, - "y": 305.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_3" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 30.0, - "y": 230.0 - }, - { - "x": 50.0, - "y": 230.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "S0" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I1_1" - }, - "name": "unnamedWire#44", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 50.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I1_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y2" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I1_3" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I1_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y4" - }, - "name": "unnamedWire#48", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I0_4" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#14", - "pinName": "" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I0_3" - }, - "pin2": { - "compName": "WireCrossPoint#11", - "pinName": "" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I0_2" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "I0_1" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#54", - "path": [ - { - "x": 90.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A4" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#3", - "pinName": "A2" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "I0_1" - }, - "name": "unnamedWire#57", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O1" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#58", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#12", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_1" - }, - "name": "unnamedWire#59", - "path": [ - { - "x": 20.0, - "y": 245.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q1" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y" - }, - "name": "unnamedWire#60", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_3" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#61", - "path": [ - { - "x": 75.0, - "y": 265.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#3", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I0_4" - }, - "name": "unnamedWire#62", - "path": [ - { - "x": 80.0, - "y": 325.0 - }, - { - "x": 80.0, - "y": 275.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_1" - }, - "name": "unnamedWire#63", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y2" - }, - "name": "unnamedWire#64", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_3" - }, - "name": "unnamedWire#65", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "I1_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y4" - }, - "name": "unnamedWire#66", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O1" - }, - "pin2": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "name": "unnamedWire#67", - "path": [ - { - "x": 195.0, - "y": 435.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "S0" - }, - "name": "unnamedWire#68", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#13", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "S0" - }, - "name": "unnamedWire#69", - "path": [ - { - "x": 105.0, - "y": 235.0 - }, - { - "x": 105.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "D4" - }, - "name": "unnamedWire#70", - "path": [ - { - "x": 295.0, - "y": 215.0 - }, - { - "x": 295.0, - "y": 255.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "D3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y3" - }, - "name": "unnamedWire#71", - "path": [ - { - "x": 300.0, - "y": 245.0 - }, - { - "x": 300.0, - "y": 205.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE2" - }, - "name": "unnamedWire#72", - "path": [ - { - "x": 420.0, - "y": 90.0 - }, - { - "x": 420.0, - "y": 110.0 - }, - { - "x": 365.0, - "y": 110.0 - }, - { - "x": 365.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "D1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y1" - }, - "name": "unnamedWire#73", - "path": [ - { - "x": 310.0, - "y": 225.0 - }, - { - "x": 310.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I1_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y4" - }, - "name": "unnamedWire#74", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I1_3" - }, - "name": "unnamedWire#75", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I1_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y2" - }, - "name": "unnamedWire#76", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#5", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I1_1" - }, - "name": "unnamedWire#77", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I0_4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y4" - }, - "name": "unnamedWire#78", - "path": [ - { - "x": 200.0, - "y": 225.0 - }, - { - "x": 200.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I0_3" - }, - "name": "unnamedWire#79", - "path": [ - { - "x": 205.0, - "y": 85.0 - }, - { - "x": 205.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I0_2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y2" - }, - "name": "unnamedWire#80", - "path": [ - { - "x": 210.0, - "y": 205.0 - }, - { - "x": 210.0, - "y": 75.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#4", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "I0_1" - }, - "name": "unnamedWire#81", - "path": [ - { - "x": 215.0, - "y": 65.0 - }, - { - "x": 215.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "S0" - }, - "name": "unnamedWire#82", - "path": [ - { - "x": 245.0, - "y": 425.0 - }, - { - "x": 245.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#83", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "COVD_EN" - }, - "name": "unnamedWire#84", - "path": [ - { - "x": 275.0, - "y": 295.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "S0" - }, - "name": "unnamedWire#85", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "COVD_V" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I1" - }, - "name": "unnamedWire#86", - "path": [ - { - "x": 375.0, - "y": 325.0 - }, - { - "x": 320.0, - "y": 325.0 - }, - { - "x": 320.0, - "y": 315.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#6", - "pinName": "Y2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "I0" - }, - "name": "unnamedWire#87", - "path": [ - { - "x": 305.0, - "y": 195.0 - }, - { - "x": 305.0, - "y": 305.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#7", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "D2" - }, - "name": "unnamedWire#88", - "path": [ - { - "x": 365.0, - "y": 295.0 - }, - { - "x": 365.0, - "y": 235.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#8", - "pinName": "B" - }, - "name": "unnamedWire#89", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#15", - "pinName": "" - }, - "name": "unnamedWire#90", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#91", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#16", - "pinName": "" - }, - "name": "unnamedWire#92", - "path": [ - { - "x": 320.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "name": "unnamedWire#93", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "MSR", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff4_finewe#0", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904TestLogic.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904TestLogic.json deleted file mode 100644 index 3acca4f7..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904TestLogic.json +++ /dev/null @@ -1,775 +0,0 @@ -{ - "width": 60.0, - "height": 90.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 50.0 - }, - "name": "I", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 60.0, - "y": 10.0 - }, - "name": "Y000", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 20.0 - }, - "name": "Y001", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 30.0 - }, - "name": "Y010", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 40.0 - }, - "name": "Y011", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 50.0 - }, - "name": "Y100", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 60.0 - }, - "name": "Y101", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 70.0 - }, - "name": "Y110", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 60.0, - "y": 80.0 - }, - "name": "Y111", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.4, - "submodel": { - "components": [ - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 40.0, - "y": 20.0 - } - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 85.0, - "y": 20.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 45.0, - "y": 50.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 120.0, - "y": 15.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#3", - "pos": { - "x": 45.0, - "y": 105.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#4", - "pos": { - "x": 80.0, - "y": 115.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#5", - "pos": { - "x": 80.0, - "y": 165.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 5.0, - "y": 110.0 - }, - "params": 4 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 29.0, - "y": 129.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 34.0, - "y": 99.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 39.0, - "y": 109.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 79.0, - "y": 34.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 79.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 19.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 24.0, - "y": 119.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 39.0, - "y": 64.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 74.0, - "y": 59.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 74.0, - "y": 119.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 24.0, - "y": 149.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 110.0, - "y": 20.0 - }, - { - "x": 110.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 20.0, - "y": 65.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 40.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 115.0, - "y": 60.0 - }, - { - "x": 115.0, - "y": 30.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y001" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 80.0, - "y": 50.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y000" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 25.0, - "y": 110.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y011" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 35.0, - "y": 140.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y010" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#4", - "pinName": "Y" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y100" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "B" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 70.0, - "y": 115.0 - }, - { - "x": 70.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#4", - "pinName": "A" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#3", - "pinName": "A" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Y101" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#28", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Y110" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "Y" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "A" - }, - "name": "unnamedWire#3", - "path": [ - { - "x": 30.0, - "y": 25.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#5", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 75.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#3", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 40.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#5", - "pinName": "B" - }, - "name": "unnamedWire#32", - "path": [ - { - "x": 25.0, - "y": 180.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Y111" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [ - { - "x": 30.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#34", - "path": [ - { - "x": 20.0, - "y": 110.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "B" - }, - "name": "unnamedWire#4", - "path": [ - { - "x": 35.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "Test\nlogic", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": {} - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904muSR.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904muSR.json deleted file mode 100644 index b0993386..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904muSR.json +++ /dev/null @@ -1,1101 +0,0 @@ -{ - "width": 45.0, - "height": 46.0, - "interfacePins": [ - { - "location": { - "x": 14.0, - "y": 46.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 27.5, - "y": 46.0 - }, - "name": "CINV", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 31.0 - }, - "name": "I", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 13.5 - }, - "name": "M", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 4.0, - "y": 46.0 - }, - "name": "MUX", - "logicWidth": 2, - "usage": "INPUT" - }, - { - "location": { - "x": 37.5, - "y": 46.0 - }, - "name": "OVRRET", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 45.0, - "y": 19.0 - }, - "name": "Q", - "logicWidth": 4, - "usage": "OUTPUT" - }, - { - "location": { - "x": 15.5, - "y": 0.0 - }, - "name": "_EC", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 25.5, - "y": 0.0 - }, - "name": "_EN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 35.5, - "y": 0.0 - }, - "name": "_EOVR", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 5.5, - "y": 0.0 - }, - "name": "_EZ", - "logicWidth": 1, - "usage": "INPUT" - } - ], - "innerScale": 0.1, - "submodel": { - "components": [ - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 45.0, - "y": 240.0 - } - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#1", - "pos": { - "x": 100.0, - "y": 190.0 - } - }, - { - "id": "GUIxor", - "name": "DeserializedSubmodelComponent#2", - "pos": { - "x": 215.0, - "y": 200.0 - } - }, - { - "id": "GUIMerger", - "name": "GUIMerger#0", - "pos": { - "x": 435.0, - "y": 175.0 - }, - "params": 4 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 245.0, - "y": 245.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 215.0, - "y": 255.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 215.0, - "y": 235.0 - }, - "params": 1 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#0", - "pos": { - "x": 5.0, - "y": 120.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#1", - "pos": { - "x": 5.0, - "y": 295.0 - }, - "params": 4 - }, - { - "id": "GUISplitter", - "name": "GUISplitter#2", - "pos": { - "x": 45.0, - "y": 430.0 - }, - "params": 2 - }, - { - "id": "GUIdff4_finewe", - "name": "GUIdff4_finewe#0", - "pos": { - "x": 375.0, - "y": 170.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 89.0, - "y": 234.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 89.0, - "y": 224.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 89.0, - "y": 214.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 429.0, - "y": 204.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 209.0, - "y": 244.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q1" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I2" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q2" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_4" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O0" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I0" - }, - "name": "unnamedWire#11", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O0" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_4" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 20.0, - "y": 150.0 - }, - { - "x": 20.0, - "y": 285.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_3" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 25.0, - "y": 140.0 - }, - { - "x": 25.0, - "y": 275.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_2" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 30.0, - "y": 130.0 - }, - { - "x": 30.0, - "y": 265.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "MUX" - }, - "pin2": { - "compName": "GUISplitter#2", - "pinName": "I" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 40.0, - "y": 435.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O0" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [ - { - "x": 90.0, - "y": 440.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_4" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y3" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_2" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q3" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I1_1" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_1" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#21", - "path": [ - { - "x": 90.0, - "y": 205.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_2" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_3" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#25", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "I0_4" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "name": "unnamedWire#27", - "path": [ - { - "x": 40.0, - "y": 235.0 - }, - { - "x": 40.0, - "y": 245.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#2", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "S0" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 85.0, - "y": 430.0 - }, - { - "x": 85.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "Q4" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#30", - "path": [ - { - "x": 240.0, - "y": 245.0 - }, - { - "x": 240.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 240.0, - "y": 260.0 - }, - { - "x": 240.0, - "y": 265.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "OVRRET" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#32", - "path": [ - { - "x": 375.0, - "y": 360.0 - }, - { - "x": 205.0, - "y": 360.0 - }, - { - "x": 205.0, - "y": 260.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#33", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#34", - "path": [ - { - "x": 430.0, - "y": 280.0 - }, - { - "x": 210.0, - "y": 280.0 - }, - { - "x": 210.0, - "y": 270.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "A" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "CINV" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "B" - }, - "name": "unnamedWire#36", - "path": [ - { - "x": 275.0, - "y": 390.0 - }, - { - "x": 190.0, - "y": 390.0 - }, - { - "x": 190.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE1" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_EZ" - }, - "name": "unnamedWire#37", - "path": [ - { - "x": 370.0, - "y": 185.0 - }, - { - "x": 370.0, - "y": 5.0 - }, - { - "x": 55.0, - "y": 5.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "C" - }, - "name": "unnamedWire#38", - "path": [ - { - "x": 140.0, - "y": 325.0 - }, - { - "x": 345.0, - "y": 325.0 - }, - { - "x": 345.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EOVR" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE4" - }, - "name": "unnamedWire#39", - "path": [ - { - "x": 355.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE3" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_EN" - }, - "name": "unnamedWire#40", - "path": [ - { - "x": 360.0, - "y": 205.0 - }, - { - "x": 360.0, - "y": 15.0 - }, - { - "x": 255.0, - "y": 15.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_EC" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "_WE2" - }, - "name": "unnamedWire#41", - "path": [ - { - "x": 155.0, - "y": 10.0 - }, - { - "x": 365.0, - "y": 10.0 - }, - { - "x": 365.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "D1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y1" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 315.0, - "y": 225.0 - }, - { - "x": 315.0, - "y": 195.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#2", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "D2" - }, - "name": "unnamedWire#43", - "path": [ - { - "x": 310.0, - "y": 205.0 - }, - { - "x": 310.0, - "y": 235.0 - } - ] - }, - { - "pin1": { - "compName": "GUIdff4_finewe#0", - "pinName": "D3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y3" - }, - "name": "unnamedWire#44", - "path": [ - { - "x": 305.0, - "y": 245.0 - }, - { - "x": 305.0, - "y": 225.0 - }, - { - "x": 170.0, - "y": 225.0 - }, - { - "x": 170.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#1", - "pinName": "Y4" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 160.0, - "y": 245.0 - }, - { - "x": 160.0, - "y": 225.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "D4" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "name": "unnamedWire#47", - "path": [ - { - "x": 210.0, - "y": 240.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#48", - "path": [ - { - "x": 210.0, - "y": 250.0 - } - ] - }, - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_1" - }, - "name": "unnamedWire#49", - "path": [ - { - "x": 35.0, - "y": 120.0 - }, - { - "x": 35.0, - "y": 255.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "M" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "I" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_1" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_2" - }, - "pin2": { - "compName": "GUISplitter#1", - "pinName": "O2" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUISplitter#1", - "pinName": "O1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "muSR", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff4_finewe#0", - "subStateID": "q" - } - } - } - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2910/Am2910.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2910/Am2910.json new file mode 100644 index 00000000..b0d1cfd2 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2910/Am2910.json @@ -0,0 +1,1282 @@ +{ + "width": 72.0, + "height": 67.0, + "interfacePins": [ + { + "location": { + "x": 60.0, + "y": 0.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 72.0, + "y": 40.0 + }, + "name": "CI", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 36.0, + "y": 0.0 + }, + "name": "D", + "logicWidth": 12, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 38.0, + "y": 67.0 + }, + "name": "Y", + "logicWidth": 12, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 38.0 + }, + "name": "_CC", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 44.0 + }, + "name": "_CCEN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 72.0, + "y": 14.0 + }, + "name": "_FULL", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 19.0, + "y": 67.0 + }, + "name": "_MAP", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 49.0, + "y": 67.0 + }, + "name": "_OE", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 13.0, + "y": 67.0 + }, + "name": "_PL", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 6.0 + }, + "name": "_RLD", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 25.0, + "y": 67.0 + }, + "name": "_VECT", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "Am2910InstrPLA", + "name": "Am2910InstrPLA#0", + "pos": { + "x": 80.0, + "y": 155.0 + } + }, + { + "id": "Am2910RegCntr", + "name": "Am2910RegCntr#0", + "pos": { + "x": 160.0, + "y": 25.0 + } + }, + { + "id": "Am2910SP", + "name": "Am2910SP#0", + "pos": { + "x": 305.0, + "y": 55.0 + } + }, + { + "id": "BitDisplay", + "name": "BitDisplay#0", + "pos": { + "x": 160.0, + "y": 95.0 + }, + "params": 12 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#1", + "pos": { + "x": 260.0, + "y": 115.0 + }, + "params": 12 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#2", + "pos": { + "x": 345.0, + "y": 180.0 + }, + "params": 12 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#3", + "pos": { + "x": 265.0, + "y": 150.0 + }, + "params": 12 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#4", + "pos": { + "x": 260.0, + "y": 85.0 + }, + "params": 3 + }, + { + "id": "BitDisplay", + "name": "BitDisplay#5", + "pos": { + "x": 260.0, + "y": 70.0 + }, + "params": 3 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 40.0, + "y": 185.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 10.0, + "y": 210.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 250.0, + "y": 305.0 + }, + "params": 1 + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#0", + "pos": { + "x": 180.0, + "y": 290.0 + }, + "params": { + "logicWidth": 12, + "orientation": "DOWN" + } + }, + { + "id": "dff12", + "name": "dff12#0", + "pos": { + "x": 305.0, + "y": 160.0 + } + }, + { + "id": "inc12", + "name": "inc12#0", + "pos": { + "x": 305.0, + "y": 190.0 + } + }, + { + "id": "nor12", + "name": "nor12#0", + "pos": { + "x": 190.0, + "y": 80.0 + } + }, + { + "id": "ram5_12", + "name": "ram5_12#0", + "pos": { + "x": 305.0, + "y": 100.0 + } + }, + { + "id": "sel4_12", + "name": "sel4_12#0", + "pos": { + "x": 150.0, + "y": 175.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 324.0, + "y": 149.0 + }, + "params": 12 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 294.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 244.0, + "y": 319.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 189.0, + "y": 274.0 + }, + "params": 12 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 179.0, + "y": 89.0 + }, + "params": 12 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 179.0, + "y": 14.0 + }, + "params": 12 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 4.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 299.0, + "y": 79.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 299.0, + "y": 44.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 299.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 299.0, + "y": 114.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "YD" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "SA" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "YR" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "SB" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "nor12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "Am2910InstrPLA#0", + "pinName": "R\u003d0" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 230.0, + "y": 90.0 + }, + { + "x": 230.0, + "y": 120.0 + }, + { + "x": 95.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "RWE" + }, + "pin2": { + "compName": "Am2910RegCntr#0", + "pinName": "WE" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 115.0, + "y": 160.0 + }, + { + "x": 115.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "RDEC" + }, + "pin2": { + "compName": "Am2910RegCntr#0", + "pinName": "DEC" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 120.0, + "y": 170.0 + }, + { + "x": 120.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "STKI0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 295.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "STKI1" + }, + "pin2": { + "compName": "Am2910SP#0", + "pinName": "STKI1" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 290.0, + "y": 230.0 + }, + { + "x": 290.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "Am2910SP#0", + "pinName": "STKI0" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 295.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "ram5_12#0", + "pinName": "WE" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "sel4_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "inc12#0", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 325.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "ram5_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "C" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 200.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "YF" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "SC" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "D" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 220.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "B" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "nor12#0", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "Am2910RegCntr#0", + "pinName": "D" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "A" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 145.0, + "y": 15.0 + }, + { + "x": 145.0, + "y": 150.0 + }, + { + "x": 160.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_RLD" + }, + "pin2": { + "compName": "Am2910RegCntr#0", + "pinName": "_RLD" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "IN" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "Am2910InstrPLA#0", + "pinName": "PASS" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 65.0, + "y": 195.0 + }, + { + "x": 65.0, + "y": 160.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CC" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "YmuPC" + }, + "pin2": { + "compName": "sel4_12#0", + "pinName": "SD" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CCEN" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 5.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 5.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 35.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910SP#0", + "pinName": "_FULL" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_FULL" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "dff12#0", + "pinName": "C" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "Am2910SP#0", + "pinName": "C" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "Am2910RegCntr#0", + "pinName": "C" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "inc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "dff12#0", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "inc12#0", + "pinName": "CI" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CI" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "_PL" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_PL" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 85.0, + "y": 290.0 + }, + { + "x": 65.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "_MAP" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_MAP" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "Am2910InstrPLA#0", + "pinName": "_VECT" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_VECT" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 105.0, + "y": 290.0 + }, + { + "x": 125.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "Am2910InstrPLA#0", + "pinName": "I" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 70.0, + "y": 250.0 + }, + { + "x": 70.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "Am2910RegCntr#0", + "pinName": "Y" + }, + "pin2": { + "compName": "BitDisplay#0", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "ram5_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "BitDisplay#1", + "pinName": "" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "inc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "BitDisplay#2", + "pinName": "" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "dff12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "BitDisplay#3", + "pinName": "" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "dff12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "ram5_12#0", + "pinName": "C" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "OUT" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_OE" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "Am2910SP#0", + "pinName": "A" + }, + "pin2": { + "compName": "BitDisplay#5", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "Am2910SP#0", + "pinName": "B" + }, + "pin2": { + "compName": "BitDisplay#4", + "pinName": "" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#57", + "path": [ + { + "x": 245.0, + "y": 310.0 + } + ] + }, + { + "pin1": { + "compName": "TriStateBuffer#0", + "pinName": "EN" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "name": "unnamedWire#58", + "path": [ + { + "x": 275.0, + "y": 300.0 + }, + { + "x": 275.0, + "y": 315.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "ram5_12#0", + "pinName": "D" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Am2910SP#0", + "pinName": "A" + }, + "pin2": { + "compName": "ram5_12#0", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "Am2910SP#0", + "pinName": "B" + }, + "pin2": { + "compName": "ram5_12#0", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Am2910RegCntr#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Am2910", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": { + "r": { + "id": "delegating", + "params": { + "delegateTarget": "Am2910RegCntr#0" + } + }, + "stack": { + "id": "delegating", + "params": { + "delegateTarget": "ram5_12#0" + } + }, + "mupc": { + "id": "delegating", + "params": { + "delegateTarget": "dff12#0" + } + }, + "sp": { + "id": "delegating", + "params": { + "delegateTarget": "Am2910SP#0" + } + } + }, + "atomicHighLevelStates": {} + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910.json deleted file mode 100644 index 751b0bce..00000000 --- a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910.json +++ /dev/null @@ -1,1282 +0,0 @@ -{ - "width": 72.0, - "height": 67.0, - "interfacePins": [ - { - "location": { - "x": 60.0, - "y": 0.0 - }, - "name": "C", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 72.0, - "y": 40.0 - }, - "name": "CI", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 36.0, - "y": 0.0 - }, - "name": "D", - "logicWidth": 12, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 50.0 - }, - "name": "I", - "logicWidth": 4, - "usage": "INPUT" - }, - { - "location": { - "x": 38.0, - "y": 67.0 - }, - "name": "Y", - "logicWidth": 12, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 38.0 - }, - "name": "_CC", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 0.0, - "y": 44.0 - }, - "name": "_CCEN", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 72.0, - "y": 14.0 - }, - "name": "_FULL", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 19.0, - "y": 67.0 - }, - "name": "_MAP", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 49.0, - "y": 67.0 - }, - "name": "_OE", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 13.0, - "y": 67.0 - }, - "name": "_PL", - "logicWidth": 1, - "usage": "OUTPUT" - }, - { - "location": { - "x": 0.0, - "y": 6.0 - }, - "name": "_RLD", - "logicWidth": 1, - "usage": "INPUT" - }, - { - "location": { - "x": 25.0, - "y": 67.0 - }, - "name": "_VECT", - "logicWidth": 1, - "usage": "OUTPUT" - } - ], - "innerScale": 0.2, - "submodel": { - "components": [ - { - "id": "GUIAm2910InstrPLA", - "name": "GUIAm2910InstrPLA#0", - "pos": { - "x": 80.0, - "y": 155.0 - } - }, - { - "id": "GUIAm2910RegCntr", - "name": "GUIAm2910RegCntr#0", - "pos": { - "x": 160.0, - "y": 25.0 - } - }, - { - "id": "GUIAm2910SP", - "name": "GUIAm2910SP#0", - "pos": { - "x": 305.0, - "y": 55.0 - } - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#0", - "pos": { - "x": 160.0, - "y": 95.0 - }, - "params": 12 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#1", - "pos": { - "x": 260.0, - "y": 115.0 - }, - "params": 12 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#2", - "pos": { - "x": 345.0, - "y": 180.0 - }, - "params": 12 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#3", - "pos": { - "x": 265.0, - "y": 150.0 - }, - "params": 12 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#4", - "pos": { - "x": 260.0, - "y": 85.0 - }, - "params": 3 - }, - { - "id": "GUIBitDisplay", - "name": "GUIBitDisplay#5", - "pos": { - "x": 260.0, - "y": 70.0 - }, - "params": 3 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#0", - "pos": { - "x": 40.0, - "y": 185.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#1", - "pos": { - "x": 10.0, - "y": 210.0 - }, - "params": 1 - }, - { - "id": "GUINandGate", - "name": "GUINandGate#2", - "pos": { - "x": 250.0, - "y": 305.0 - }, - "params": 1 - }, - { - "id": "GUITriStateBuffer", - "name": "GUITriStateBuffer#0", - "pos": { - "x": 180.0, - "y": 290.0 - }, - "params": { - "logicWidth": 12, - "orientation": "DOWN" - } - }, - { - "id": "GUIdff12", - "name": "GUIdff12#0", - "pos": { - "x": 305.0, - "y": 160.0 - } - }, - { - "id": "GUIinc12", - "name": "GUIinc12#0", - "pos": { - "x": 305.0, - "y": 190.0 - } - }, - { - "id": "GUInor12", - "name": "GUInor12#0", - "pos": { - "x": 190.0, - "y": 80.0 - } - }, - { - "id": "GUIram5_12", - "name": "GUIram5_12#0", - "pos": { - "x": 305.0, - "y": 100.0 - } - }, - { - "id": "GUIsel4_12", - "name": "GUIsel4_12#0", - "pos": { - "x": 150.0, - "y": 175.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 324.0, - "y": 149.0 - }, - "params": 12 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 294.0, - "y": 104.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#10", - "pos": { - "x": 244.0, - "y": 319.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 189.0, - "y": 274.0 - }, - "params": 12 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 179.0, - "y": 89.0 - }, - "params": 12 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 179.0, - "y": 14.0 - }, - "params": 12 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 4.0, - "y": 219.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 299.0, - "y": 79.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#7", - "pos": { - "x": 299.0, - "y": 44.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#8", - "pos": { - "x": 299.0, - "y": 169.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#9", - "pos": { - "x": 299.0, - "y": 114.0 - }, - "params": 1 - } - ], - "wires": [ - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "YD" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "SA" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "YR" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "SB" - }, - "name": "unnamedWire#1", - "path": [] - }, - { - "pin1": { - "compName": "GUInor12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "R\u003d0" - }, - "name": "unnamedWire#10", - "path": [ - { - "x": 230.0, - "y": 90.0 - }, - { - "x": 230.0, - "y": 120.0 - }, - { - "x": 95.0, - "y": 120.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "RWE" - }, - "pin2": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "WE" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 115.0, - "y": 160.0 - }, - { - "x": 115.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "RDEC" - }, - "pin2": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "DEC" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 120.0, - "y": 170.0 - }, - { - "x": 120.0, - "y": 55.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "STKI0" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [ - { - "x": 295.0, - "y": 220.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "STKI1" - }, - "pin2": { - "compName": "GUIAm2910SP#0", - "pinName": "STKI1" - }, - "name": "unnamedWire#14", - "path": [ - { - "x": 290.0, - "y": 230.0 - }, - { - "x": 290.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2910SP#0", - "pinName": "STKI0" - }, - "name": "unnamedWire#15", - "path": [ - { - "x": 295.0, - "y": 60.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram5_12#0", - "pinName": "WE" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "GUIsel4_12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#17", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIinc12#0", - "pinName": "A" - }, - "name": "unnamedWire#18", - "path": [ - { - "x": 325.0, - "y": 275.0 - } - ] - }, - { - "pin1": { - "compName": "GUIram5_12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "C" - }, - "name": "unnamedWire#19", - "path": [ - { - "x": 200.0, - "y": 130.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "YF" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "SC" - }, - "name": "unnamedWire#2", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "D" - }, - "name": "unnamedWire#20", - "path": [ - { - "x": 220.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "B" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "GUInor12#0", - "pinName": "D" - }, - "name": "unnamedWire#22", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#23", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "D" - }, - "name": "unnamedWire#24", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "A" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 145.0, - "y": 15.0 - }, - { - "x": 145.0, - "y": 150.0 - }, - { - "x": 160.0, - "y": 150.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_RLD" - }, - "pin2": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "_RLD" - }, - "name": "unnamedWire#26", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "IN" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "PASS" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 65.0, - "y": 195.0 - }, - { - "x": 65.0, - "y": 160.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_CC" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "A" - }, - "name": "unnamedWire#29", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "YmuPC" - }, - "pin2": { - "compName": "GUIsel4_12#0", - "pinName": "SD" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_CCEN" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#30", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "A" - }, - "name": "unnamedWire#31", - "path": [ - { - "x": 5.0, - "y": 215.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#1", - "pinName": "B" - }, - "name": "unnamedWire#32", - "path": [ - { - "x": 5.0, - "y": 225.0 - } - ] - }, - { - "pin1": { - "compName": "GUINandGate#1", - "pinName": "Y" - }, - "pin2": { - "compName": "GUINandGate#0", - "pinName": "B" - }, - "name": "unnamedWire#33", - "path": [ - { - "x": 35.0, - "y": 220.0 - }, - { - "x": 35.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910SP#0", - "pinName": "_FULL" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_FULL" - }, - "name": "unnamedWire#34", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff12#0", - "pinName": "C" - }, - "name": "unnamedWire#35", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "name": "unnamedWire#36", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2910SP#0", - "pinName": "C" - }, - "name": "unnamedWire#37", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#38", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "pin2": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "C" - }, - "name": "unnamedWire#39", - "path": [] - }, - { - "pin1": { - "compName": "GUIinc12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIdff12#0", - "pinName": "D" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#7", - "pinName": "" - }, - "name": "unnamedWire#40", - "path": [] - }, - { - "pin1": { - "compName": "GUIinc12#0", - "pinName": "CI" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "CI" - }, - "name": "unnamedWire#41", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "_PL" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_PL" - }, - "name": "unnamedWire#42", - "path": [ - { - "x": 85.0, - "y": 290.0 - }, - { - "x": 65.0, - "y": 290.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "_MAP" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_MAP" - }, - "name": "unnamedWire#43", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "_VECT" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "_VECT" - }, - "name": "unnamedWire#44", - "path": [ - { - "x": 105.0, - "y": 290.0 - }, - { - "x": 125.0, - "y": 290.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "I" - }, - "pin2": { - "compName": "GUIAm2910InstrPLA#0", - "pinName": "I" - }, - "name": "unnamedWire#45", - "path": [ - { - "x": 70.0, - "y": 250.0 - }, - { - "x": 70.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIBitDisplay#0", - "pinName": "" - }, - "name": "unnamedWire#46", - "path": [] - }, - { - "pin1": { - "compName": "GUIram5_12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIBitDisplay#1", - "pinName": "" - }, - "name": "unnamedWire#47", - "path": [] - }, - { - "pin1": { - "compName": "GUIinc12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIBitDisplay#2", - "pinName": "" - }, - "name": "unnamedWire#48", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "GUIBitDisplay#3", - "pinName": "" - }, - "name": "unnamedWire#49", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff12#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "GUIram5_12#0", - "pinName": "C" - }, - "name": "unnamedWire#50", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#9", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#8", - "pinName": "" - }, - "name": "unnamedWire#51", - "path": [] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "OUT" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Y" - }, - "name": "unnamedWire#52", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "_OE" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#53", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910SP#0", - "pinName": "A" - }, - "pin2": { - "compName": "GUIBitDisplay#5", - "pinName": "" - }, - "name": "unnamedWire#54", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910SP#0", - "pinName": "B" - }, - "pin2": { - "compName": "GUIBitDisplay#4", - "pinName": "" - }, - "name": "unnamedWire#55", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "B" - }, - "name": "unnamedWire#56", - "path": [] - }, - { - "pin1": { - "compName": "GUINandGate#2", - "pinName": "A" - }, - "pin2": { - "compName": "WireCrossPoint#10", - "pinName": "" - }, - "name": "unnamedWire#57", - "path": [ - { - "x": 245.0, - "y": 310.0 - } - ] - }, - { - "pin1": { - "compName": "GUITriStateBuffer#0", - "pinName": "EN" - }, - "pin2": { - "compName": "GUINandGate#2", - "pinName": "Y" - }, - "name": "unnamedWire#58", - "path": [ - { - "x": 275.0, - "y": 300.0 - }, - { - "x": 275.0, - "y": 315.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIram5_12#0", - "pinName": "D" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910SP#0", - "pinName": "A" - }, - "pin2": { - "compName": "GUIram5_12#0", - "pinName": "A" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910SP#0", - "pinName": "B" - }, - "pin2": { - "compName": "GUIram5_12#0", - "pinName": "B" - }, - "name": "unnamedWire#8", - "path": [] - }, - { - "pin1": { - "compName": "GUIAm2910RegCntr#0", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#9", - "path": [] - } - ], - "version": "0.1.1" - }, - "symbolRendererSnippetID": "simpleRectangularLike", - "symbolRendererParams": { - "centerText": "Am2910", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "default", - "highLevelStateHandlerSnippetID": "standard", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": { - "r": { - "id": "delegating", - "params": { - "delegateTarget": "GUIAm2910RegCntr#0" - } - }, - "stack": { - "id": "delegating", - "params": { - "delegateTarget": "GUIram5_12#0" - } - }, - "mupc": { - "id": "delegating", - "params": { - "delegateTarget": "GUIdff12#0" - } - }, - "sp": { - "id": "delegating", - "params": { - "delegateTarget": "GUIAm2910SP#0" - } - } - }, - "atomicHighLevelStates": {} - }, - "version": "0.1.5" -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/and.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/and.json new file mode 100644 index 00000000..459bca8d --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/and.json @@ -0,0 +1,158 @@ +{ + "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" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 20.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 50.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 44.0, + "y": 24.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#0" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#1" + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 45.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 45.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#5" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "and", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/and41.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/and41.json new file mode 100644 index 00000000..0c89805a --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/and41.json @@ -0,0 +1,355 @@ +{ + "width": 35.0, + "height": 50.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "B", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "and", + "name": "and#0", + "pos": { + "x": 30.0, + "y": 7.5 + } + }, + { + "id": "and", + "name": "and#1", + "pos": { + "x": 30.0, + "y": 32.5 + } + }, + { + "id": "and", + "name": "and#2", + "pos": { + "x": 30.0, + "y": 57.5 + } + }, + { + "id": "and", + "name": "and#3", + "pos": { + "x": 30.0, + "y": 82.5 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 24.0, + "y": 46.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 71.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 24.0, + "y": 96.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "and#0", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "and#1", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "and#0", + "pinName": "B" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 25.0, + "y": 22.5 + } + ] + }, + { + "pin1": { + "compName": "and#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "and#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "and#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "and#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "and#2", + "pinName": "A" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "and#3", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 25.0, + "y": 112.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "and#2", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "and#1", + "pinName": "B" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "and41", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/andor414.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/andor414.json new file mode 100644 index 00000000..a2b45122 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/andor414.json @@ -0,0 +1,520 @@ +{ + "width": 35.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "B", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "C2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "C3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "C4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "and41", + "name": "and41#0", + "pos": { + "x": 15.0, + "y": 137.5 + } + }, + { + "id": "or_4", + "name": "or_4#0", + "pos": { + "x": 35.0, + "y": 37.5 + } + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A1" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 10.0, + "y": 112.5 + }, + { + "x": 10.0, + "y": 142.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A2" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 5.0, + "y": 137.5 + }, + { + "x": 5.0, + "y": 152.5 + } + ] + }, + { + "pin1": { + "compName": "and41#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "B2" + }, + "name": "unnamedWire#10", + "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": { + "compName": "and41#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "B3" + }, + "name": "unnamedWire#11", + "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": { + "compName": "and41#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "B4" + }, + "name": "unnamedWire#12", + "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": { + "compName": "or_4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 75.0, + "y": 42.5 + }, + { + "x": 75.0, + "y": 12.5 + } + ] + }, + { + "pin1": { + "compName": "or_4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 80.0, + "y": 52.5 + }, + { + "x": 80.0, + "y": 37.5 + } + ] + }, + { + "pin1": { + "compName": "or_4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "or_4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 80.0, + "y": 72.5 + }, + { + "x": 80.0, + "y": 87.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A3" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A4" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 5.0, + "y": 187.5 + }, + { + "x": 5.0, + "y": 172.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B" + }, + "pin2": { + "compName": "and41#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 10.0, + "y": 212.5 + }, + { + "x": 10.0, + "y": 182.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C1" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "A1" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 10.0, + "y": 12.5 + }, + { + "x": 10.0, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C2" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "A2" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 5.0, + "y": 37.5 + }, + { + "x": 5.0, + "y": 52.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C3" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "A3" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C4" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "A4" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 5.0, + "y": 87.5 + }, + { + "x": 5.0, + "y": 72.5 + } + ] + }, + { + "pin1": { + "compName": "and41#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "or_4#0", + "pinName": "B1" + }, + "name": "unnamedWire#9", + "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 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "andor414", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/demux2.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/demux2.json new file mode 100644 index 00000000..befc8b06 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/demux2.json @@ -0,0 +1,544 @@ +{ + "width": 35.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "S1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y00", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y01", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y10", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y11", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 10.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 10.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "and", + "name": "and#0", + "pos": { + "x": 40.0, + "y": 2.5 + } + }, + { + "id": "and", + "name": "and#1", + "pos": { + "x": 40.0, + "y": 27.5 + } + }, + { + "id": "and", + "name": "and#2", + "pos": { + "x": 40.0, + "y": 52.5 + } + }, + { + "id": "and", + "name": "and#3", + "pos": { + "x": 40.0, + "y": 77.5 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 6.5, + "y": 11.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 6.5, + "y": 16.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 36.5, + "y": 61.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 4.0, + "y": 36.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 4.0, + "y": 41.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 31.5, + "y": 66.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 31.5, + "y": 11.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 34.0, + "y": 36.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "and#0", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 32.5, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "and#0", + "pinName": "B" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 35.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "and#1", + "pinName": "A" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 37.5, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "and#1", + "pinName": "B" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 35.0, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "and#2", + "pinName": "A" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 32.5, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "and#2", + "pinName": "B" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 37.5, + "y": 82.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "B" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 32.5, + "y": 92.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 7.5, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "and#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y00" + }, + "name": "unnamedWire#20" + }, + { + "pin1": { + "compName": "and#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y01" + }, + "name": "unnamedWire#21" + }, + { + "pin1": { + "compName": "and#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y10" + }, + "name": "unnamedWire#22" + }, + { + "pin1": { + "compName": "and#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y11" + }, + "name": "unnamedWire#23" + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 5.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 7.5, + "y": 62.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 5.0, + "y": 67.5 + }, + { + "x": 32.5, + "y": 67.5 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "demux2", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff.json new file mode 100644 index 00000000..cb4abaf9 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff.json @@ -0,0 +1,362 @@ +{ + "width": 35.0, + "height": 20.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "D", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "_Q", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 120.0, + "y": 60.0 + }, + "params": 1 + }, + { + "id": "_rsLatch", + "name": "_rsLatch#0", + "pos": { + "x": 40.0, + "y": 10.0 + } + }, + { + "id": "_rsLatch", + "name": "_rsLatch#1", + "pos": { + "x": 120.0, + "y": 30.0 + } + }, + { + "id": "nand3", + "name": "nand3#0", + "pos": { + "x": 40.0, + "y": 40.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 9.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 19.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 99.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 99.0, + "y": 44.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_rsLatch#0", + "pinName": "_R" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "nand3#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "_rsLatch#1", + "pinName": "_R" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 100.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "_rsLatch#1", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#13" + }, + { + "pin1": { + "compName": "_rsLatch#1", + "pinName": "_Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_Q" + }, + "name": "unnamedWire#14" + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "nand3#0", + "pinName": "B" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 10.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 145.0, + "y": 70.0 + }, + { + "x": 145.0, + "y": 85.0 + }, + { + "x": 20.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_rsLatch#0", + "pinName": "_S" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "nand3#0", + "pinName": "C" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "_rsLatch#0", + "pinName": "_Q" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 100.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "nand3#0", + "pinName": "A" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 30.0, + "y": 35.0 + }, + { + "x": 30.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_rsLatch#1", + "pinName": "_S" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "dff", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q": { + "id": "delegating", + "params": { + "delegateTarget": "_rsLatch#1", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff12_we.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff12_we.json new file mode 100644 index 00000000..f5283a09 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff12_we.json @@ -0,0 +1,1154 @@ +{ + "width": 55.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D", + "logicWidth": 12, + "usage": "INPUT" + }, + { + "location": { + "x": 55.0, + "y": 20.0 + }, + "name": "Q", + "logicWidth": 12, + "usage": "TRISTATE" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "WE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "dff", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 175.0, + "y": 170.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#11", + "pos": { + "x": 130.0, + "y": 160.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#12", + "pos": { + "x": 130.0, + "y": 130.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#13", + "pos": { + "x": 175.0, + "y": 80.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#14", + "pos": { + "x": 175.0, + "y": 110.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#15", + "pos": { + "x": 130.0, + "y": 100.0 + } + }, + { + "id": "mux1_12", + "name": "DeserializedSubmodelComponent#17", + "pos": { + "x": 15.0, + "y": 90.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 175.0, + "y": 20.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 175.0, + "y": 50.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 130.0, + "y": 10.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 130.0, + "y": 40.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 130.0, + "y": 70.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 175.0, + "y": 140.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 250.0, + "y": 45.0 + }, + "params": 12 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 70.0, + "y": 65.0 + }, + "params": 12 + }, + { + "id": "TextComponent", + "name": "TextComponent#0", + "pos": { + "x": -35.0, + "y": -5.0 + }, + "params": "a" + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 169.0, + "y": 54.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 169.0, + "y": 144.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 169.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 169.0, + "y": 84.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 169.0, + "y": 114.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 124.0, + "y": 14.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 124.0, + "y": 44.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 124.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 124.0, + "y": 134.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 124.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 264.0, + "y": 99.0 + }, + "params": 12 + } + ], + "wires": [ + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 125.0, + "y": 5.0 + }, + { + "x": 170.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 55.0, + "y": 15.0 + }, + { + "x": 55.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 115.0, + "y": 115.0 + }, + { + "x": 115.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "D" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 120.0, + "y": 135.0 + }, + { + "x": 120.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "D" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 90.0, + "y": 175.0 + }, + { + "x": 90.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "D" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 85.0, + "y": 175.0 + }, + { + "x": 85.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "WE" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "S" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 10.0, + "y": 100.0 + }, + { + "x": 10.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "I1" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 5.0, + "y": 175.0 + }, + { + "x": 5.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "C" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "C" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "C" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "C" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#17", + "pinName": "I0" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 10.0, + "y": 110.0 + }, + { + "x": 10.0, + "y": 195.0 + }, + { + "x": 265.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "C" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 125.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 170.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "C" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "C" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "C" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 85.0, + "y": 65.0 + }, + { + "x": 85.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "C" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 90.0, + "y": 35.0 + }, + { + "x": 90.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Q" + }, + "name": "unnamedWire#53", + "path": [ + { + "x": 245.0, + "y": 45.0 + }, + { + "x": 245.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I10" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 235.0, + "y": 25.0 + }, + { + "x": 235.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Q" + }, + "name": "unnamedWire#55", + "path": [ + { + "x": 230.0, + "y": 65.0 + }, + { + "x": 230.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I8" + }, + "name": "unnamedWire#56", + "path": [ + { + "x": 225.0, + "y": 55.0 + }, + { + "x": 225.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Q" + }, + "name": "unnamedWire#57", + "path": [ + { + "x": 220.0, + "y": 85.0 + }, + { + "x": 220.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I6" + }, + "name": "unnamedWire#58", + "path": [ + { + "x": 215.0, + "y": 85.0 + }, + { + "x": 215.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "Q" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 95.0, + "y": 55.0 + }, + { + "x": 95.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "Q" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "Q" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 215.0, + "y": 125.0 + }, + { + "x": 215.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 220.0, + "y": 145.0 + }, + { + "x": 220.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Q" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 225.0, + "y": 145.0 + }, + { + "x": 225.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 230.0, + "y": 175.0 + }, + { + "x": 230.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "D" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 100.0, + "y": 95.0 + }, + { + "x": 100.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O7" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 85.0 + }, + { + "x": 105.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "D" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 110.0, + "y": 115.0 + }, + { + "x": 110.0, + "y": 95.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "D flip flop\n12 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 30.0, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default", + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff16_invwe.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff16_invwe.json new file mode 100644 index 00000000..ed4ae62a --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff16_invwe.json @@ -0,0 +1,1468 @@ +{ + "width": 60.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D", + "logicWidth": 16, + "usage": "INPUT" + }, + { + "location": { + "x": 60.0, + "y": 25.0 + }, + "name": "Q", + "logicWidth": 16, + "usage": "TRISTATE" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "_WE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "dff", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 140.0, + "y": 15.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 190.0, + "y": 25.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 190.0, + "y": 235.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#11", + "pos": { + "x": 140.0, + "y": 225.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#12", + "pos": { + "x": 140.0, + "y": 195.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#13", + "pos": { + "x": 190.0, + "y": 145.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#14", + "pos": { + "x": 190.0, + "y": 175.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#15", + "pos": { + "x": 140.0, + "y": 165.0 + } + }, + { + "id": "mux1_16", + "name": "DeserializedSubmodelComponent#16", + "pos": { + "x": 15.0, + "y": 95.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 190.0, + "y": 55.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 140.0, + "y": 45.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 190.0, + "y": 85.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 190.0, + "y": 115.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 140.0, + "y": 75.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 140.0, + "y": 105.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 140.0, + "y": 135.0 + } + }, + { + "id": "dff", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 190.0, + "y": 205.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 275.0, + "y": 50.0 + }, + "params": 16 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 75.0, + "y": 70.0 + }, + "params": 16 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 134.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 134.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 184.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 184.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 184.0, + "y": 209.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 184.0, + "y": 89.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 184.0, + "y": 149.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 184.0, + "y": 179.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 134.0, + "y": 79.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 134.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 134.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 134.0, + "y": 199.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 134.0, + "y": 139.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 289.0, + "y": 124.0 + }, + "params": 16 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 184.0, + "y": 59.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O15" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "D" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 90.0, + "y": 70.0 + }, + { + "x": 90.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O14" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 95.0, + "y": 40.0 + }, + { + "x": 95.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 120.0, + "y": 180.0 + }, + { + "x": 120.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "D" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 115.0, + "y": 180.0 + }, + { + "x": 115.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 110.0, + "y": 210.0 + }, + { + "x": 110.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "D" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 105.0, + "y": 200.0 + }, + { + "x": 105.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 100.0, + "y": 240.0 + }, + { + "x": 100.0, + "y": 210.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "D" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 95.0, + "y": 220.0 + }, + { + "x": 95.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "C" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "C" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O13" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "D" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 100.0, + "y": 90.0 + }, + { + "x": 100.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "C" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "C" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "C" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "C" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O12" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 105.0, + "y": 70.0 + }, + { + "x": 105.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "C" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 135.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 185.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "C" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "C" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "C" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 110.0, + "y": 110.0 + }, + { + "x": 110.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "C" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "C" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "C" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 135.0, + "y": 10.0 + }, + { + "x": 185.0, + "y": 10.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_WE" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "S" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 35.0, + "y": 20.0 + }, + { + "x": 35.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I15" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Q" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 265.0, + "y": 50.0 + }, + { + "x": 265.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 115.0, + "y": 100.0 + }, + { + "x": 115.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I14" + }, + "name": "unnamedWire#50", + "path": [ + { + "x": 260.0, + "y": 30.0 + }, + { + "x": 260.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I13" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Q" + }, + "name": "unnamedWire#51", + "path": [ + { + "x": 255.0, + "y": 70.0 + }, + { + "x": 255.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I12" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Q" + }, + "name": "unnamedWire#52", + "path": [ + { + "x": 250.0, + "y": 80.0 + }, + { + "x": 250.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Q" + }, + "name": "unnamedWire#53", + "path": [ + { + "x": 245.0, + "y": 90.0 + }, + { + "x": 245.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I10" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 240.0, + "y": 90.0 + }, + { + "x": 240.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Q" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I8" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Q" + }, + "name": "unnamedWire#57", + "path": [ + { + "x": 235.0, + "y": 130.0 + }, + { + "x": 235.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I6" + }, + "name": "unnamedWire#58", + "path": [ + { + "x": 240.0, + "y": 150.0 + }, + { + "x": 240.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "Q" + }, + "name": "unnamedWire#59", + "path": [ + { + "x": 245.0, + "y": 150.0 + }, + { + "x": 245.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 120.0, + "y": 120.0 + }, + { + "x": 120.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "Q" + }, + "name": "unnamedWire#60", + "path": [ + { + "x": 250.0, + "y": 160.0 + }, + { + "x": 250.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "Q" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 255.0, + "y": 170.0 + }, + { + "x": 255.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 260.0, + "y": 210.0 + }, + { + "x": 260.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Q" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 265.0, + "y": 190.0 + }, + { + "x": 265.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Q" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 270.0, + "y": 240.0 + }, + { + "x": 270.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "I1" + }, + "name": "unnamedWire#67", + "path": [ + { + "x": 290.0, + "y": 275.0 + }, + { + "x": 10.0, + "y": 275.0 + }, + { + "x": 10.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#16", + "pinName": "I0" + }, + "name": "unnamedWire#68", + "path": [ + { + "x": 10.0, + "y": 175.0 + }, + { + "x": 10.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "D" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 125.0, + "y": 140.0 + }, + { + "x": 125.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O7" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "D" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "D flip flop\n16 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 30, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default", + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff4.json new file mode 100644 index 00000000..ced8d500 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff4.json @@ -0,0 +1,727 @@ +{ + "width": 35.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Q2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Q3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Q4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "WE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 55.0, + "y": 70.0 + } + }, + { + "id": "dff", + "name": "dff#0", + "pos": { + "x": 115.0, + "y": 20.0 + } + }, + { + "id": "dff", + "name": "dff#1", + "pos": { + "x": 115.0, + "y": 70.0 + } + }, + { + "id": "dff", + "name": "dff#2", + "pos": { + "x": 115.0, + "y": 120.0 + } + }, + { + "id": "dff", + "name": "dff#3", + "pos": { + "x": 115.0, + "y": 170.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 104.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 104.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 104.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 169.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 164.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 159.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 154.0, + "y": 174.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "dff#0", + "pinName": "D" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 100.0, + "y": 75.0 + }, + { + "x": 100.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 5.0, + "y": 175.0 + }, + { + "x": 5.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 10.0, + "y": 225.0 + }, + { + "x": 10.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "dff#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "dff#1", + "pinName": "Q" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 15.0, + "y": 275.0 + }, + { + "x": 15.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "dff#2", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q3" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "dff#1", + "pinName": "D" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q4" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "dff#3", + "pinName": "Q" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "dff#2", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 100.0, + "y": 95.0 + }, + { + "x": 100.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "dff#3", + "pinName": "D" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 95.0, + "y": 105.0 + }, + { + "x": 95.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 170.0, + "y": 195.0 + }, + { + "x": 50.0, + "y": 195.0 + }, + { + "x": 50.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 165.0, + "y": 200.0 + }, + { + "x": 45.0, + "y": 200.0 + }, + { + "x": 45.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 160.0, + "y": 205.0 + }, + { + "x": 40.0, + "y": 205.0 + }, + { + "x": 40.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 155.0, + "y": 210.0 + }, + { + "x": 35.0, + "y": 210.0 + }, + { + "x": 35.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dff#0", + "pinName": "C" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "dff#1", + "pinName": "C" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dff#2", + "pinName": "C" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dff#3", + "pinName": "C" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "WE" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "D flip flop\n4 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q1": { + "id": "delegating", + "params": { + "delegateTarget": "dff#0", + "subStateID": "q" + } + }, + "q2": { + "id": "delegating", + "params": { + "delegateTarget": "dff#1", + "subStateID": "q" + } + }, + "q": { + "id": "bitVectorSplitting", + "params": { + "vectorPartTargets": [ + "q1", + "q2", + "q3", + "q4" + ], + "vectorPartLengthes": [ + 1, + 1, + 1, + 1 + ] + } + }, + "q3": { + "id": "delegating", + "params": { + "delegateTarget": "dff#2", + "subStateID": "q" + } + }, + "q4": { + "id": "delegating", + "params": { + "delegateTarget": "dff#3", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff4_invwe.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff4_invwe.json new file mode 100644 index 00000000..0bcf5719 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff4_invwe.json @@ -0,0 +1,736 @@ +{ + "width": 35.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Q2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Q3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Q4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "_WE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 55.0, + "y": 70.0 + } + }, + { + "id": "dff", + "name": "dff#0", + "pos": { + "x": 115.0, + "y": 20.0 + } + }, + { + "id": "dff", + "name": "dff#1", + "pos": { + "x": 115.0, + "y": 70.0 + } + }, + { + "id": "dff", + "name": "dff#2", + "pos": { + "x": 115.0, + "y": 120.0 + } + }, + { + "id": "dff", + "name": "dff#3", + "pos": { + "x": 115.0, + "y": 170.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 104.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 104.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 104.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 169.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 164.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 159.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 154.0, + "y": 174.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "dff#0", + "pinName": "D" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 100.0, + "y": 75.0 + }, + { + "x": 100.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 10.0, + "y": 125.0 + }, + { + "x": 10.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 15.0, + "y": 175.0 + }, + { + "x": 15.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 20.0, + "y": 225.0 + }, + { + "x": 20.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "dff#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "dff#1", + "pinName": "Q" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 25.0, + "y": 275.0 + }, + { + "x": 25.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "dff#2", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q3" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "dff#1", + "pinName": "D" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q4" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "dff#3", + "pinName": "Q" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "dff#2", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 100.0, + "y": 95.0 + }, + { + "x": 100.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "dff#3", + "pinName": "D" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 95.0, + "y": 105.0 + }, + { + "x": 95.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 170.0, + "y": 205.0 + }, + { + "x": 50.0, + "y": 205.0 + }, + { + "x": 50.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 165.0, + "y": 210.0 + }, + { + "x": 45.0, + "y": 210.0 + }, + { + "x": 45.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 160.0, + "y": 215.0 + }, + { + "x": 40.0, + "y": 215.0 + }, + { + "x": 40.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 155.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dff#0", + "pinName": "C" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "dff#1", + "pinName": "C" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dff#2", + "pinName": "C" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dff#3", + "pinName": "C" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_WE" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "D flip flop\n4 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q1": { + "id": "delegating", + "params": { + "delegateTarget": "dff#0", + "subStateID": "q" + } + }, + "q2": { + "id": "delegating", + "params": { + "delegateTarget": "dff#1", + "subStateID": "q" + } + }, + "q": { + "id": "bitVectorSplitting", + "params": { + "vectorPartTargets": [ + "q1", + "q2", + "q3", + "q4" + ], + "vectorPartLengthes": [ + 1, + 1, + 1, + 1 + ] + } + }, + "q3": { + "id": "delegating", + "params": { + "delegateTarget": "dff#2", + "subStateID": "q" + } + }, + "q4": { + "id": "delegating", + "params": { + "delegateTarget": "dff#3", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch.json new file mode 100644 index 00000000..212ca70f --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch.json @@ -0,0 +1,267 @@ +{ + "width": 35.0, + "height": 20.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "D", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "E", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "_Q", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 10.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 15.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "_rsLatch", + "name": "_rsLatch#0", + "pos": { + "x": 45.0, + "y": 7.5 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 4.0, + "y": 36.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 34.0, + "y": 11.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#0" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "E" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 5.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 5.0, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 35.0, + "y": 25.0 + }, + { + "x": 10.0, + "y": 25.0 + }, + { + "x": 10.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_rsLatch#0", + "pinName": "_S" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_rsLatch#0", + "pinName": "_R" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 40.0, + "y": 37.5 + }, + { + "x": 40.0, + "y": 22.5 + } + ] + }, + { + "pin1": { + "compName": "_rsLatch#0", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "_rsLatch#0", + "pinName": "_Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_Q" + }, + "name": "unnamedWire#9" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "dlatch", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q": { + "id": "delegating", + "params": { + "delegateTarget": "_rsLatch#0", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch4.json new file mode 100644 index 00000000..9fdbac01 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch4.json @@ -0,0 +1,405 @@ +{ + "width": 35.0, + "height": 50.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Q2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Q3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Q4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "dlatch", + "name": "dlatch#0", + "pos": { + "x": 30.0, + "y": 7.5 + } + }, + { + "id": "dlatch", + "name": "dlatch#1", + "pos": { + "x": 30.0, + "y": 32.5 + } + }, + { + "id": "dlatch", + "name": "dlatch#2", + "pos": { + "x": 30.0, + "y": 57.5 + } + }, + { + "id": "dlatch", + "name": "dlatch#3", + "pos": { + "x": 30.0, + "y": 82.5 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 14.0, + "y": 46.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 14.0, + "y": 71.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 14.0, + "y": 96.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 15.0, + "y": 112.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#3", + "pinName": "E" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "dlatch#3", + "pinName": "D" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#0", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q1" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#1", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q2" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#2", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q3" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#3", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q4" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#2", + "pinName": "E" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#1", + "pinName": "E" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "E" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 15.0, + "y": 22.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "D" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "dlatch#1", + "pinName": "D" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "dlatch#2", + "pinName": "D" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "dlatch4", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q1": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#0", + "subStateID": "q" + } + }, + "q2": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#1", + "subStateID": "q" + } + }, + "q": { + "id": "bitVectorSplitting", + "params": { + "vectorPartTargets": [ + "q1", + "q2", + "q3", + "q4" + ], + "vectorPartLengthes": [ + 1, + 1, + 1, + 1 + ] + } + }, + "q3": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#2", + "subStateID": "q" + } + }, + "q4": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#3", + "subStateID": "q" + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/fulladder.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/fulladder.json new file mode 100644 index 00000000..4ba4b195 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/fulladder.json @@ -0,0 +1,204 @@ +{ + "width": 35.0, + "height": 30.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": 0.0, + "y": 25.0 + }, + "name": "C", + "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": 57.5, + "y": 40.0 + }, + "params": 1 + }, + { + "id": "halfadder", + "name": "halfadder#0", + "pos": { + "x": 5.0, + "y": 40.0 + } + }, + { + "id": "halfadder", + "name": "halfadder#1", + "pos": { + "x": 45.0, + "y": 7.5 + } + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A" + }, + "pin2": { + "compName": "halfadder#1", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B" + }, + "pin2": { + "compName": "halfadder#0", + "pinName": "A" + }, + "name": "unnamedWire#1" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "halfadder#0", + "pinName": "B" + }, + "name": "unnamedWire#2" + }, + { + "pin1": { + "compName": "halfadder#0", + "pinName": "Y" + }, + "pin2": { + "compName": "halfadder#1", + "pinName": "B" + }, + "name": "unnamedWire#3" + }, + { + "pin1": { + "compName": "halfadder#0", + "pinName": "_Z" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "halfadder#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "halfadder#1", + "pinName": "_Z" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#6", + "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": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Z" + }, + "name": "unnamedWire#7" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "fulladder", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/halfadder.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/halfadder.json new file mode 100644 index 00000000..d56f83e0 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/halfadder.json @@ -0,0 +1,337 @@ +{ + "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": "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": [] + }, + { + "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 + } + ] + } + ], + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1.json new file mode 100644 index 00000000..3997209b --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1.json @@ -0,0 +1,248 @@ +{ + "width": 35.0, + "height": 30.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 10.0, + "y": 7.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 35.0, + "y": 22.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 35.0, + "y": 47.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 60.0, + "y": 30.0 + }, + "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": 21.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#10" + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#4" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 5.0, + "y": 52.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#8" + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#9" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "mux1", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_12.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_12.json new file mode 100644 index 00000000..0d1cb5ac --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_12.json @@ -0,0 +1,1836 @@ +{ + "width": 50.0, + "height": 80.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "I0", + "logicWidth": 12, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I1", + "logicWidth": 12, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 50.0, + "y": 30.0 + }, + "name": "Y", + "logicWidth": 12, + "usage": "OUTPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 95.0, + "y": 145.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#11", + "pos": { + "x": 95.0, + "y": 205.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#12", + "pos": { + "x": 150.0, + "y": 285.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#13", + "pos": { + "x": 150.0, + "y": 225.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#14", + "pos": { + "x": 95.0, + "y": 265.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#15", + "pos": { + "x": 150.0, + "y": 345.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 150.0, + "y": 45.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 95.0, + "y": 85.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 150.0, + "y": 105.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 95.0, + "y": 25.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 95.0, + "y": 325.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 150.0, + "y": 165.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 235.0, + "y": 95.0 + }, + "params": 12 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 55.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 45.0 + }, + "params": 12 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 5.0, + "y": 245.0 + }, + "params": 12 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 144.0, + "y": 239.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 139.0, + "y": 229.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 144.0, + "y": 299.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 139.0, + "y": 289.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 89.0, + "y": 4.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 84.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 49.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 49.0, + "y": 14.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 84.0, + "y": 269.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 89.0, + "y": 279.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 84.0, + "y": 209.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 89.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 89.0, + "y": 159.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 84.0, + "y": 149.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 84.0, + "y": 89.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 89.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 84.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 89.0, + "y": 39.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 139.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 144.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 144.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 139.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 139.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 144.0, + "y": 179.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "S1" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I11" + }, + "name": "unnamedWire#103", + "path": [ + { + "x": 210.0, + "y": 30.0 + }, + { + "x": 210.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I10" + }, + "name": "unnamedWire#104", + "path": [ + { + "x": 205.0, + "y": 50.0 + }, + { + "x": 205.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y" + }, + "name": "unnamedWire#105", + "path": [ + { + "x": 200.0, + "y": 115.0 + }, + { + "x": 200.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I8" + }, + "name": "unnamedWire#106", + "path": [ + { + "x": 195.0, + "y": 110.0 + }, + { + "x": 195.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y" + }, + "name": "unnamedWire#107", + "path": [ + { + "x": 195.0, + "y": 135.0 + }, + { + "x": 195.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I6" + }, + "name": "unnamedWire#108", + "path": [ + { + "x": 200.0, + "y": 170.0 + }, + { + "x": 200.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y" + }, + "name": "unnamedWire#109", + "path": [ + { + "x": 205.0, + "y": 155.0 + }, + { + "x": 205.0, + "y": 210.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "S2" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I4" + }, + "name": "unnamedWire#110", + "path": [ + { + "x": 210.0, + "y": 230.0 + }, + { + "x": 210.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "Y" + }, + "name": "unnamedWire#111", + "path": [ + { + "x": 215.0, + "y": 175.0 + }, + { + "x": 215.0, + "y": 270.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#112", + "path": [ + { + "x": 220.0, + "y": 290.0 + }, + { + "x": 220.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "name": "unnamedWire#113", + "path": [ + { + "x": 225.0, + "y": 195.0 + }, + { + "x": 225.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#114", + "path": [ + { + "x": 230.0, + "y": 350.0 + }, + { + "x": 230.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#116", + "path": [ + { + "x": 50.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "S2" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "S1" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 140.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "S1" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 140.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "S1" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S1" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "S1" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 145.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "S2" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 145.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "S1" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 85.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "S2" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 90.0, + "y": 340.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S2" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S1" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I1" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 75.0, + "y": 45.0 + }, + { + "x": 75.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1" + }, + "name": "unnamedWire#65", + "path": [ + { + "x": 70.0, + "y": 55.0 + }, + { + "x": 70.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1" + }, + "name": "unnamedWire#66", + "path": [ + { + "x": 65.0, + "y": 65.0 + }, + { + "x": 65.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1" + }, + "name": "unnamedWire#67", + "path": [ + { + "x": 60.0, + "y": 75.0 + }, + { + "x": 60.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I1" + }, + "name": "unnamedWire#68", + "path": [ + { + "x": 55.0, + "y": 85.0 + }, + { + "x": 55.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I1" + }, + "name": "unnamedWire#69", + "path": [ + { + "x": 50.0, + "y": 95.0 + }, + { + "x": 50.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I1" + }, + "name": "unnamedWire#70", + "path": [ + { + "x": 45.0, + "y": 105.0 + }, + { + "x": 45.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I1" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 40.0, + "y": 115.0 + }, + { + "x": 40.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "I1" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 35.0, + "y": 125.0 + }, + { + "x": 35.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "I1" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 30.0, + "y": 135.0 + }, + { + "x": 30.0, + "y": 310.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "I1" + }, + "name": "unnamedWire#74", + "path": [ + { + "x": 25.0, + "y": 145.0 + }, + { + "x": 25.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I1" + }, + "name": "unnamedWire#75", + "path": [ + { + "x": 20.0, + "y": 155.0 + }, + { + "x": 20.0, + "y": 370.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "I" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "S1" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I2" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 75.0, + "y": 245.0 + }, + { + "x": 75.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I2" + }, + "name": "unnamedWire#83", + "path": [ + { + "x": 70.0, + "y": 255.0 + }, + { + "x": 70.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I2" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 65.0, + "y": 265.0 + }, + { + "x": 65.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O8" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I2" + }, + "name": "unnamedWire#85", + "path": [ + { + "x": 60.0, + "y": 275.0 + }, + { + "x": 60.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I2" + }, + "name": "unnamedWire#86", + "path": [ + { + "x": 55.0, + "y": 285.0 + }, + { + "x": 55.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O6" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I2" + }, + "name": "unnamedWire#87", + "path": [ + { + "x": 50.0, + "y": 295.0 + }, + { + "x": 50.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I2" + }, + "name": "unnamedWire#88", + "path": [ + { + "x": 45.0, + "y": 305.0 + }, + { + "x": 45.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I2" + }, + "name": "unnamedWire#89", + "path": [ + { + "x": 40.0, + "y": 315.0 + }, + { + "x": 40.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "I2" + }, + "name": "unnamedWire#90", + "path": [ + { + "x": 35.0, + "y": 325.0 + }, + { + "x": 35.0, + "y": 300.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "I2" + }, + "name": "unnamedWire#91", + "path": [ + { + "x": 30.0, + "y": 335.0 + }, + { + "x": 30.0, + "y": 320.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "I2" + }, + "name": "unnamedWire#92", + "path": [ + { + "x": 45.0, + "y": 345.0 + }, + { + "x": 45.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I2" + }, + "name": "unnamedWire#93", + "path": [ + { + "x": 40.0, + "y": 355.0 + }, + { + "x": 40.0, + "y": 380.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#98", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "MUX\n12 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 23.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default", + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_16.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_16.json new file mode 100644 index 00000000..65ce55c8 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_16.json @@ -0,0 +1,2375 @@ +{ + "width": 55.0, + "height": 110.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I0", + "logicWidth": 16, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 90.0 + }, + "name": "I1", + "logicWidth": 16, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 55.0, + "y": 50.0 + }, + "name": "Y", + "logicWidth": 16, + "usage": "OUTPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 115.0, + "y": 25.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 175.0, + "y": 45.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 115.0, + "y": 265.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#11", + "pos": { + "x": 115.0, + "y": 325.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#12", + "pos": { + "x": 175.0, + "y": 405.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#13", + "pos": { + "x": 175.0, + "y": 345.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#14", + "pos": { + "x": 115.0, + "y": 385.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#15", + "pos": { + "x": 175.0, + "y": 465.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 115.0, + "y": 85.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 175.0, + "y": 105.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 175.0, + "y": 165.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 115.0, + "y": 205.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 175.0, + "y": 225.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 115.0, + "y": 145.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 115.0, + "y": 445.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 175.0, + "y": 285.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 260.0, + "y": 175.0 + }, + "params": 16 + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 70.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 50.0 + }, + "params": 16 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 5.0, + "y": 375.0 + }, + "params": 16 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 164.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 169.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 169.0, + "y": 359.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 164.0, + "y": 349.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 169.0, + "y": 419.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 164.0, + "y": 409.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 109.0, + "y": 4.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 104.0, + "y": 19.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 64.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 64.0, + "y": 14.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 104.0, + "y": 389.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 109.0, + "y": 399.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 164.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 104.0, + "y": 329.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 109.0, + "y": 339.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 109.0, + "y": 279.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 104.0, + "y": 269.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 104.0, + "y": 209.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 109.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 104.0, + "y": 149.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 109.0, + "y": 159.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#28", + "pos": { + "x": 109.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#29", + "pos": { + "x": 104.0, + "y": 89.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 169.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#30", + "pos": { + "x": 104.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#31", + "pos": { + "x": 109.0, + "y": 39.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 164.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 169.0, + "y": 179.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 169.0, + "y": 239.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 164.0, + "y": 229.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 164.0, + "y": 289.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 169.0, + "y": 299.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S2" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "S1" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I14" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y" + }, + "name": "unnamedWire#100", + "path": [ + { + "x": 250.0, + "y": 185.0 + }, + { + "x": 250.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I13" + }, + "name": "unnamedWire#101", + "path": [ + { + "x": 245.0, + "y": 90.0 + }, + { + "x": 245.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I12" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y" + }, + "name": "unnamedWire#102", + "path": [ + { + "x": 240.0, + "y": 205.0 + }, + { + "x": 240.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I11" + }, + "name": "unnamedWire#103", + "path": [ + { + "x": 235.0, + "y": 150.0 + }, + { + "x": 235.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I10" + }, + "name": "unnamedWire#104", + "path": [ + { + "x": 230.0, + "y": 170.0 + }, + { + "x": 230.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y" + }, + "name": "unnamedWire#105", + "path": [ + { + "x": 225.0, + "y": 235.0 + }, + { + "x": 225.0, + "y": 210.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I8" + }, + "name": "unnamedWire#106", + "path": [ + { + "x": 220.0, + "y": 230.0 + }, + { + "x": 220.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y" + }, + "name": "unnamedWire#107", + "path": [ + { + "x": 220.0, + "y": 255.0 + }, + { + "x": 220.0, + "y": 270.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I6" + }, + "name": "unnamedWire#108", + "path": [ + { + "x": 225.0, + "y": 290.0 + }, + { + "x": 225.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "Y" + }, + "name": "unnamedWire#109", + "path": [ + { + "x": 230.0, + "y": 275.0 + }, + { + "x": 230.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "S2" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I4" + }, + "name": "unnamedWire#110", + "path": [ + { + "x": 235.0, + "y": 350.0 + }, + { + "x": 235.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "Y" + }, + "name": "unnamedWire#111", + "path": [ + { + "x": 240.0, + "y": 295.0 + }, + { + "x": 240.0, + "y": 390.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I2" + }, + "name": "unnamedWire#112", + "path": [ + { + "x": 245.0, + "y": 410.0 + }, + { + "x": 245.0, + "y": 305.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "name": "unnamedWire#113", + "path": [ + { + "x": 250.0, + "y": 315.0 + }, + { + "x": 250.0, + "y": 450.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I0" + }, + "name": "unnamedWire#114", + "path": [ + { + "x": 255.0, + "y": 470.0 + }, + { + "x": 255.0, + "y": 325.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#116", + "path": [ + { + "x": 65.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "S2" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "S1" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 165.0, + "y": 470.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "S1" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S1" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "S1" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S1" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "S1" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S1" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S2" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S1" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "S2" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 170.0, + "y": 480.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "S1" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 105.0, + "y": 450.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "S2" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 110.0, + "y": 460.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S2" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#58", + "path": [ + { + "x": 165.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#59", + "path": [ + { + "x": 170.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S1" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O15" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O14" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 90.0, + "y": 60.0 + }, + { + "x": 90.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O13" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 85.0, + "y": 70.0 + }, + { + "x": 85.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O12" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 80.0, + "y": 80.0 + }, + { + "x": 80.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I1" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 75.0, + "y": 90.0 + }, + { + "x": 75.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1" + }, + "name": "unnamedWire#65", + "path": [ + { + "x": 70.0, + "y": 100.0 + }, + { + "x": 70.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1" + }, + "name": "unnamedWire#66", + "path": [ + { + "x": 65.0, + "y": 110.0 + }, + { + "x": 65.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1" + }, + "name": "unnamedWire#67", + "path": [ + { + "x": 60.0, + "y": 120.0 + }, + { + "x": 60.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I1" + }, + "name": "unnamedWire#68", + "path": [ + { + "x": 55.0, + "y": 130.0 + }, + { + "x": 55.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I1" + }, + "name": "unnamedWire#69", + "path": [ + { + "x": 50.0, + "y": 140.0 + }, + { + "x": 50.0, + "y": 310.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I1" + }, + "name": "unnamedWire#70", + "path": [ + { + "x": 45.0, + "y": 150.0 + }, + { + "x": 45.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I1" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 40.0, + "y": 160.0 + }, + { + "x": 40.0, + "y": 370.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "I1" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 35.0, + "y": 170.0 + }, + { + "x": 35.0, + "y": 410.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "I1" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 30.0, + "y": 180.0 + }, + { + "x": 30.0, + "y": 430.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "I1" + }, + "name": "unnamedWire#74", + "path": [ + { + "x": 25.0, + "y": 190.0 + }, + { + "x": 25.0, + "y": 470.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I1" + }, + "name": "unnamedWire#75", + "path": [ + { + "x": 20.0, + "y": 200.0 + }, + { + "x": 20.0, + "y": 490.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "I" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O15" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I2" + }, + "name": "unnamedWire#78", + "path": [ + { + "x": 95.0, + "y": 375.0 + }, + { + "x": 95.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O14" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I2" + }, + "name": "unnamedWire#79", + "path": [ + { + "x": 90.0, + "y": 385.0 + }, + { + "x": 90.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "S1" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O13" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I2" + }, + "name": "unnamedWire#80", + "path": [ + { + "x": 85.0, + "y": 395.0 + }, + { + "x": 85.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O12" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I2" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 80.0, + "y": 405.0 + }, + { + "x": 80.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I2" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 75.0, + "y": 415.0 + }, + { + "x": 75.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I2" + }, + "name": "unnamedWire#83", + "path": [ + { + "x": 70.0, + "y": 425.0 + }, + { + "x": 70.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O9" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I2" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 65.0, + "y": 435.0 + }, + { + "x": 65.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O8" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I2" + }, + "name": "unnamedWire#85", + "path": [ + { + "x": 60.0, + "y": 445.0 + }, + { + "x": 60.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O7" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "I2" + }, + "name": "unnamedWire#86", + "path": [ + { + "x": 55.0, + "y": 455.0 + }, + { + "x": 55.0, + "y": 300.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O6" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I2" + }, + "name": "unnamedWire#87", + "path": [ + { + "x": 50.0, + "y": 465.0 + }, + { + "x": 50.0, + "y": 320.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O5" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#11", + "pinName": "I2" + }, + "name": "unnamedWire#88", + "path": [ + { + "x": 45.0, + "y": 475.0 + }, + { + "x": 45.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#13", + "pinName": "I2" + }, + "name": "unnamedWire#89", + "path": [ + { + "x": 40.0, + "y": 485.0 + }, + { + "x": 40.0, + "y": 380.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "S2" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#14", + "pinName": "I2" + }, + "name": "unnamedWire#90", + "path": [ + { + "x": 35.0, + "y": 495.0 + }, + { + "x": 35.0, + "y": 420.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#12", + "pinName": "I2" + }, + "name": "unnamedWire#91", + "path": [ + { + "x": 30.0, + "y": 505.0 + }, + { + "x": 30.0, + "y": 440.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "I2" + }, + "name": "unnamedWire#92", + "path": [ + { + "x": 25.0, + "y": 515.0 + }, + { + "x": 25.0, + "y": 480.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#15", + "pinName": "I2" + }, + "name": "unnamedWire#93", + "path": [ + { + "x": 20.0, + "y": 525.0 + }, + { + "x": 20.0, + "y": 500.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#98", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I15" + }, + "name": "unnamedWire#99", + "path": [ + { + "x": 255.0, + "y": 30.0 + }, + { + "x": 255.0, + "y": 175.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "MUX\n16 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 23.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default", + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_4.json new file mode 100644 index 00000000..a84df229 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux1_4.json @@ -0,0 +1,503 @@ +{ + "width": 35.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "I0_1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I0_2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "I0_3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "I0_4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "I1_1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "I1_2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "I1_3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "I1_4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "mux1", + "name": "mux1#0", + "pos": { + "x": 30.0, + "y": 7.5 + } + }, + { + "id": "mux1", + "name": "mux1#1", + "pos": { + "x": 30.0, + "y": 42.5 + } + }, + { + "id": "mux1", + "name": "mux1#2", + "pos": { + "x": 30.0, + "y": 77.5 + } + }, + { + "id": "mux1", + "name": "mux1#3", + "pos": { + "x": 30.0, + "y": 112.5 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 24.0, + "y": 11.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 46.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 24.0, + "y": 81.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "mux1#0", + "pinName": "S0" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "mux1#2", + "pinName": "S0" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0_3" + }, + "pin2": { + "compName": "mux1#2", + "pinName": "I0" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 5.0, + "y": 87.5 + }, + { + "x": 5.0, + "y": 92.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1_3" + }, + "pin2": { + "compName": "mux1#2", + "pinName": "I1" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 20.0, + "y": 187.5 + }, + { + "x": 20.0, + "y": 102.5 + } + ] + }, + { + "pin1": { + "compName": "mux1#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#14" + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "mux1#3", + "pinName": "S0" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 25.0, + "y": 117.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0_4" + }, + "pin2": { + "compName": "mux1#3", + "pinName": "I0" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 5.0, + "y": 112.5 + }, + { + "x": 5.0, + "y": 127.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1_4" + }, + "pin2": { + "compName": "mux1#3", + "pinName": "I1" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 25.0, + "y": 212.5 + }, + { + "x": 25.0, + "y": 137.5 + } + ] + }, + { + "pin1": { + "compName": "mux1#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#18" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0_1" + }, + "pin2": { + "compName": "mux1#0", + "pinName": "I0" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 5.0, + "y": 37.5 + }, + { + "x": 5.0, + "y": 22.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1_1" + }, + "pin2": { + "compName": "mux1#0", + "pinName": "I1" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 10.0, + "y": 137.5 + }, + { + "x": 10.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "mux1#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "mux1#1", + "pinName": "S0" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I0_2" + }, + "pin2": { + "compName": "mux1#1", + "pinName": "I0" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 5.0, + "y": 62.5 + }, + { + "x": 5.0, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1_2" + }, + "pin2": { + "compName": "mux1#1", + "pinName": "I1" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 15.0, + "y": 162.5 + }, + { + "x": 15.0, + "y": 67.5 + } + ] + }, + { + "pin1": { + "compName": "mux1#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#9" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "mux1_4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux2.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux2.json new file mode 100644 index 00000000..3a1507a1 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux2.json @@ -0,0 +1,434 @@ +{ + "width": 70.0, + "height": 70.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "I00", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I01", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I10", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I11", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 70.0, + "y": 10.0 + }, + "name": "Y", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 60.0, + "y": 35.0 + } + }, + { + "id": "sel1", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 60.0, + "y": 100.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 115.0, + "y": 20.0 + } + }, + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 30.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 24.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 54.0, + "y": 39.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S2" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 55.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S2" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 25.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S1" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 55.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 25.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I00" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 35.0, + "y": 75.0 + }, + { + "x": 35.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I01" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I2" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 40.0, + "y": 100.0 + }, + { + "x": 40.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I2" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 150.0 + }, + { + "x": 20.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 105.0, + "y": 40.0 + }, + { + "x": 105.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 105.0 + }, + { + "x": 105.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 15.0, + "y": 25.0 + }, + { + "x": 15.0, + "y": 10.0 + }, + { + "x": 85.0, + "y": 10.0 + }, + { + "x": 85.0, + "y": 25.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "mux2", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux2_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux2_4.json new file mode 100644 index 00000000..5f8c0c8f --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux2_4.json @@ -0,0 +1,700 @@ +{ + "width": 62.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "I00", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I01", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I10", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I11", + "logicWidth": 4, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 62.0, + "y": 16.0 + }, + "name": "Y", + "logicWidth": 4, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 40.0, + "y": 30.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 40.0, + "y": 125.0 + } + }, + { + "id": "mux1_4", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 100.0, + "y": 20.0 + } + }, + { + "id": "Merger", + "name": "Merger#0", + "pos": { + "x": 140.0, + "y": 25.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 25.0, + "y": 45.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 25.0, + "y": 85.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#2", + "pos": { + "x": 25.0, + "y": 140.0 + }, + "params": 4 + }, + { + "id": "Splitter", + "name": "Splitter#3", + "pos": { + "x": 25.0, + "y": 180.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 19.0, + "y": 34.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_1" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_2" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "O1" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 20.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S0" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 20.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I00" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 15.0, + "y": 60.0 + }, + { + "x": 15.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_3" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I01" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "I" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I10" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 15.0, + "y": 155.0 + }, + { + "x": 15.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I11" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "I" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_1" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_3" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y1" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 80.0, + "y": 75.0 + }, + { + "x": 80.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_2" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 85.0, + "y": 140.0 + }, + { + "x": 85.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y3" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 90.0, + "y": 95.0 + }, + { + "x": 90.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_1" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_4" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 95.0, + "y": 160.0 + }, + { + "x": 95.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y1" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I1" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "Merger#0", + "pinName": "I2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y3" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "Merger#0", + "pinName": "I3" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 15.0, + "y": 50.0 + }, + { + "x": 15.0, + "y": 20.0 + }, + { + "x": 60.0, + "y": 20.0 + }, + { + "x": 60.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_4" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "O3" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_2" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_3" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_4" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#9", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "mux1_4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux3.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux3.json new file mode 100644 index 00000000..7b54b5d5 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/mux3.json @@ -0,0 +1,483 @@ +{ + "width": 80.0, + "height": 120.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I000", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I001", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I010", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 70.0 + }, + "name": "I011", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 80.0 + }, + "name": "I100", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 90.0 + }, + "name": "I101", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 100.0 + }, + "name": "I110", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 110.0 + }, + "name": "I111", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "S0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 80.0, + "y": 10.0 + }, + "name": "Y", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "mux2", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 35.0, + "y": 185.0 + } + }, + { + "id": "mux1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 125.0, + "y": 20.0 + } + }, + { + "id": "mux2", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 35.0, + "y": 85.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 19.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 94.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 20.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 25.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I11" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I011" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 15.0, + "y": 145.0 + }, + { + "x": 15.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I00" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I100" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 10.0, + "y": 215.0 + }, + { + "x": 10.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I101" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I01" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I10" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I110" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 10.0, + "y": 235.0 + }, + { + "x": 10.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I111" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I11" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 15.0, + "y": 275.0 + }, + { + "x": 15.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 115.0, + "y": 195.0 + }, + { + "x": 115.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 110.0, + "y": 95.0 + }, + { + "x": 110.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S1" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 25.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I000" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I00" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 10.0, + "y": 100.0 + }, + { + "x": 10.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I01" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I001" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I010" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I10" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 135.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "mux3", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/nand3.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/nand3.json new file mode 100644 index 00000000..ced22619 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/nand3.json @@ -0,0 +1,219 @@ +{ + "width": 35.0, + "height": 30.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": 0.0, + "y": 25.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y", + "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": 35.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 62.5, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 31.5, + "y": 24.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#0" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#1" + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 32.5, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 32.5, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 57.5, + "y": 25.0 + }, + { + "x": 57.5, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 60.0, + "y": 62.5 + }, + { + "x": 60.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#7", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "nand3", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/not4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/not4.json new file mode 100644 index 00000000..4b4e51f1 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/not4.json @@ -0,0 +1,401 @@ +{ + "width": 35.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 30.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 30.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 30.0, + "y": 52.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 30.0, + "y": 77.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 14.0, + "y": 11.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 14.0, + "y": 36.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 14.0, + "y": 61.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 14.0, + "y": 86.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 15.0, + "y": 67.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 15.0, + "y": 92.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 15.0, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 15.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 15.0, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 82.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 15.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 15.0, + "y": 42.5 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "not4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/or4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/or4.json new file mode 100644 index 00000000..33e50e58 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/or4.json @@ -0,0 +1,558 @@ +{ + "width": 35.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 20.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 20.0, + "y": 65.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 20.0, + "y": 115.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 20.0, + "y": 165.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 50.0, + "y": 40.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 50.0, + "y": 140.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 110.0, + "y": 40.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 110.0, + "y": 140.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 140.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 14.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 14.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 14.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 14.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 104.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 104.0, + "y": 149.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 15.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 15.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#12" + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#13" + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#14" + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#15" + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 105.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 105.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 105.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 105.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#22" + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "B" + }, + "name": "unnamedWire#23" + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#24" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 15.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 15.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 15.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 15.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 15.0, + "y": 80.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "or4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/or_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/or_4.json new file mode 100644 index 00000000..46801b2f --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/or_4.json @@ -0,0 +1,897 @@ +{ + "width": 35.0, + "height": 80.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "B2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "B3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "B4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 15.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 15.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#10", + "pos": { + "x": 65.0, + "y": 52.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#11", + "pos": { + "x": 65.0, + "y": 77.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 15.0, + "y": 52.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 15.0, + "y": 77.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 15.0, + "y": 102.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 15.0, + "y": 127.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 15.0, + "y": 152.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 15.0, + "y": 177.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 65.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#9", + "pos": { + "x": 65.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 6.5, + "y": 11.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 6.5, + "y": 36.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 6.5, + "y": 61.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 6.5, + "y": 86.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 6.5, + "y": 111.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 6.5, + "y": 136.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 6.5, + "y": 161.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 6.5, + "y": 186.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 7.5, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 7.5, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 7.5, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 7.5, + "y": 67.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 7.5, + "y": 82.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 7.5, + "y": 92.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 7.5, + "y": 107.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 7.5, + "y": 117.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 7.5, + "y": 132.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 7.5, + "y": 142.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 7.5, + "y": 157.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 7.5, + "y": 167.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 7.5, + "y": 182.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 7.5, + "y": 192.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 40.0, + "y": 12.5 + }, + { + "x": 40.0, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "B" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 45.0, + "y": 112.5 + }, + { + "x": 45.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 40.0, + "y": 37.5 + }, + { + "x": 40.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 50.0, + "y": 137.5 + }, + { + "x": 50.0, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 40.0, + "y": 62.5 + }, + { + "x": 40.0, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "B" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 55.0, + "y": 162.5 + }, + { + "x": 55.0, + "y": 67.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "A" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 40.0, + "y": 87.5 + }, + { + "x": 40.0, + "y": 82.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "B" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 60.0, + "y": 187.5 + }, + { + "x": 60.0, + "y": 92.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#11", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B2" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B3" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B4" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 7.5, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 7.5, + "y": 17.5 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "or_4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/ram2.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/ram2.json new file mode 100644 index 00000000..2dd4182e --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/ram2.json @@ -0,0 +1,3029 @@ +{ + "width": 35.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "A0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "B0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "QA1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "QA2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "QA3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "QA4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "QB1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "QB2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 65.0 + }, + "name": "QB3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 75.0 + }, + "name": "QB4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "WE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.1, + "submodel": { + "components": [ + { + "id": "and41", + "name": "and41#0", + "pos": { + "x": 130.0, + "y": 150.0 + } + }, + { + "id": "and41", + "name": "and41#1", + "pos": { + "x": 235.0, + "y": 375.0 + } + }, + { + "id": "and41", + "name": "and41#2", + "pos": { + "x": 135.0, + "y": 325.0 + } + }, + { + "id": "andor414", + "name": "andor414#0", + "pos": { + "x": 235.0, + "y": 485.0 + } + }, + { + "id": "andor414", + "name": "andor414#1", + "pos": { + "x": 235.0, + "y": 635.0 + } + }, + { + "id": "andor414", + "name": "andor414#2", + "pos": { + "x": 235.0, + "y": 785.0 + } + }, + { + "id": "andor414", + "name": "andor414#3", + "pos": { + "x": 135.0, + "y": 435.0 + } + }, + { + "id": "andor414", + "name": "andor414#4", + "pos": { + "x": 135.0, + "y": 585.0 + } + }, + { + "id": "andor414", + "name": "andor414#5", + "pos": { + "x": 135.0, + "y": 735.0 + } + }, + { + "id": "demux2", + "name": "demux2#0", + "pos": { + "x": 55.0, + "y": 45.0 + } + }, + { + "id": "demux2", + "name": "demux2#1", + "pos": { + "x": 55.0, + "y": 150.0 + } + }, + { + "id": "dlatch4", + "name": "dlatch4#0", + "pos": { + "x": 55.0, + "y": 325.0 + } + }, + { + "id": "dlatch4", + "name": "dlatch4#1", + "pos": { + "x": 55.0, + "y": 475.0 + } + }, + { + "id": "dlatch4", + "name": "dlatch4#2", + "pos": { + "x": 55.0, + "y": 625.0 + } + }, + { + "id": "dlatch4", + "name": "dlatch4#3", + "pos": { + "x": 55.0, + "y": 775.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 109.0, + "y": 154.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 104.0, + "y": 164.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 44.0, + "y": 499.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 49.0, + "y": 509.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 34.0, + "y": 629.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 39.0, + "y": 639.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 44.0, + "y": 649.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 49.0, + "y": 659.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 129.0, + "y": 329.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 124.0, + "y": 339.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 119.0, + "y": 349.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 114.0, + "y": 359.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 99.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 129.0, + "y": 479.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 124.0, + "y": 489.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 119.0, + "y": 499.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 114.0, + "y": 509.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 129.0, + "y": 629.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 124.0, + "y": 639.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 119.0, + "y": 649.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 114.0, + "y": 659.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#28", + "pos": { + "x": 129.0, + "y": 779.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#29", + "pos": { + "x": 124.0, + "y": 789.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 94.0, + "y": 184.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#30", + "pos": { + "x": 119.0, + "y": 799.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#31", + "pos": { + "x": 114.0, + "y": 809.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 34.0, + "y": 549.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 39.0, + "y": 649.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 44.0, + "y": 749.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 49.0, + "y": 809.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 34.0, + "y": 479.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 39.0, + "y": 489.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A0" + }, + "pin2": { + "compName": "demux2#0", + "pinName": "S0" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "demux2#0", + "pinName": "S1" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A3" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A4" + }, + "name": "unnamedWire#100", + "path": [] + }, + { + "pin1": { + "compName": "and41#1", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C1" + }, + "name": "unnamedWire#101", + "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": { + "compName": "and41#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C2" + }, + "name": "unnamedWire#102", + "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": { + "compName": "and41#1", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C3" + }, + "name": "unnamedWire#103", + "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": { + "compName": "and41#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C4" + }, + "name": "unnamedWire#104", + "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": { + "compName": "andor414#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C1" + }, + "name": "unnamedWire#105", + "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": { + "compName": "andor414#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C2" + }, + "name": "unnamedWire#106", + "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": { + "compName": "andor414#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C3" + }, + "name": "unnamedWire#107", + "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": { + "compName": "andor414#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C4" + }, + "name": "unnamedWire#108", + "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": { + "compName": "andor414#1", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C1" + }, + "name": "unnamedWire#109", + "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": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A4" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "andor414#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C2" + }, + "name": "unnamedWire#110", + "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": { + "compName": "andor414#1", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C3" + }, + "name": "unnamedWire#111", + "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": { + "compName": "andor414#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C4" + }, + "name": "unnamedWire#112", + "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": { + "compName": "andor414#2", + "pinName": "Y1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA1" + }, + "name": "unnamedWire#113", + "path": [ + { + "x": 300.0, + "y": 790.0 + }, + { + "x": 300.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA2" + }, + "name": "unnamedWire#114", + "path": [ + { + "x": 305.0, + "y": 800.0 + }, + { + "x": 305.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#2", + "pinName": "Y3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA3" + }, + "name": "unnamedWire#115", + "path": [ + { + "x": 310.0, + "y": 810.0 + }, + { + "x": 310.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA4" + }, + "name": "unnamedWire#116", + "path": [ + { + "x": 315.0, + "y": 820.0 + }, + { + "x": 315.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "and41#2", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C1" + }, + "name": "unnamedWire#117", + "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": { + "compName": "and41#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C2" + }, + "name": "unnamedWire#118", + "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": { + "compName": "and41#2", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C3" + }, + "name": "unnamedWire#119", + "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": { + "compName": "_submodelinterface", + "pinName": "WE" + }, + "pin2": { + "compName": "and41#0", + "pinName": "B" + }, + "name": "unnamedWire#12", + "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": { + "compName": "and41#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C4" + }, + "name": "unnamedWire#120", + "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": { + "compName": "andor414#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C1" + }, + "name": "unnamedWire#121", + "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": { + "compName": "andor414#3", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C2" + }, + "name": "unnamedWire#122", + "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": { + "compName": "andor414#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C3" + }, + "name": "unnamedWire#123", + "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": { + "compName": "andor414#3", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C4" + }, + "name": "unnamedWire#124", + "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": { + "compName": "andor414#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C1" + }, + "name": "unnamedWire#125", + "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": { + "compName": "andor414#4", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C2" + }, + "name": "unnamedWire#126", + "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": { + "compName": "andor414#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C3" + }, + "name": "unnamedWire#127", + "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": { + "compName": "andor414#4", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C4" + }, + "name": "unnamedWire#128", + "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": { + "compName": "andor414#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB1" + }, + "name": "unnamedWire#129", + "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": { + "compName": "and41#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "C" + }, + "name": "unnamedWire#13", + "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": { + "compName": "andor414#5", + "pinName": "Y2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB2" + }, + "name": "unnamedWire#130", + "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": { + "compName": "andor414#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB3" + }, + "name": "unnamedWire#131", + "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": { + "compName": "andor414#5", + "pinName": "Y4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB4" + }, + "name": "unnamedWire#132", + "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 + } + ] + }, + { + "pin1": { + "compName": "and41#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "C" + }, + "name": "unnamedWire#14", + "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": { + "compName": "and41#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "dlatch4#2", + "pinName": "C" + }, + "name": "unnamedWire#15", + "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": { + "compName": "and41#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "dlatch4#3", + "pinName": "C" + }, + "name": "unnamedWire#16", + "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": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B0" + }, + "pin2": { + "compName": "demux2#1", + "pinName": "S0" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 5.0, + "y": 250.0 + }, + { + "x": 5.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 50.0, + "y": 850.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D1" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 35.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D2" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 40.0, + "y": 340.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D3" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 45.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#0", + "pinName": "D4" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 50.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D1" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D2" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D3" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#1", + "pinName": "D4" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "demux2#1", + "pinName": "S1" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 10.0, + "y": 350.0 + }, + { + "x": 10.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#2", + "pinName": "D1" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#2", + "pinName": "D2" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#2", + "pinName": "D3" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#2", + "pinName": "D4" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y00" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#3", + "pinName": "D1" + }, + "name": "unnamedWire#41", + "path": [ + { + "x": 35.0, + "y": 780.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#3", + "pinName": "D2" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 40.0, + "y": 790.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#3", + "pinName": "D3" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 45.0, + "y": 800.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "dlatch4#3", + "pinName": "D4" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#0", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y01" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#1", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#2", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#2", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#2", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#2", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#3", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#3", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#3", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y10" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "dlatch4#3", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y00" + }, + "pin2": { + "compName": "and41#1", + "pinName": "B" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 210.0, + "y": 50.0 + }, + { + "x": 210.0, + "y": 420.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y01" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "B" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 205.0, + "y": 60.0 + }, + { + "x": 205.0, + "y": 570.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y10" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "B" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 200.0, + "y": 70.0 + }, + { + "x": 200.0, + "y": 720.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y11" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "B" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 195.0, + "y": 80.0 + }, + { + "x": 195.0, + "y": 870.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "and41#2", + "pinName": "B" + }, + "name": "unnamedWire#65", + "path": [ + { + "x": 110.0, + "y": 370.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "B" + }, + "name": "unnamedWire#66", + "path": [ + { + "x": 105.0, + "y": 520.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "B" + }, + "name": "unnamedWire#67", + "path": [ + { + "x": 100.0, + "y": 670.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "B" + }, + "name": "unnamedWire#68", + "path": [ + { + "x": 95.0, + "y": 820.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A1" + }, + "name": "unnamedWire#69", + "path": [ + { + "x": 130.0, + "y": 380.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y11" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A2" + }, + "name": "unnamedWire#70", + "path": [ + { + "x": 125.0, + "y": 390.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A3" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 120.0, + "y": 400.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A4" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 115.0, + "y": 410.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A1" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 130.0, + "y": 530.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A2" + }, + "name": "unnamedWire#74", + "path": [ + { + "x": 125.0, + "y": 540.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A3" + }, + "name": "unnamedWire#75", + "path": [ + { + "x": 120.0, + "y": 550.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A4" + }, + "name": "unnamedWire#76", + "path": [ + { + "x": 115.0, + "y": 560.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A1" + }, + "name": "unnamedWire#77", + "path": [ + { + "x": 130.0, + "y": 680.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A2" + }, + "name": "unnamedWire#78", + "path": [ + { + "x": 125.0, + "y": 690.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A3" + }, + "name": "unnamedWire#79", + "path": [ + { + "x": 120.0, + "y": 700.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A1" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A4" + }, + "name": "unnamedWire#80", + "path": [ + { + "x": 115.0, + "y": 710.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A1" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 130.0, + "y": 830.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A2" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 125.0, + "y": 840.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A3" + }, + "name": "unnamedWire#83", + "path": [ + { + "x": 120.0, + "y": 850.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A4" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 115.0, + "y": 860.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A1" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A2" + }, + "name": "unnamedWire#86", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A3" + }, + "name": "unnamedWire#87", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A4" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A1" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A2" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A2" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A3" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A4" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A1" + }, + "name": "unnamedWire#93", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A2" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A3" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A4" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A1" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A2" + }, + "name": "unnamedWire#98", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A3" + }, + "name": "unnamedWire#99", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "ram2", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": { + "c00": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch4#0" + } + }, + "c11": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch4#3" + } + }, + "c10": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch4#2" + } + }, + "c01": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch4#1" + } + } + }, + "atomicHighLevelStates": { + "q": { + "id": "bitVectorSplitting", + "params": { + "vectorPartTargets": [ + "c11.q", + "c10.q", + "c01.q", + "c00.q" + ], + "vectorPartLengthes": [ + 4, + 4, + 4, + 4 + ] + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/ram4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/ram4.json new file mode 100644 index 00000000..51a74517 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/ram4.json @@ -0,0 +1,3525 @@ +{ + "width": 35.0, + "height": 130.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "A0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "B0", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "B2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "B3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 95.0 + }, + "name": "D1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 105.0 + }, + "name": "D2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 115.0 + }, + "name": "D3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 125.0 + }, + "name": "D4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "QA1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "QA2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "QA3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "QA4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 45.0 + }, + "name": "QB1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 55.0 + }, + "name": "QB2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 65.0 + }, + "name": "QB3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 75.0 + }, + "name": "QB4", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "WE", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.1, + "submodel": { + "components": [ + { + "id": "and41", + "name": "and41#0", + "pos": { + "x": 235.0, + "y": 150.0 + } + }, + { + "id": "and41", + "name": "and41#1", + "pos": { + "x": 250.0, + "y": 375.0 + } + }, + { + "id": "and41", + "name": "and41#2", + "pos": { + "x": 155.0, + "y": 325.0 + } + }, + { + "id": "andor414", + "name": "andor414#0", + "pos": { + "x": 250.0, + "y": 485.0 + } + }, + { + "id": "andor414", + "name": "andor414#1", + "pos": { + "x": 250.0, + "y": 635.0 + } + }, + { + "id": "andor414", + "name": "andor414#2", + "pos": { + "x": 250.0, + "y": 785.0 + } + }, + { + "id": "andor414", + "name": "andor414#3", + "pos": { + "x": 155.0, + "y": 435.0 + } + }, + { + "id": "andor414", + "name": "andor414#4", + "pos": { + "x": 155.0, + "y": 585.0 + } + }, + { + "id": "andor414", + "name": "andor414#5", + "pos": { + "x": 155.0, + "y": 735.0 + } + }, + { + "id": "demux2", + "name": "demux2#0", + "pos": { + "x": 55.0, + "y": 45.0 + } + }, + { + "id": "demux2", + "name": "demux2#1", + "pos": { + "x": 55.0, + "y": 150.0 + } + }, + { + "id": "ram2", + "name": "ram2#0", + "pos": { + "x": 80.0, + "y": 330.0 + } + }, + { + "id": "ram2", + "name": "ram2#1", + "pos": { + "x": 80.0, + "y": 480.0 + } + }, + { + "id": "ram2", + "name": "ram2#2", + "pos": { + "x": 80.0, + "y": 630.0 + } + }, + { + "id": "ram2", + "name": "ram2#3", + "pos": { + "x": 80.0, + "y": 780.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 229.0, + "y": 154.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 224.0, + "y": 164.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 69.0, + "y": 704.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 74.0, + "y": 714.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 59.0, + "y": 834.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 64.0, + "y": 844.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 69.0, + "y": 854.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 74.0, + "y": 864.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 39.0, + "y": 484.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 44.0, + "y": 494.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 49.0, + "y": 504.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 54.0, + "y": 514.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 219.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 39.0, + "y": 634.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 44.0, + "y": 644.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 49.0, + "y": 654.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 54.0, + "y": 664.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 39.0, + "y": 334.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 44.0, + "y": 349.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 49.0, + "y": 649.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 54.0, + "y": 749.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 214.0, + "y": 184.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 59.0, + "y": 534.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 64.0, + "y": 544.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 69.0, + "y": 554.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 74.0, + "y": 564.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 59.0, + "y": 684.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 64.0, + "y": 694.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A0" + }, + "pin2": { + "compName": "demux2#0", + "pinName": "S0" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "demux2#0", + "pinName": "S1" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A3" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QA4" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A4" + }, + "name": "unnamedWire#100", + "path": [ + { + "x": 140.0, + "y": 365.0 + }, + { + "x": 140.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QA1" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A1" + }, + "name": "unnamedWire#101", + "path": [ + { + "x": 140.0, + "y": 485.0 + }, + { + "x": 140.0, + "y": 480.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QA2" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A2" + }, + "name": "unnamedWire#102", + "path": [ + { + "x": 140.0, + "y": 495.0 + }, + { + "x": 140.0, + "y": 490.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QA3" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A3" + }, + "name": "unnamedWire#103", + "path": [ + { + "x": 140.0, + "y": 505.0 + }, + { + "x": 140.0, + "y": 500.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QA4" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "A4" + }, + "name": "unnamedWire#104", + "path": [ + { + "x": 140.0, + "y": 515.0 + }, + { + "x": 140.0, + "y": 510.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QA1" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A1" + }, + "name": "unnamedWire#105", + "path": [ + { + "x": 140.0, + "y": 635.0 + }, + { + "x": 140.0, + "y": 630.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QA2" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A2" + }, + "name": "unnamedWire#106", + "path": [ + { + "x": 140.0, + "y": 645.0 + }, + { + "x": 140.0, + "y": 640.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QA3" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A3" + }, + "name": "unnamedWire#107", + "path": [ + { + "x": 140.0, + "y": 655.0 + }, + { + "x": 140.0, + "y": 650.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QA4" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "A4" + }, + "name": "unnamedWire#108", + "path": [ + { + "x": 140.0, + "y": 665.0 + }, + { + "x": 140.0, + "y": 660.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QA1" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A1" + }, + "name": "unnamedWire#109", + "path": [ + { + "x": 140.0, + "y": 785.0 + }, + { + "x": 140.0, + "y": 780.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A4" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QA2" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A2" + }, + "name": "unnamedWire#110", + "path": [ + { + "x": 140.0, + "y": 795.0 + }, + { + "x": 140.0, + "y": 790.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QA3" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A3" + }, + "name": "unnamedWire#111", + "path": [ + { + "x": 140.0, + "y": 805.0 + }, + { + "x": 140.0, + "y": 800.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QA4" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "A4" + }, + "name": "unnamedWire#112", + "path": [ + { + "x": 140.0, + "y": 815.0 + }, + { + "x": 140.0, + "y": 810.0 + } + ] + }, + { + "pin1": { + "compName": "and41#1", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C1" + }, + "name": "unnamedWire#113", + "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": { + "compName": "and41#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C2" + }, + "name": "unnamedWire#114", + "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": { + "compName": "and41#1", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C3" + }, + "name": "unnamedWire#115", + "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": { + "compName": "and41#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "C4" + }, + "name": "unnamedWire#116", + "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": { + "compName": "andor414#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C1" + }, + "name": "unnamedWire#117", + "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": { + "compName": "andor414#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C2" + }, + "name": "unnamedWire#118", + "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": { + "compName": "andor414#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C3" + }, + "name": "unnamedWire#119", + "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": { + "compName": "_submodelinterface", + "pinName": "WE" + }, + "pin2": { + "compName": "and41#0", + "pinName": "B" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 15.0, + "y": 850.0 + }, + { + "x": 15.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "C4" + }, + "name": "unnamedWire#120", + "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": { + "compName": "andor414#1", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C1" + }, + "name": "unnamedWire#121", + "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": { + "compName": "andor414#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C2" + }, + "name": "unnamedWire#122", + "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": { + "compName": "andor414#1", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C3" + }, + "name": "unnamedWire#123", + "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": { + "compName": "andor414#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "C4" + }, + "name": "unnamedWire#124", + "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": { + "compName": "andor414#2", + "pinName": "Y1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB1" + }, + "name": "unnamedWire#125", + "path": [ + { + "x": 330.0, + "y": 790.0 + }, + { + "x": 330.0, + "y": 450.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB2" + }, + "name": "unnamedWire#126", + "path": [ + { + "x": 335.0, + "y": 800.0 + }, + { + "x": 335.0, + "y": 550.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#2", + "pinName": "Y3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB3" + }, + "name": "unnamedWire#127", + "path": [ + { + "x": 340.0, + "y": 810.0 + }, + { + "x": 340.0, + "y": 650.0 + } + ] + }, + { + "pin1": { + "compName": "andor414#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QB4" + }, + "name": "unnamedWire#128", + "path": [ + { + "x": 345.0, + "y": 820.0 + }, + { + "x": 345.0, + "y": 750.0 + } + ] + }, + { + "pin1": { + "compName": "and41#2", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C1" + }, + "name": "unnamedWire#129", + "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": { + "compName": "and41#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "WE" + }, + "name": "unnamedWire#13", + "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": { + "compName": "and41#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C2" + }, + "name": "unnamedWire#130", + "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": { + "compName": "and41#2", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C3" + }, + "name": "unnamedWire#131", + "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": { + "compName": "and41#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "C4" + }, + "name": "unnamedWire#132", + "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": { + "compName": "andor414#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C1" + }, + "name": "unnamedWire#133", + "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": { + "compName": "andor414#3", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C2" + }, + "name": "unnamedWire#134", + "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": { + "compName": "andor414#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C3" + }, + "name": "unnamedWire#135", + "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": { + "compName": "andor414#3", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "C4" + }, + "name": "unnamedWire#136", + "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": { + "compName": "andor414#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C1" + }, + "name": "unnamedWire#137", + "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": { + "compName": "andor414#4", + "pinName": "Y2" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C2" + }, + "name": "unnamedWire#138", + "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": { + "compName": "andor414#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C3" + }, + "name": "unnamedWire#139", + "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": { + "compName": "and41#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "WE" + }, + "name": "unnamedWire#14", + "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": { + "compName": "andor414#4", + "pinName": "Y4" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "C4" + }, + "name": "unnamedWire#140", + "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": { + "compName": "andor414#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA1" + }, + "name": "unnamedWire#141", + "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": { + "compName": "andor414#5", + "pinName": "Y2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA2" + }, + "name": "unnamedWire#142", + "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": { + "compName": "andor414#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA3" + }, + "name": "unnamedWire#143", + "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": { + "compName": "andor414#5", + "pinName": "Y4" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QA4" + }, + "name": "unnamedWire#144", + "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 + } + ] + }, + { + "pin1": { + "compName": "and41#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "WE" + }, + "name": "unnamedWire#15", + "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": { + "compName": "and41#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "WE" + }, + "name": "unnamedWire#16", + "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": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "A0" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B0" + }, + "pin2": { + "compName": "demux2#1", + "pinName": "S0" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 5.0, + "y": 450.0 + }, + { + "x": 5.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "A1" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 45.0, + "y": 345.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "B0" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 50.0, + "y": 355.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "B1" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 55.0, + "y": 365.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "A0" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "A1" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "B0" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "B1" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "demux2#1", + "pinName": "S1" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 10.0, + "y": 550.0 + }, + { + "x": 10.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B2" + }, + "pin2": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "A0" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "A1" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "B0" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "B1" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "A0" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 40.0, + "y": 785.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "A1" + }, + "name": "unnamedWire#38", + "path": [ + { + "x": 45.0, + "y": 795.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "B0" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 50.0, + "y": 805.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y00" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "B1" + }, + "name": "unnamedWire#41", + "path": [ + { + "x": 55.0, + "y": 815.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 40.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B3" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "D1" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 60.0, + "y": 385.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "D2" + }, + "name": "unnamedWire#46", + "path": [ + { + "x": 65.0, + "y": 395.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "D3" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 70.0, + "y": 405.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "ram2#0", + "pinName": "D4" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 75.0, + "y": 415.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "D1" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y01" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "D2" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "D3" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "ram2#1", + "pinName": "D4" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "D1" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "D2" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "D3" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y10" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "ram2#2", + "pinName": "D4" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#61", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#62", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "D1" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "D2" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "D3" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "ram2#3", + "pinName": "D4" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#69", + "path": [ + { + "x": 60.0, + "y": 950.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#1", + "pinName": "Y11" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#70", + "path": [ + { + "x": 65.0, + "y": 1050.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 70.0, + "y": 1150.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 75.0, + "y": 1250.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y00" + }, + "pin2": { + "compName": "and41#2", + "pinName": "B" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 135.0, + "y": 50.0 + }, + { + "x": 135.0, + "y": 370.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y01" + }, + "pin2": { + "compName": "andor414#3", + "pinName": "B" + }, + "name": "unnamedWire#74", + "path": [ + { + "x": 130.0, + "y": 60.0 + }, + { + "x": 130.0, + "y": 520.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y10" + }, + "pin2": { + "compName": "andor414#4", + "pinName": "B" + }, + "name": "unnamedWire#75", + "path": [ + { + "x": 125.0, + "y": 70.0 + }, + { + "x": 125.0, + "y": 670.0 + } + ] + }, + { + "pin1": { + "compName": "demux2#0", + "pinName": "Y11" + }, + "pin2": { + "compName": "andor414#5", + "pinName": "B" + }, + "name": "unnamedWire#76", + "path": [ + { + "x": 120.0, + "y": 80.0 + }, + { + "x": 120.0, + "y": 820.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "and41#1", + "pinName": "B" + }, + "name": "unnamedWire#77", + "path": [ + { + "x": 230.0, + "y": 420.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "B" + }, + "name": "unnamedWire#78", + "path": [ + { + "x": 225.0, + "y": 570.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "B" + }, + "name": "unnamedWire#79", + "path": [ + { + "x": 220.0, + "y": 720.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A1" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "B" + }, + "name": "unnamedWire#80", + "path": [ + { + "x": 215.0, + "y": 870.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QB1" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A1" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 140.0, + "y": 375.0 + }, + { + "x": 140.0, + "y": 380.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QB2" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A2" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 140.0, + "y": 385.0 + }, + { + "x": 140.0, + "y": 390.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QB3" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A3" + }, + "name": "unnamedWire#83", + "path": [ + { + "x": 140.0, + "y": 395.0 + }, + { + "x": 140.0, + "y": 400.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QB4" + }, + "pin2": { + "compName": "and41#1", + "pinName": "A4" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 140.0, + "y": 405.0 + }, + { + "x": 140.0, + "y": 410.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QB1" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A1" + }, + "name": "unnamedWire#85", + "path": [ + { + "x": 140.0, + "y": 525.0 + }, + { + "x": 140.0, + "y": 530.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QB2" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A2" + }, + "name": "unnamedWire#86", + "path": [ + { + "x": 140.0, + "y": 535.0 + }, + { + "x": 140.0, + "y": 540.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QB3" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A3" + }, + "name": "unnamedWire#87", + "path": [ + { + "x": 140.0, + "y": 545.0 + }, + { + "x": 140.0, + "y": 550.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#1", + "pinName": "QB4" + }, + "pin2": { + "compName": "andor414#0", + "pinName": "A4" + }, + "name": "unnamedWire#88", + "path": [ + { + "x": 140.0, + "y": 555.0 + }, + { + "x": 140.0, + "y": 560.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QB1" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A1" + }, + "name": "unnamedWire#89", + "path": [ + { + "x": 140.0, + "y": 675.0 + }, + { + "x": 140.0, + "y": 680.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "and41#0", + "pinName": "A2" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QB2" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A2" + }, + "name": "unnamedWire#90", + "path": [ + { + "x": 140.0, + "y": 685.0 + }, + { + "x": 140.0, + "y": 690.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QB3" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A3" + }, + "name": "unnamedWire#91", + "path": [ + { + "x": 140.0, + "y": 695.0 + }, + { + "x": 140.0, + "y": 700.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#2", + "pinName": "QB4" + }, + "pin2": { + "compName": "andor414#1", + "pinName": "A4" + }, + "name": "unnamedWire#92", + "path": [ + { + "x": 140.0, + "y": 705.0 + }, + { + "x": 140.0, + "y": 710.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QB1" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A1" + }, + "name": "unnamedWire#93", + "path": [ + { + "x": 140.0, + "y": 825.0 + }, + { + "x": 140.0, + "y": 830.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QB2" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A2" + }, + "name": "unnamedWire#94", + "path": [ + { + "x": 140.0, + "y": 835.0 + }, + { + "x": 140.0, + "y": 840.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QB3" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A3" + }, + "name": "unnamedWire#95", + "path": [ + { + "x": 140.0, + "y": 845.0 + }, + { + "x": 140.0, + "y": 850.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#3", + "pinName": "QB4" + }, + "pin2": { + "compName": "andor414#2", + "pinName": "A4" + }, + "name": "unnamedWire#96", + "path": [ + { + "x": 140.0, + "y": 855.0 + }, + { + "x": 140.0, + "y": 860.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QA1" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A1" + }, + "name": "unnamedWire#97", + "path": [ + { + "x": 140.0, + "y": 335.0 + }, + { + "x": 140.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QA2" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A2" + }, + "name": "unnamedWire#98", + "path": [ + { + "x": 140.0, + "y": 345.0 + }, + { + "x": 140.0, + "y": 340.0 + } + ] + }, + { + "pin1": { + "compName": "ram2#0", + "pinName": "QA3" + }, + "pin2": { + "compName": "and41#2", + "pinName": "A3" + }, + "name": "unnamedWire#99", + "path": [ + { + "x": 140.0, + "y": 355.0 + }, + { + "x": 140.0, + "y": 350.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "ram4", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": { + "c00": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#0" + } + }, + "c11": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#3" + } + }, + "c10": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#2" + } + }, + "c01": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#1" + } + }, + "c1000": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#0", + "prefix": "c10" + } + }, + "c1011": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#3", + "prefix": "c10" + } + }, + "c1110": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#2", + "prefix": "c11" + } + }, + "c1001": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#1", + "prefix": "c10" + } + }, + "c1100": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#0", + "prefix": "c11" + } + }, + "c1111": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#3", + "prefix": "c11" + } + }, + "c0000": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#0", + "prefix": "c00" + } + }, + "c0011": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#3", + "prefix": "c00" + } + }, + "c0110": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#2", + "prefix": "c01" + } + }, + "c0010": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#2", + "prefix": "c00" + } + }, + "c1010": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#2", + "prefix": "c10" + } + }, + "c0101": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#1", + "prefix": "c01" + } + }, + "c0001": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#1", + "prefix": "c00" + } + }, + "c0100": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#0", + "prefix": "c01" + } + }, + "c0111": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#3", + "prefix": "c01" + } + }, + "c1101": { + "id": "delegating", + "params": { + "delegateTarget": "ram2#1", + "prefix": "c11" + } + } + }, + "atomicHighLevelStates": { + "q": { + "id": "bitVectorSplitting", + "params": { + "vectorPartTargets": [ + "c11.q", + "c10.q", + "c01.q", + "c00.q" + ], + "vectorPartLengthes": [ + 16, + 16, + 16, + 16 + ] + } + } + } + }, + "version": "0.1.5" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel1.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel1.json new file mode 100644 index 00000000..d53f4c8e --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel1.json @@ -0,0 +1,214 @@ +{ + "width": 35.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "I2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "S2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 35.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 35.0, + "y": 55.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 60.0, + "y": 40.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 12.5 + }, + { + "x": 25.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 15.0, + "y": 37.5 + }, + { + "x": 15.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#10" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 25.0, + "y": 62.5 + }, + { + "x": 25.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I2" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 87.5 + }, + { + "x": 15.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#8" + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#9" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "sel1", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel2_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel2_4.json new file mode 100644 index 00000000..22f3ce64 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel2_4.json @@ -0,0 +1,863 @@ +{ + "width": 35.0, + "height": 100.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "B2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "B3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 95.0 + }, + "name": "B4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "SA", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "SB", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 20.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 20.0, + "y": 52.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#10", + "pos": { + "x": 65.0, + "y": 52.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#11", + "pos": { + "x": 65.0, + "y": 77.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 20.0, + "y": 102.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 20.0, + "y": 152.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 20.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 20.0, + "y": 77.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 20.0, + "y": 127.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 20.0, + "y": 177.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 65.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#9", + "pos": { + "x": 65.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 6.5, + "y": 16.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 6.5, + "y": 66.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 6.5, + "y": 116.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 4.0, + "y": 41.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 4.0, + "y": 91.5 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 4.0, + "y": 141.5 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 15.0, + "y": 62.5 + }, + { + "x": 15.0, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 17.5, + "y": 87.5 + }, + { + "x": 17.5, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#10" + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#11" + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#12" + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#13" + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#14" + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 7.5, + "y": 167.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#16" + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#17" + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#18" + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#19" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 17.5, + "y": 112.5 + }, + { + "x": 17.5, + "y": 107.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#20" + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 5.0, + "y": 192.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 42.5, + "y": 12.5 + }, + { + "x": 42.5, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "B" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 45.0, + "y": 37.5 + }, + { + "x": 45.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "A" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 47.5, + "y": 62.5 + }, + { + "x": 47.5, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 50.0, + "y": 87.5 + }, + { + "x": 50.0, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 52.5, + "y": 112.5 + }, + { + "x": 52.5, + "y": 57.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "B" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 55.0, + "y": 137.5 + }, + { + "x": 55.0, + "y": 67.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "A" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 57.5, + "y": 162.5 + }, + { + "x": 57.5, + "y": 82.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "B" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 60.0, + "y": 187.5 + }, + { + "x": 60.0, + "y": 92.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 17.5, + "y": 137.5 + }, + { + "x": 17.5, + "y": 157.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#11", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 10.0, + "y": 162.5 + }, + { + "x": 10.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B2" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 12.5, + "y": 187.5 + }, + { + "x": 12.5, + "y": 82.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B3" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 15.0, + "y": 212.5 + }, + { + "x": 15.0, + "y": 132.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B4" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 10.0, + "y": 237.5 + }, + { + "x": 10.0, + "y": 182.5 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "SA" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#8" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "SB" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#9" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "sel2_4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel3_4.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel3_4.json new file mode 100644 index 00000000..ad1b3977 --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/sel3_4.json @@ -0,0 +1,937 @@ +{ + "width": 35.0, + "height": 150.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "A1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "A2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "A3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 65.0 + }, + "name": "A4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 75.0 + }, + "name": "B1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 85.0 + }, + "name": "B2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 95.0 + }, + "name": "B3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 105.0 + }, + "name": "B4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 115.0 + }, + "name": "C1", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 125.0 + }, + "name": "C2", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 135.0 + }, + "name": "C3", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 145.0 + }, + "name": "C4", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "SA", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "SB", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "SC", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y1", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Y2", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Y3", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Y4", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 50.0, + "y": 570.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 50.0, + "y": 620.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 50.0, + "y": 670.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 50.0, + "y": 720.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 152.5, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 152.5, + "y": 65.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 152.5, + "y": 115.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 152.5, + "y": 165.0 + }, + "params": 1 + }, + { + "id": "not4", + "name": "not4#0", + "pos": { + "x": 75.0, + "y": 250.0 + } + }, + { + "id": "sel2_4", + "name": "sel2_4#0", + "pos": { + "x": 35.0, + "y": 250.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 29.0, + "y": 584.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 29.0, + "y": 634.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 29.0, + "y": 684.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "SA" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "SA" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 25.0 + }, + { + "x": 25.0, + "y": 255.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "SB" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "SB" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 20.0, + "y": 75.0 + }, + { + "x": 20.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "sel2_4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "not4#0", + "pinName": "A1" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "sel2_4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "not4#0", + "pinName": "A2" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "sel2_4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "not4#0", + "pinName": "A3" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "sel2_4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "not4#0", + "pinName": "A4" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "SC" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 30.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 30.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 30.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A1" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A1" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 15.0, + "y": 175.0 + }, + { + "x": 15.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 30.0, + "y": 735.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C1" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C2" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C3" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C4" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "not4#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 115.0, + "y": 255.0 + }, + { + "x": 115.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "not4#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 120.0, + "y": 265.0 + }, + { + "x": 120.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "not4#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 125.0, + "y": 275.0 + }, + { + "x": 125.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "not4#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 130.0, + "y": 285.0 + }, + { + "x": 130.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 135.0, + "y": 580.0 + }, + { + "x": 135.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A2" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A2" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 10.0, + "y": 225.0 + }, + { + "x": 10.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 140.0, + "y": 630.0 + }, + { + "x": 140.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 145.0, + "y": 680.0 + }, + { + "x": 145.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 150.0, + "y": 730.0 + }, + { + "x": 150.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y1" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y2" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y3" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y4" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A3" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A3" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 5.0, + "y": 275.0 + }, + { + "x": 5.0, + "y": 295.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A4" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "A4" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 5.0, + "y": 325.0 + }, + { + "x": 5.0, + "y": 305.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B1" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B1" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 10.0, + "y": 375.0 + }, + { + "x": 10.0, + "y": 315.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B2" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B2" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 425.0 + }, + { + "x": 15.0, + "y": 325.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B3" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B3" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 20.0, + "y": 475.0 + }, + { + "x": 20.0, + "y": 335.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B4" + }, + "pin2": { + "compName": "sel2_4#0", + "pinName": "B4" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 25.0, + "y": 525.0 + }, + { + "x": 25.0, + "y": 345.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "sel3_4", + "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 diff --git a/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/xor.json b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/xor.json new file mode 100644 index 00000000..2eff80ef --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/xor.json @@ -0,0 +1,285 @@ +{ + "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" + } + ], + "innerScale": 0.4, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 7.5, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 35.0, + "y": 2.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 35.0, + "y": 27.5 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 62.5, + "y": 15.0 + }, + "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": 29.0, + "y": 24.0 + }, + "params": 1 + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#10" + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#11" + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 5.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 5.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#4" + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 30.0, + "y": 17.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 30.0, + "y": 32.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 5.0, + "y": 7.5 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 5.0, + "y": 42.5 + } + ] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#9" + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "xor", + "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 diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/Am2900Loader.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/Am2900Loader.java index 2b483d51..172c4b1e 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/Am2900Loader.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/Am2900Loader.java @@ -6,7 +6,7 @@ import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import net.mograsim.logic.model.serializing.ClassLoaderBasedResourceLoader; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; public class Am2900Loader implements BundleActivator { @@ -29,8 +29,8 @@ public class Am2900Loader implements BundleActivator if (activated.getAndSet(true)) return; ClassLoaderBasedResourceLoader resourceLoader = ClassLoaderBasedResourceLoader.create(Am2900Loader.class.getClassLoader()); - IndirectGUIComponentCreator.registerResourceLoader(resourceLoader, "Am2900Loader"); - IndirectGUIComponentCreator.loadStandardComponentIDs(Am2900Loader.class.getResourceAsStream("standardComponentIDMapping.json")); + IndirectModelComponentCreator.registerResourceLoader(resourceLoader, "Am2900Loader"); + IndirectModelComponentCreator.loadStandardComponentIDs(Am2900Loader.class.getResourceAsStream("standardComponentIDMapping.json")); // System.out.println("SETUP DONE"); // TODO: Debug } } diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff12.java deleted file mode 100644 index f412554e..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff12.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.mograsim.logic.model.am2900.components; - -import static net.mograsim.logic.core.types.Bit.ONE; -import static net.mograsim.logic.core.types.Bit.U; -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.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIdff12 extends SimpleRectangularHardcodedGUIComponent -{ - public GUIdff12(ViewModelModifiable model, String name) - { - super(model, "GUIdff12", name, "D flip flop\n12 bits"); - setSize(40, 20); - addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 20), Position.TOP); - addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 10), Position.RIGHT); - addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 0), Position.BOTTOM); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit[] QC = (Bit[]) lastState; - if (QC == null) - { - QC = new Bit[13]; - Arrays.fill(QC, U); - } - - Bit CVal = readEnds.get("C").getValue(); - - if (QC[12] == ZERO && CVal == ONE) - System.arraycopy(readEnds.get("D").getValues().getBits(), 0, QC, 0, 12); - - readWriteEnds.get("Y").feedSignals(Arrays.copyOfRange(QC, 0, 12)); - QC[12] = CVal; - - return QC; - } - - @Override - protected Object getHighLevelState(Object state, String stateID) - { - switch (stateID) - { - case "q": - return BitVector.of(Arrays.copyOfRange((Bit[]) state, 0, 12)); - default: - return super.getHighLevelState(state, stateID); - } - } - - @Override - protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) - { - switch (stateID) - { - case "q": - BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; - if (newHighLevelStateCasted.length() != 12) - throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length()); - System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 0, 12); - return lastState; - default: - return super.setHighLevelState(lastState, stateID, newHighLevelState); - } - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIdff12.class.getCanonicalName(), (m, p, n) -> new GUIdff12(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff4_finewe.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff4_finewe.java deleted file mode 100644 index 8781f1ac..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff4_finewe.java +++ /dev/null @@ -1,107 +0,0 @@ -package net.mograsim.logic.model.am2900.components; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIdff4_finewe extends SimpleRectangularHardcodedGUIComponent -{ - public GUIdff4_finewe(ViewModelModifiable model, String name) - { - super(model, "GUIdff4_finewe", name, "D flip flop\n4 bits"); - setSize(35, 90); - addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); - addPin(new Pin(this, "_WE1", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); - addPin(new Pin(this, "_WE2", 1, PinUsage.INPUT, 0, 25), Position.RIGHT); - addPin(new Pin(this, "_WE3", 1, PinUsage.INPUT, 0, 35), Position.RIGHT); - addPin(new Pin(this, "_WE4", 1, PinUsage.INPUT, 0, 45), Position.RIGHT); - addPin(new Pin(this, "D1", 1, PinUsage.INPUT, 0, 55), Position.RIGHT); - addPin(new Pin(this, "D2", 1, PinUsage.INPUT, 0, 65), Position.RIGHT); - addPin(new Pin(this, "D3", 1, PinUsage.INPUT, 0, 75), Position.RIGHT); - addPin(new Pin(this, "D4", 1, PinUsage.INPUT, 0, 85), Position.RIGHT); - addPin(new Pin(this, "Q1", 1, PinUsage.OUTPUT, 35, 5), Position.LEFT); - addPin(new Pin(this, "Q2", 1, PinUsage.OUTPUT, 35, 15), Position.LEFT); - addPin(new Pin(this, "Q3", 1, PinUsage.OUTPUT, 35, 25), Position.LEFT); - addPin(new Pin(this, "Q4", 1, PinUsage.OUTPUT, 35, 35), Position.LEFT); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit[] QC = (Bit[]) lastState; - if (QC == null) - QC = new Bit[] { U, U, U, U, U }; - - Bit CVal = readEnds.get("C").getValue(); - - if (QC[0] == ZERO && CVal == ONE) - for (int i = 1; i < 5; i++) - { - Bit WEiVal = readEnds.get("_WE" + i).getValue(); - if (WEiVal == X || WEiVal == Z) - QC[i] = X; - else if (WEiVal == U) - QC[i] = U; - else if (WEiVal == ZERO) - QC[i] = readEnds.get("D" + i).getValue(); - } - - QC[0] = CVal; - - readWriteEnds.get("Q1").feedSignals(QC[1]); - readWriteEnds.get("Q2").feedSignals(QC[2]); - readWriteEnds.get("Q3").feedSignals(QC[3]); - readWriteEnds.get("Q4").feedSignals(QC[4]); - - return QC; - } - - @Override - protected Object getHighLevelState(Object state, String stateID) - { - switch (stateID) - { - case "q": - return BitVector.of(Arrays.copyOfRange((Bit[]) state, 1, 5)); - default: - return super.getHighLevelState(state, stateID); - } - } - - @Override - protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) - { - switch (stateID) - { - case "q": - BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; - if (newHighLevelStateCasted.length() != 4) - throw new IllegalArgumentException("Expected BitVector of length 4, not " + newHighLevelStateCasted.length()); - System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 1, 4); - return lastState; - default: - return super.setHighLevelState(lastState, stateID, newHighLevelState); - } - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIdff4_finewe.class.getCanonicalName(), (m, p, n) -> new GUIdff4_finewe(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java deleted file mode 100644 index ca740768..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java +++ /dev/null @@ -1,65 +0,0 @@ -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.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIinc12 extends SimpleRectangularHardcodedGUIComponent -{ - public GUIinc12(ViewModelModifiable model, String name) - { - super(model, "GUIinc12", name, "Incrementer"); - setSize(40, 20); - addPin(new Pin(this, "A", 12, PinUsage.INPUT, 20, 20), Position.TOP); - addPin(new Pin(this, "CI", 1, PinUsage.INPUT, 40, 10), Position.LEFT); - addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 0), Position.BOTTOM); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit[] ABits = readEnds.get("A").getValues().getBits(); - Bit CIVal = readEnds.get("CI").getValue(); - Bit[] YBits = new Bit[12]; - 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 GUIAM2910RegCntr. - for (int i = 11; i >= 0; i--) - { - Bit a = ABits[i]; - YBits[i] = a.xor(carry); - carry = a.and(carry); - } - } - readWriteEnds.get("Y").feedSignals(YBits); - return null; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIinc12.class.getCanonicalName(), (m, p, n) -> new GUIinc12(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUInor12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUInor12.java deleted file mode 100644 index bb36801d..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUInor12.java +++ /dev/null @@ -1,59 +0,0 @@ -package net.mograsim.logic.model.am2900.components; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.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.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUInor12 extends SimpleRectangularHardcodedGUIComponent -{ - public GUInor12(ViewModelModifiable model, String name) - { - super(model, "GUInor12", name, "=0"); - setSize(35, 20); - addPin(new Pin(this, "D", 12, PinUsage.INPUT, 0, 10), Position.RIGHT); - addPin(new Pin(this, "Y", 1, PinUsage.OUTPUT, 35, 10), Position.LEFT); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - readWriteEnds.get("Y").feedSignals(getResult(readEnds.get("D").getValues().getBits())); - return null; - } - - private static Bit getResult(Bit[] DValArr) - { - for (int i = 0; i < 12; i++) - if (DValArr[i] == X) - return X; - for (int i = 0; i < 12; i++) - if (DValArr[i] == U) - return U; - for (int i = 0; i < 12; i++) - if (DValArr[i] == ONE) - return ZERO; - for (int i = 0; i < 12; i++) - if (DValArr[i] == Z) - return X; - return ONE; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUInor12.class.getCanonicalName(), (m, p, n) -> new GUInor12(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIram5_12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIram5_12.java deleted file mode 100644 index 4a13c471..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIram5_12.java +++ /dev/null @@ -1,119 +0,0 @@ -package net.mograsim.logic.model.am2900.components; - -import static net.mograsim.logic.core.types.Bit.ONE; -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 java.util.regex.Matcher; -import java.util.regex.Pattern; - -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIram5_12 extends SimpleRectangularHardcodedGUIComponent -{ - public GUIram5_12(ViewModelModifiable model, String name) - { - super(model, "GUIram5_12", name, "RAM\n5 x 12 Bit"); - setSize(40, 40); - addPin(new Pin(this, "A", 3, PinUsage.INPUT, 10, 0), Position.BOTTOM); - addPin(new Pin(this, "B", 3, PinUsage.INPUT, 30, 0), Position.BOTTOM); - addPin(new Pin(this, "WE", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); - addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); - addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 0, 30), Position.RIGHT); - addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 40), Position.TOP); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - BitVector[] memC = (BitVector[]) lastState; - if (memC == null) - { - memC = new BitVector[6]; - Arrays.fill(memC, 0, 5, BitVector.of(U, 12)); - memC[5] = BitVector.of(U); - } - BitVector CVal = readEnds.get("C").getValues(); - BitVector oldC = memC[5]; - // TODO is the timing right? - if (oldC.getLSBit(0) == ZERO && CVal.getLSBit(0) == ONE && readEnds.get("WE").getValue() == ONE) - { - int BInt = getAsInt(readEnds.get("B").getValues()); - if (BInt == -1 || BInt > 4) - Arrays.fill(memC, BitVector.of(X, 12)); - else if (BInt == -2) - Arrays.fill(memC, BitVector.of(U, 12)); - else - memC[BInt] = readEnds.get("D").getValues(); - } - int AInt = getAsInt(readEnds.get("A").getValues()); - BitVector YVal = AInt == -1 || AInt > 4 ? BitVector.of(X, 12) : AInt == -2 ? BitVector.of(U, 12) : memC[AInt]; - readWriteEnds.get("Y").feedSignals(YVal); - memC[5] = CVal; - return memC; - } - - /** - * -1 means X, -2 means U - */ - private static int getAsInt(BitVector vect) - { - Bit[] bits = vect.getBits(); - for (int i = 0; i < 3; i++) - if (bits[i] == X) - return -1; - for (int i = 0; i < 3; i++) - if (bits[i] == U) - return -2; - for (int i = 0; i < 3; i++) - if (bits[i] == Z) - return -1; - return (bits[0] == ONE ? 4 : 0) + (bits[1] == ONE ? 2 : 0) + (bits[2] == ONE ? 1 : 0); - } - - Pattern stateIDPattern = Pattern.compile("c(0[10][10]|100)"); - - @Override - protected Object getHighLevelState(Object state, String stateID) - { - Matcher m = stateIDPattern.matcher(stateID); - if (m.matches()) - return ((BitVector[]) state)[Integer.parseInt(m.group(1), 2)]; - return super.getHighLevelState(state, stateID); - } - - @Override - protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) - { - Matcher m = stateIDPattern.matcher(stateID); - if (m.matches()) - { - int addr = Integer.parseInt(m.group(1), 2); - BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; - if (newHighLevelStateCasted.length() != 12) - throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length()); - BitVector[] memC = (BitVector[]) lastState; - memC[addr] = newHighLevelStateCasted; - return memC; - } - return super.setHighLevelState(lastState, stateID, newHighLevelState); - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIram5_12.class.getCanonicalName(), (m, p, n) -> new GUIram5_12(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIsel4_12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIsel4_12.java deleted file mode 100644 index 3b88d72a..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIsel4_12.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.mograsim.logic.model.am2900.components; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.Map; - -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIsel4_12 extends SimpleRectangularHardcodedGUIComponent -{ - public GUIsel4_12(ViewModelModifiable model, String name) - { - super(model, "GUIsel4_12", name, "4-way SEL\n12 bit"); - setSize(80, 40); - addPin(new Pin(this, "SA", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); - addPin(new Pin(this, "SB", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); - addPin(new Pin(this, "SC", 1, PinUsage.INPUT, 0, 25), Position.RIGHT); - addPin(new Pin(this, "SD", 1, PinUsage.INPUT, 0, 35), Position.RIGHT); - addPin(new Pin(this, "A", 12, PinUsage.INPUT, 10, 0), Position.BOTTOM); - addPin(new Pin(this, "B", 12, PinUsage.INPUT, 30, 0), Position.BOTTOM); - addPin(new Pin(this, "C", 12, PinUsage.INPUT, 50, 0), Position.BOTTOM); - addPin(new Pin(this, "D", 12, PinUsage.INPUT, 70, 0), Position.BOTTOM); - addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 40, 40), Position.TOP); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit SAVal = readEnds.get("SA").getValue(); - Bit SBVal = readEnds.get("SB").getValue(); - Bit SCVal = readEnds.get("SC").getValue(); - Bit SDVal = readEnds.get("SD").getValue(); - BitVector YVal; - if (SAVal == X || SBVal == X || SCVal == X || SDVal == X) - YVal = BitVector.of(X, 12); - else if (SAVal == U || SBVal == U || SCVal == U || SDVal == U) - YVal = BitVector.of(U, 12); - else if (SAVal == Z || SBVal == Z || SCVal == Z || SDVal == Z) - YVal = BitVector.of(X, 12); - else - { - YVal = null; - if (SAVal == ONE) - YVal = readEnds.get("A").getValues(); - if (SBVal == ONE) - if (YVal != null) - YVal = BitVector.of(X, 12); - else - YVal = readEnds.get("B").getValues(); - if (SCVal == ONE) - if (YVal != null) - YVal = BitVector.of(X, 12); - else - YVal = readEnds.get("C").getValues(); - if (SDVal == ONE) - if (YVal != null) - YVal = BitVector.of(X, 12); - else - YVal = readEnds.get("D").getValues(); - if (YVal == null) - YVal = BitVector.of(ZERO, 12); - } - - readWriteEnds.get("Y").feedSignals(YVal); - return null; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIsel4_12.class.getCanonicalName(), (m, p, n) -> new GUIsel4_12(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff12.java new file mode 100644 index 00000000..954d5c0c --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff12.java @@ -0,0 +1,85 @@ +package net.mograsim.logic.model.am2900.components; + +import static net.mograsim.logic.core.types.Bit.ONE; +import static net.mograsim.logic.core.types.Bit.U; +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.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class Modeldff12 extends SimpleRectangularHardcodedModelComponent +{ + public Modeldff12(ViewModelModifiable model, String name) + { + super(model, "dff12", name, "D flip flop\n12 bits"); + setSize(40, 20); + addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 20), Position.TOP); + addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 10), Position.RIGHT); + addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 0), Position.BOTTOM); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit[] QC = (Bit[]) lastState; + if (QC == null) + { + QC = new Bit[13]; + Arrays.fill(QC, U); + } + + Bit CVal = readEnds.get("C").getValue(); + + if (QC[12] == ZERO && CVal == ONE) + System.arraycopy(readEnds.get("D").getValues().getBits(), 0, QC, 0, 12); + + readWriteEnds.get("Y").feedSignals(Arrays.copyOfRange(QC, 0, 12)); + QC[12] = CVal; + + return QC; + } + + @Override + protected Object getHighLevelState(Object state, String stateID) + { + switch (stateID) + { + case "q": + return BitVector.of(Arrays.copyOfRange((Bit[]) state, 0, 12)); + default: + return super.getHighLevelState(state, stateID); + } + } + + @Override + protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) + { + switch (stateID) + { + case "q": + BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; + if (newHighLevelStateCasted.length() != 12) + throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length()); + System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 0, 12); + return lastState; + default: + return super.setHighLevelState(lastState, stateID, newHighLevelState); + } + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(Modeldff12.class.getCanonicalName(), (m, p, n) -> new Modeldff12(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff4_finewe.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff4_finewe.java new file mode 100644 index 00000000..eb496660 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff4_finewe.java @@ -0,0 +1,108 @@ +package net.mograsim.logic.model.am2900.components; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class Modeldff4_finewe extends SimpleRectangularHardcodedModelComponent +{ + public Modeldff4_finewe(ViewModelModifiable model, String name) + { + super(model, "dff4_finewe", name, "D flip flop\n4 bits"); + setSize(35, 90); + addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); + addPin(new Pin(this, "_WE1", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); + addPin(new Pin(this, "_WE2", 1, PinUsage.INPUT, 0, 25), Position.RIGHT); + addPin(new Pin(this, "_WE3", 1, PinUsage.INPUT, 0, 35), Position.RIGHT); + addPin(new Pin(this, "_WE4", 1, PinUsage.INPUT, 0, 45), Position.RIGHT); + addPin(new Pin(this, "D1", 1, PinUsage.INPUT, 0, 55), Position.RIGHT); + addPin(new Pin(this, "D2", 1, PinUsage.INPUT, 0, 65), Position.RIGHT); + addPin(new Pin(this, "D3", 1, PinUsage.INPUT, 0, 75), Position.RIGHT); + addPin(new Pin(this, "D4", 1, PinUsage.INPUT, 0, 85), Position.RIGHT); + addPin(new Pin(this, "Q1", 1, PinUsage.OUTPUT, 35, 5), Position.LEFT); + addPin(new Pin(this, "Q2", 1, PinUsage.OUTPUT, 35, 15), Position.LEFT); + addPin(new Pin(this, "Q3", 1, PinUsage.OUTPUT, 35, 25), Position.LEFT); + addPin(new Pin(this, "Q4", 1, PinUsage.OUTPUT, 35, 35), Position.LEFT); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit[] QC = (Bit[]) lastState; + if (QC == null) + QC = new Bit[] { U, U, U, U, U }; + + Bit CVal = readEnds.get("C").getValue(); + + if (QC[0] == ZERO && CVal == ONE) + for (int i = 1; i < 5; i++) + { + Bit WEiVal = readEnds.get("_WE" + i).getValue(); + if (WEiVal == X || WEiVal == Z) + QC[i] = X; + else if (WEiVal == U) + QC[i] = U; + else if (WEiVal == ZERO) + QC[i] = readEnds.get("D" + i).getValue(); + } + + QC[0] = CVal; + + readWriteEnds.get("Q1").feedSignals(QC[1]); + readWriteEnds.get("Q2").feedSignals(QC[2]); + readWriteEnds.get("Q3").feedSignals(QC[3]); + readWriteEnds.get("Q4").feedSignals(QC[4]); + + return QC; + } + + @Override + protected Object getHighLevelState(Object state, String stateID) + { + switch (stateID) + { + case "q": + return BitVector.of(Arrays.copyOfRange((Bit[]) state, 1, 5)); + default: + return super.getHighLevelState(state, stateID); + } + } + + @Override + protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) + { + switch (stateID) + { + case "q": + BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; + if (newHighLevelStateCasted.length() != 4) + throw new IllegalArgumentException("Expected BitVector of length 4, not " + newHighLevelStateCasted.length()); + System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 1, 4); + return lastState; + default: + return super.setHighLevelState(lastState, stateID, newHighLevelState); + } + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(Modeldff4_finewe.class.getCanonicalName(), + (m, p, n) -> new Modeldff4_finewe(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelinc12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelinc12.java new file mode 100644 index 00000000..0ba3404e --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelinc12.java @@ -0,0 +1,65 @@ +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.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class Modelinc12 extends SimpleRectangularHardcodedModelComponent +{ + public Modelinc12(ViewModelModifiable model, String name) + { + super(model, "inc12", name, "Incrementer"); + setSize(40, 20); + addPin(new Pin(this, "A", 12, PinUsage.INPUT, 20, 20), Position.TOP); + addPin(new Pin(this, "CI", 1, PinUsage.INPUT, 40, 10), Position.LEFT); + addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 0), Position.BOTTOM); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit[] ABits = readEnds.get("A").getValues().getBits(); + Bit CIVal = readEnds.get("CI").getValue(); + Bit[] YBits = new Bit[12]; + 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 = 11; i >= 0; i--) + { + Bit a = ABits[i]; + YBits[i] = a.xor(carry); + carry = a.and(carry); + } + } + readWriteEnds.get("Y").feedSignals(YBits); + return null; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(Modelinc12.class.getCanonicalName(), (m, p, n) -> new Modelinc12(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelnor12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelnor12.java new file mode 100644 index 00000000..9ff945d8 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelnor12.java @@ -0,0 +1,59 @@ +package net.mograsim.logic.model.am2900.components; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.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.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class Modelnor12 extends SimpleRectangularHardcodedModelComponent +{ + public Modelnor12(ViewModelModifiable model, String name) + { + super(model, "nor12", name, "=0"); + setSize(35, 20); + addPin(new Pin(this, "D", 12, PinUsage.INPUT, 0, 10), Position.RIGHT); + addPin(new Pin(this, "Y", 1, PinUsage.OUTPUT, 35, 10), Position.LEFT); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + readWriteEnds.get("Y").feedSignals(getResult(readEnds.get("D").getValues().getBits())); + return null; + } + + private static Bit getResult(Bit[] DValArr) + { + for (int i = 0; i < 12; i++) + if (DValArr[i] == X) + return X; + for (int i = 0; i < 12; i++) + if (DValArr[i] == U) + return U; + for (int i = 0; i < 12; i++) + if (DValArr[i] == ONE) + return ZERO; + for (int i = 0; i < 12; i++) + if (DValArr[i] == Z) + return X; + return ONE; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(Modelnor12.class.getCanonicalName(), (m, p, n) -> new Modelnor12(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelram5_12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelram5_12.java new file mode 100644 index 00000000..6658f816 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelram5_12.java @@ -0,0 +1,119 @@ +package net.mograsim.logic.model.am2900.components; + +import static net.mograsim.logic.core.types.Bit.ONE; +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 java.util.regex.Matcher; +import java.util.regex.Pattern; + +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class Modelram5_12 extends SimpleRectangularHardcodedModelComponent +{ + public Modelram5_12(ViewModelModifiable model, String name) + { + super(model, "ram5_12", name, "RAM\n5 x 12 Bit"); + setSize(40, 40); + addPin(new Pin(this, "A", 3, PinUsage.INPUT, 10, 0), Position.BOTTOM); + addPin(new Pin(this, "B", 3, PinUsage.INPUT, 30, 0), Position.BOTTOM); + addPin(new Pin(this, "WE", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); + addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); + addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 0, 30), Position.RIGHT); + addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 40), Position.TOP); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + BitVector[] memC = (BitVector[]) lastState; + if (memC == null) + { + memC = new BitVector[6]; + Arrays.fill(memC, 0, 5, BitVector.of(U, 12)); + memC[5] = BitVector.of(U); + } + BitVector CVal = readEnds.get("C").getValues(); + BitVector oldC = memC[5]; + // TODO is the timing right? + if (oldC.getLSBit(0) == ZERO && CVal.getLSBit(0) == ONE && readEnds.get("WE").getValue() == ONE) + { + int BInt = getAsInt(readEnds.get("B").getValues()); + if (BInt == -1 || BInt > 4) + Arrays.fill(memC, BitVector.of(X, 12)); + else if (BInt == -2) + Arrays.fill(memC, BitVector.of(U, 12)); + else + memC[BInt] = readEnds.get("D").getValues(); + } + int AInt = getAsInt(readEnds.get("A").getValues()); + BitVector YVal = AInt == -1 || AInt > 4 ? BitVector.of(X, 12) : AInt == -2 ? BitVector.of(U, 12) : memC[AInt]; + readWriteEnds.get("Y").feedSignals(YVal); + memC[5] = CVal; + return memC; + } + + /** + * -1 means X, -2 means U + */ + private static int getAsInt(BitVector vect) + { + Bit[] bits = vect.getBits(); + for (int i = 0; i < 3; i++) + if (bits[i] == X) + return -1; + for (int i = 0; i < 3; i++) + if (bits[i] == U) + return -2; + for (int i = 0; i < 3; i++) + if (bits[i] == Z) + return -1; + return (bits[0] == ONE ? 4 : 0) + (bits[1] == ONE ? 2 : 0) + (bits[2] == ONE ? 1 : 0); + } + + Pattern stateIDPattern = Pattern.compile("c(0[10][10]|100)"); + + @Override + protected Object getHighLevelState(Object state, String stateID) + { + Matcher m = stateIDPattern.matcher(stateID); + if (m.matches()) + return ((BitVector[]) state)[Integer.parseInt(m.group(1), 2)]; + return super.getHighLevelState(state, stateID); + } + + @Override + protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) + { + Matcher m = stateIDPattern.matcher(stateID); + if (m.matches()) + { + int addr = Integer.parseInt(m.group(1), 2); + BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; + if (newHighLevelStateCasted.length() != 12) + throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length()); + BitVector[] memC = (BitVector[]) lastState; + memC[addr] = newHighLevelStateCasted; + return memC; + } + return super.setHighLevelState(lastState, stateID, newHighLevelState); + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(Modelram5_12.class.getCanonicalName(), (m, p, n) -> new Modelram5_12(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelsel4_12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelsel4_12.java new file mode 100644 index 00000000..3d26c191 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelsel4_12.java @@ -0,0 +1,85 @@ +package net.mograsim.logic.model.am2900.components; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.Map; + +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class Modelsel4_12 extends SimpleRectangularHardcodedModelComponent +{ + public Modelsel4_12(ViewModelModifiable model, String name) + { + super(model, "sel4_12", name, "4-way SEL\n12 bit"); + setSize(80, 40); + addPin(new Pin(this, "SA", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); + addPin(new Pin(this, "SB", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); + addPin(new Pin(this, "SC", 1, PinUsage.INPUT, 0, 25), Position.RIGHT); + addPin(new Pin(this, "SD", 1, PinUsage.INPUT, 0, 35), Position.RIGHT); + addPin(new Pin(this, "A", 12, PinUsage.INPUT, 10, 0), Position.BOTTOM); + addPin(new Pin(this, "B", 12, PinUsage.INPUT, 30, 0), Position.BOTTOM); + addPin(new Pin(this, "C", 12, PinUsage.INPUT, 50, 0), Position.BOTTOM); + addPin(new Pin(this, "D", 12, PinUsage.INPUT, 70, 0), Position.BOTTOM); + addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 40, 40), Position.TOP); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit SAVal = readEnds.get("SA").getValue(); + Bit SBVal = readEnds.get("SB").getValue(); + Bit SCVal = readEnds.get("SC").getValue(); + Bit SDVal = readEnds.get("SD").getValue(); + BitVector YVal; + if (SAVal == X || SBVal == X || SCVal == X || SDVal == X) + YVal = BitVector.of(X, 12); + else if (SAVal == U || SBVal == U || SCVal == U || SDVal == U) + YVal = BitVector.of(U, 12); + else if (SAVal == Z || SBVal == Z || SCVal == Z || SDVal == Z) + YVal = BitVector.of(X, 12); + else + { + YVal = null; + if (SAVal == ONE) + YVal = readEnds.get("A").getValues(); + if (SBVal == ONE) + if (YVal != null) + YVal = BitVector.of(X, 12); + else + YVal = readEnds.get("B").getValues(); + if (SCVal == ONE) + if (YVal != null) + YVal = BitVector.of(X, 12); + else + YVal = readEnds.get("C").getValues(); + if (SDVal == ONE) + if (YVal != null) + YVal = BitVector.of(X, 12); + else + YVal = readEnds.get("D").getValues(); + if (YVal == null) + YVal = BitVector.of(ZERO, 12); + } + + readWriteEnds.get("Y").feedSignals(YVal); + return null; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(Modelsel4_12.class.getCanonicalName(), (m, p, n) -> new Modelsel4_12(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java deleted file mode 100644 index 4fff66bb..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java +++ /dev/null @@ -1,284 +0,0 @@ -package net.mograsim.logic.model.am2900.components.am2904; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.ZERO; - -import java.util.Map; - -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComponent -{ - public GUIAm2904RegCTInstrDecode(ViewModelModifiable model, String name) - { - super(model, "GUIAm2904RegCTInstrDecode", name, "Instruction\ndecode"); - setSize(80, 80); - addPin(new Pin(this, "I12-11", 2, PinUsage.INPUT, 0, 30), Position.RIGHT); - addPin(new Pin(this, "I5-0", 6, PinUsage.INPUT, 0, 50), Position.RIGHT); - // muSR MUX: - // 00: 0 - // 01: 1 - // 10: M - // 11: I - addPin(new Pin(this, "muSR_MUX", 2, PinUsage.OUTPUT, 80, 10), Position.LEFT); - addPin(new Pin(this, "muSR_OVRRET", 1, PinUsage.OUTPUT, 80, 20), Position.LEFT); - addPin(new Pin(this, "muSR_CINV", 1, PinUsage.OUTPUT, 80, 30), Position.LEFT); - addPin(new Pin(this, "muSR_WEZ", 1, PinUsage.OUTPUT, 80, 40), Position.LEFT); - addPin(new Pin(this, "muSR_WEC", 1, PinUsage.OUTPUT, 80, 50), Position.LEFT); - addPin(new Pin(this, "muSR_WEN", 1, PinUsage.OUTPUT, 80, 60), Position.LEFT); - addPin(new Pin(this, "muSR_WEOVR", 1, PinUsage.OUTPUT, 80, 70), Position.LEFT); - // MSR MUX: - // 000: 0 - // 001: 1 - // 010: mu - // 011: Y - // 100: I - // 101: I, invert C - // 110: Swap OVR and C - // 111: _M - addPin(new Pin(this, "MSR_MUX", 3, PinUsage.OUTPUT, 20, 0), Position.BOTTOM); - addPin(new Pin(this, "OEN", 1, PinUsage.OUTPUT, 60, 0), Position.BOTTOM); - // Y MUX: - // 00: mu - // 01: mu - // 10: M - // 11: I - addPin(new Pin(this, "Y_MUX", 2, PinUsage.OUTPUT, 10, 80), Position.TOP); - // CT MUX: - // see Am2900 Family Data Book, Am2904, Table 4 (CT_MUX2-0 = I3-1) - addPin(new Pin(this, "CT_MUX", 3, PinUsage.OUTPUT, 30, 80), Position.TOP); - addPin(new Pin(this, "CT_INV", 1, PinUsage.OUTPUT, 40, 80), Position.TOP); - addPin(new Pin(this, "CT_EXP", 1, PinUsage.OUTPUT, 50, 80), Position.TOP); - // C0 MUX: - // 00xx: 0 - // 01xx: 1 - // 10xx: CX - // 1100: muC - // 1101: _muC - // 1110: MC - // 1111: _MC - addPin(new Pin(this, "C0_MUX", 4, PinUsage.OUTPUT, 70, 80), Position.TOP); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit[] I5_0Bits = readEnds.get("I5-0").getValues().getBits(); - Bit[] I12_11Bits = readEnds.get("I12-11").getValues().getBits(); - int IAsInt = 0; - for (int i = 0; i < 6; i++) - switch (I5_0Bits[5 - i]) - { - case ONE: - IAsInt |= 1 << i; - break; - case U: - for (ReadWriteEnd e : readWriteEnds.values()) - e.feedSignals(BitVector.of(U, e.width())); - return null; - case X: - case Z: - for (ReadWriteEnd e : readWriteEnds.values()) - e.feedSignals(BitVector.of(X, e.width())); - return null; - case ZERO: - break; - default: - throw new IllegalArgumentException("Unknown enum constant: " + I5_0Bits[i]); - } - switch (IAsInt) - { - case 0: - case 2: - readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - case 1: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - case 3: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - case 6: - case 7: - readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ONE); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - case 8: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ZERO); - readWriteEnds.get("muSR_WEN").feedSignals(ZERO); - readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); - break; - case 9: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ZERO); - readWriteEnds.get("muSR_WEN").feedSignals(ZERO); - readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); - break; - case 10: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ZERO); - readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); - break; - case 11: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ZERO); - readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); - break; - case 12: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR_WEC").feedSignals(ZERO); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); - break; - case 13: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR_WEC").feedSignals(ZERO); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); - break; - case 14: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR_WEC").feedSignals(ZERO); - readWriteEnds.get("muSR_WEN").feedSignals(ZERO); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - case 15: - readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR_WEC").feedSignals(ZERO); - readWriteEnds.get("muSR_WEN").feedSignals(ZERO); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - case 24: - case 25: - case 40: - case 41: - case 56: - case 57: - readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ONE); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - break; - default: - readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); - readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); - readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR_WEZ").feedSignals(ONE); - readWriteEnds.get("muSR_WEC").feedSignals(ONE); - readWriteEnds.get("muSR_WEN").feedSignals(ONE); - readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); - } - switch (IAsInt) - { - case 0: - readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ONE); - break; - case 1: - readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ONE); - break; - case 2: - readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ZERO); - break; - case 3: - readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ZERO); - break; - case 4: - readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ZERO); - break; - case 5: - readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ONE); - break; - case 8: - case 9: - case 24: - case 25: - case 40: - case 41: - case 56: - case 57: - readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ONE); - break; - default: - readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ZERO); - break; - } - readWriteEnds.get("OEN").feedSignals(I5_0Bits[0].or(I5_0Bits[1]).or(I5_0Bits[2]).or(I5_0Bits[3]).or(I5_0Bits[4]).or(I5_0Bits[5])); - readWriteEnds.get("Y_MUX").feedSignals(I5_0Bits[0], I5_0Bits[1]); - readWriteEnds.get("CT_INV").feedSignals(I5_0Bits[5]); - readWriteEnds.get("CT_MUX").feedSignals(I5_0Bits[2], I5_0Bits[3], I5_0Bits[4]); - readWriteEnds.get("CT_EXP").feedSignals((IAsInt & 0b111110) == 0b001110 ? ONE : ZERO); - readWriteEnds.get("C0_MUX").feedSignals(I12_11Bits[0], I12_11Bits[1], I5_0Bits[0], - I5_0Bits[2].and(I5_0Bits[3].not()).and(I5_0Bits[4].not())); - return null; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIAm2904RegCTInstrDecode.class.getCanonicalName(), - (m, p, n) -> new GUIAm2904RegCTInstrDecode(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904ShiftInstrDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904ShiftInstrDecode.java deleted file mode 100644 index 9f3865cc..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904ShiftInstrDecode.java +++ /dev/null @@ -1,321 +0,0 @@ -package net.mograsim.logic.model.am2900.components.am2904; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.Map; - -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIAm2904ShiftInstrDecode extends SimpleRectangularHardcodedGUIComponent -{ - public GUIAm2904ShiftInstrDecode(ViewModelModifiable model, String name) - { - super(model, "GUIAm2904ShiftInstrDecode", name, "Shift \ninstruction\ndecode"); - setSize(60, 80); - addPin(new Pin(this, "I", 5, PinUsage.INPUT, 0, 25), Position.RIGHT); - addPin(new Pin(this, "_SE", 1, PinUsage.INPUT, 0, 55), Position.RIGHT); - // SIO0 MUX: - // 000: 0 - // 001: 1 - // 01x: SIOn - // 10x: QIOn - // 11x: MC - addPin(new Pin(this, "SIO0_MUX", 3, PinUsage.OUTPUT, 60, 5), Position.LEFT); - // SIOn MUX: - // 000: 0 - // 001: 1 - // 010: SIO0 - // 011: QIO0 - // 100: MC - // 101: MN - // 110: IC - // 111: IN xor IVOR - addPin(new Pin(this, "SIOn_MUX", 3, PinUsage.OUTPUT, 60, 15), Position.LEFT); - // QIO0 MUX: - // 000: 0 - // 001: 1 - // 01x: SIOn - // 10x: QIOn - // 11x: MC - addPin(new Pin(this, "QIO0_MUX", 3, PinUsage.OUTPUT, 60, 25), Position.LEFT); - // QIOn MUX: - // 000: 0 - // 001: 1 - // 01x: SIO0 - // 10x: QIO0 - // 11x: MN - addPin(new Pin(this, "QIOn_MUX", 3, PinUsage.OUTPUT, 60, 35), Position.LEFT); - addPin(new Pin(this, "OEn", 1, PinUsage.OUTPUT, 60, 45), Position.LEFT); - addPin(new Pin(this, "OE0", 1, PinUsage.OUTPUT, 60, 55), Position.LEFT); - // 00: SIO0 - // 01: QIO0 - // 1x: SIOn - addPin(new Pin(this, "MC_MUX", 2, PinUsage.OUTPUT, 60, 65), Position.LEFT); - addPin(new Pin(this, "MC_EN", 1, PinUsage.OUTPUT, 60, 75), Position.LEFT); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit _SE = readEnds.get("_SE").getValue(); - BitVector I = readEnds.get("I").getValues(); - readWriteEnds.get("OEn").feedSignals(I.getMSBit(0).not().and(_SE.not())); - readWriteEnds.get("OE0").feedSignals(I.getMSBit(0).and(_SE.not())); - if (_SE == Z || _SE == X) - { - readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X); - readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X); - readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X); - readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X); - readWriteEnds.get("MC_MUX").feedSignals(X, X); - readWriteEnds.get("MC_EN").feedSignals(X); - return null; - } else if (_SE == U) - { - - readWriteEnds.get("SIO0_MUX").feedSignals(U, U, U); - readWriteEnds.get("SIOn_MUX").feedSignals(U, U, U); - readWriteEnds.get("QIO0_MUX").feedSignals(U, U, U); - readWriteEnds.get("QIOn_MUX").feedSignals(U, U, U); - readWriteEnds.get("MC_MUX").feedSignals(U, U); - readWriteEnds.get("MC_EN").feedSignals(U); - return null; - } else if (_SE == ONE) - { - readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X); - readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X); - readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X); - readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X); - readWriteEnds.get("MC_MUX").feedSignals(X, X); - readWriteEnds.get("MC_EN").feedSignals(ZERO); - return null; - } - if (!I.isBinary()) - { - Bit val = null; - for (Bit b : I.getBits()) - if (!b.isBinary()) - { - val = b; - break; - } - readWriteEnds.get("SIO0_MUX").feedSignals(val, val, val); - readWriteEnds.get("SIOn_MUX").feedSignals(val, val, val); - readWriteEnds.get("QIO0_MUX").feedSignals(val, val, val); - readWriteEnds.get("QIOn_MUX").feedSignals(val, val, val); - readWriteEnds.get("MC_MUX").feedSignals(val, val); - readWriteEnds.get("MC_EN").feedSignals(val); - return null; - } - int IAsInt = I.getUnsignedValue().intValue(); - if (IAsInt < 16) - { - readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X); - readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X); - switch (IAsInt) - { - case 0: - case 2: - case 6: - case 7: - readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ZERO, ZERO); - break; - case 1: - case 3: - readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ZERO, ONE); - break; - case 4: - case 9: - case 12: - readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ZERO, ZERO); - break; - case 5: - readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ZERO, ONE); - break; - case 8: - case 10: - readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ONE, ZERO); - break; - case 11: - readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ONE, ZERO); - break; - case 13: - case 15: - readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ONE, ONE); - break; - case 14: - readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ONE, ONE); - break; - default: - throw new IllegalStateException("can't happen"); - } - switch (IAsInt) - { - case 0: - readWriteEnds.get("QIOn_MUX").feedSignals(ZERO, ZERO, ZERO); - break; - case 1: - readWriteEnds.get("QIOn_MUX").feedSignals(ZERO, ZERO, ONE); - break; - case 2: - readWriteEnds.get("QIOn_MUX").feedSignals(ONE, ONE, X); - break; - case 3: - case 4: - case 5: - case 6: - case 7: - case 11: - case 12: - case 13: - case 14: - case 15: - readWriteEnds.get("QIOn_MUX").feedSignals(ZERO, ONE, X); - break; - case 8: - case 9: - case 10: - readWriteEnds.get("QIOn_MUX").feedSignals(ONE, ZERO, X); - break; - default: - throw new IllegalStateException("can't happen"); - } - } else - { - readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X); - readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X); - switch (IAsInt) - { - case 16: - case 18: - readWriteEnds.get("SIO0_MUX").feedSignals(ZERO, ZERO, ZERO); - break; - case 17: - case 19: - readWriteEnds.get("SIO0_MUX").feedSignals(ZERO, ZERO, ONE); - break; - case 20: - case 21: - case 22: - case 23: - case 28: - case 29: - case 30: - case 31: - readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ZERO, X); - break; - case 24: - case 26: - readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ONE, X); - break; - case 25: - case 27: - readWriteEnds.get("SIO0_MUX").feedSignals(ZERO, ONE, X); - break; - default: - throw new IllegalStateException("can't happen"); - } - switch (IAsInt) - { - case 16: - case 18: - case 20: - case 22: - case 27: - readWriteEnds.get("QIO0_MUX").feedSignals(ZERO, ZERO, ZERO); - break; - case 17: - case 19: - case 21: - case 23: - readWriteEnds.get("QIO0_MUX").feedSignals(ZERO, ZERO, ONE); - break; - case 24: - case 25: - case 26: - readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ZERO, X); - break; - case 28: - case 30: - readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ONE, X); - break; - case 29: - case 31: - readWriteEnds.get("QIO0_MUX").feedSignals(ZERO, ONE, X); - break; - default: - throw new IllegalStateException("can't happen"); - } - } - // MC - switch (IAsInt) - { - case 0: - case 1: - case 3: - case 4: - case 5: - case 6: - case 10: - case 11: - case 14: - case 15: - case 18: - case 19: - case 22: - case 23: - case 26: - case 27: - case 30: - case 31: - readWriteEnds.get("MC_EN").feedSignals(ZERO); - readWriteEnds.get("MC_MUX").feedSignals(X, X); - break; - case 2: - case 8: - case 9: - readWriteEnds.get("MC_EN").feedSignals(ONE); - readWriteEnds.get("MC_MUX").feedSignals(ZERO, ZERO); - break; - case 7: - case 12: - case 13: - readWriteEnds.get("MC_EN").feedSignals(ONE); - readWriteEnds.get("MC_MUX").feedSignals(ZERO, ONE); - break; - case 16: - case 17: - case 20: - case 21: - case 24: - case 25: - case 28: - case 29: - readWriteEnds.get("MC_EN").feedSignals(ONE); - readWriteEnds.get("MC_MUX").feedSignals(ONE, X); - break; - default: - throw new IllegalStateException("can't happen"); - } - return null; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIAm2904ShiftInstrDecode.class.getCanonicalName(), - (m, p, n) -> new GUIAm2904ShiftInstrDecode(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904RegCTInstrDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904RegCTInstrDecode.java new file mode 100644 index 00000000..a6ebd2b3 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904RegCTInstrDecode.java @@ -0,0 +1,284 @@ +package net.mograsim.logic.model.am2900.components.am2904; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.ZERO; + +import java.util.Map; + +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class ModelAm2904RegCTInstrDecode extends SimpleRectangularHardcodedModelComponent +{ + public ModelAm2904RegCTInstrDecode(ViewModelModifiable model, String name) + { + super(model, "Am2904RegCTInstrDecode", name, "Instruction\ndecode"); + setSize(80, 80); + addPin(new Pin(this, "I12-11", 2, PinUsage.INPUT, 0, 30), Position.RIGHT); + addPin(new Pin(this, "I5-0", 6, PinUsage.INPUT, 0, 50), Position.RIGHT); + // muSR MUX: + // 00: 0 + // 01: 1 + // 10: M + // 11: I + addPin(new Pin(this, "muSR_MUX", 2, PinUsage.OUTPUT, 80, 10), Position.LEFT); + addPin(new Pin(this, "muSR_OVRRET", 1, PinUsage.OUTPUT, 80, 20), Position.LEFT); + addPin(new Pin(this, "muSR_CINV", 1, PinUsage.OUTPUT, 80, 30), Position.LEFT); + addPin(new Pin(this, "muSR_WEZ", 1, PinUsage.OUTPUT, 80, 40), Position.LEFT); + addPin(new Pin(this, "muSR_WEC", 1, PinUsage.OUTPUT, 80, 50), Position.LEFT); + addPin(new Pin(this, "muSR_WEN", 1, PinUsage.OUTPUT, 80, 60), Position.LEFT); + addPin(new Pin(this, "muSR_WEOVR", 1, PinUsage.OUTPUT, 80, 70), Position.LEFT); + // MSR MUX: + // 000: 0 + // 001: 1 + // 010: mu + // 011: Y + // 100: I + // 101: I, invert C + // 110: Swap OVR and C + // 111: _M + addPin(new Pin(this, "MSR_MUX", 3, PinUsage.OUTPUT, 20, 0), Position.BOTTOM); + addPin(new Pin(this, "OEN", 1, PinUsage.OUTPUT, 60, 0), Position.BOTTOM); + // Y MUX: + // 00: mu + // 01: mu + // 10: M + // 11: I + addPin(new Pin(this, "Y_MUX", 2, PinUsage.OUTPUT, 10, 80), Position.TOP); + // CT MUX: + // see Am2900 Family Data Book, Am2904, Table 4 (CT_MUX2-0 = I3-1) + addPin(new Pin(this, "CT_MUX", 3, PinUsage.OUTPUT, 30, 80), Position.TOP); + addPin(new Pin(this, "CT_INV", 1, PinUsage.OUTPUT, 40, 80), Position.TOP); + addPin(new Pin(this, "CT_EXP", 1, PinUsage.OUTPUT, 50, 80), Position.TOP); + // C0 MUX: + // 00xx: 0 + // 01xx: 1 + // 10xx: CX + // 1100: muC + // 1101: _muC + // 1110: MC + // 1111: _MC + addPin(new Pin(this, "C0_MUX", 4, PinUsage.OUTPUT, 70, 80), Position.TOP); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit[] I5_0Bits = readEnds.get("I5-0").getValues().getBits(); + Bit[] I12_11Bits = readEnds.get("I12-11").getValues().getBits(); + int IAsInt = 0; + for (int i = 0; i < 6; i++) + switch (I5_0Bits[5 - i]) + { + case ONE: + IAsInt |= 1 << i; + break; + case U: + for (ReadWriteEnd e : readWriteEnds.values()) + e.feedSignals(BitVector.of(U, e.width())); + return null; + case X: + case Z: + for (ReadWriteEnd e : readWriteEnds.values()) + e.feedSignals(BitVector.of(X, e.width())); + return null; + case ZERO: + break; + default: + throw new IllegalArgumentException("Unknown enum constant: " + I5_0Bits[i]); + } + switch (IAsInt) + { + case 0: + case 2: + readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + case 1: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + case 3: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + case 6: + case 7: + readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ONE); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + case 8: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); + break; + case 9: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); + break; + case 10: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); + break; + case 11: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); + break; + case 12: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); + break; + case 13: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); + break; + case 14: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + case 15: + readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + case 24: + case 25: + case 40: + case 41: + case 56: + case 57: + readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + break; + default: + readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); + readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); + readWriteEnds.get("muSR_CINV").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); + } + switch (IAsInt) + { + case 0: + readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ONE); + break; + case 1: + readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ONE); + break; + case 2: + readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ZERO); + break; + case 3: + readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ZERO); + break; + case 4: + readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ZERO); + break; + case 5: + readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ONE); + break; + case 8: + case 9: + case 24: + case 25: + case 40: + case 41: + case 56: + case 57: + readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ONE); + break; + default: + readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ZERO); + break; + } + readWriteEnds.get("OEN").feedSignals(I5_0Bits[0].or(I5_0Bits[1]).or(I5_0Bits[2]).or(I5_0Bits[3]).or(I5_0Bits[4]).or(I5_0Bits[5])); + readWriteEnds.get("Y_MUX").feedSignals(I5_0Bits[0], I5_0Bits[1]); + readWriteEnds.get("CT_INV").feedSignals(I5_0Bits[5]); + readWriteEnds.get("CT_MUX").feedSignals(I5_0Bits[2], I5_0Bits[3], I5_0Bits[4]); + readWriteEnds.get("CT_EXP").feedSignals((IAsInt & 0b111110) == 0b001110 ? ONE : ZERO); + readWriteEnds.get("C0_MUX").feedSignals(I12_11Bits[0], I12_11Bits[1], I5_0Bits[0], + I5_0Bits[2].and(I5_0Bits[3].not()).and(I5_0Bits[4].not())); + return null; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(ModelAm2904RegCTInstrDecode.class.getCanonicalName(), + (m, p, n) -> new ModelAm2904RegCTInstrDecode(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java new file mode 100644 index 00000000..96b6222d --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java @@ -0,0 +1,321 @@ +package net.mograsim.logic.model.am2900.components.am2904; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.Map; + +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class ModelAm2904ShiftInstrDecode extends SimpleRectangularHardcodedModelComponent +{ + public ModelAm2904ShiftInstrDecode(ViewModelModifiable model, String name) + { + super(model, "Am2904ShiftInstrDecode", name, "Shift \ninstruction\ndecode"); + setSize(60, 80); + addPin(new Pin(this, "I", 5, PinUsage.INPUT, 0, 25), Position.RIGHT); + addPin(new Pin(this, "_SE", 1, PinUsage.INPUT, 0, 55), Position.RIGHT); + // SIO0 MUX: + // 000: 0 + // 001: 1 + // 01x: SIOn + // 10x: QIOn + // 11x: MC + addPin(new Pin(this, "SIO0_MUX", 3, PinUsage.OUTPUT, 60, 5), Position.LEFT); + // SIOn MUX: + // 000: 0 + // 001: 1 + // 010: SIO0 + // 011: QIO0 + // 100: MC + // 101: MN + // 110: IC + // 111: IN xor IVOR + addPin(new Pin(this, "SIOn_MUX", 3, PinUsage.OUTPUT, 60, 15), Position.LEFT); + // QIO0 MUX: + // 000: 0 + // 001: 1 + // 01x: SIOn + // 10x: QIOn + // 11x: MC + addPin(new Pin(this, "QIO0_MUX", 3, PinUsage.OUTPUT, 60, 25), Position.LEFT); + // QIOn MUX: + // 000: 0 + // 001: 1 + // 01x: SIO0 + // 10x: QIO0 + // 11x: MN + addPin(new Pin(this, "QIOn_MUX", 3, PinUsage.OUTPUT, 60, 35), Position.LEFT); + addPin(new Pin(this, "OEn", 1, PinUsage.OUTPUT, 60, 45), Position.LEFT); + addPin(new Pin(this, "OE0", 1, PinUsage.OUTPUT, 60, 55), Position.LEFT); + // 00: SIO0 + // 01: QIO0 + // 1x: SIOn + addPin(new Pin(this, "MC_MUX", 2, PinUsage.OUTPUT, 60, 65), Position.LEFT); + addPin(new Pin(this, "MC_EN", 1, PinUsage.OUTPUT, 60, 75), Position.LEFT); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit _SE = readEnds.get("_SE").getValue(); + BitVector I = readEnds.get("I").getValues(); + readWriteEnds.get("OEn").feedSignals(I.getMSBit(0).not().and(_SE.not())); + readWriteEnds.get("OE0").feedSignals(I.getMSBit(0).and(_SE.not())); + if (_SE == Z || _SE == X) + { + readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X); + readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X); + readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X); + readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X); + readWriteEnds.get("MC_MUX").feedSignals(X, X); + readWriteEnds.get("MC_EN").feedSignals(X); + return null; + } else if (_SE == U) + { + + readWriteEnds.get("SIO0_MUX").feedSignals(U, U, U); + readWriteEnds.get("SIOn_MUX").feedSignals(U, U, U); + readWriteEnds.get("QIO0_MUX").feedSignals(U, U, U); + readWriteEnds.get("QIOn_MUX").feedSignals(U, U, U); + readWriteEnds.get("MC_MUX").feedSignals(U, U); + readWriteEnds.get("MC_EN").feedSignals(U); + return null; + } else if (_SE == ONE) + { + readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X); + readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X); + readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X); + readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X); + readWriteEnds.get("MC_MUX").feedSignals(X, X); + readWriteEnds.get("MC_EN").feedSignals(ZERO); + return null; + } + if (!I.isBinary()) + { + Bit val = null; + for (Bit b : I.getBits()) + if (!b.isBinary()) + { + val = b; + break; + } + readWriteEnds.get("SIO0_MUX").feedSignals(val, val, val); + readWriteEnds.get("SIOn_MUX").feedSignals(val, val, val); + readWriteEnds.get("QIO0_MUX").feedSignals(val, val, val); + readWriteEnds.get("QIOn_MUX").feedSignals(val, val, val); + readWriteEnds.get("MC_MUX").feedSignals(val, val); + readWriteEnds.get("MC_EN").feedSignals(val); + return null; + } + int IAsInt = I.getUnsignedValue().intValue(); + if (IAsInt < 16) + { + readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X); + readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X); + switch (IAsInt) + { + case 0: + case 2: + case 6: + case 7: + readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ZERO, ZERO); + break; + case 1: + case 3: + readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ZERO, ONE); + break; + case 4: + case 9: + case 12: + readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ZERO, ZERO); + break; + case 5: + readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ZERO, ONE); + break; + case 8: + case 10: + readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ONE, ZERO); + break; + case 11: + readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ONE, ZERO); + break; + case 13: + case 15: + readWriteEnds.get("SIOn_MUX").feedSignals(ZERO, ONE, ONE); + break; + case 14: + readWriteEnds.get("SIOn_MUX").feedSignals(ONE, ONE, ONE); + break; + default: + throw new IllegalStateException("can't happen"); + } + switch (IAsInt) + { + case 0: + readWriteEnds.get("QIOn_MUX").feedSignals(ZERO, ZERO, ZERO); + break; + case 1: + readWriteEnds.get("QIOn_MUX").feedSignals(ZERO, ZERO, ONE); + break; + case 2: + readWriteEnds.get("QIOn_MUX").feedSignals(ONE, ONE, X); + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 11: + case 12: + case 13: + case 14: + case 15: + readWriteEnds.get("QIOn_MUX").feedSignals(ZERO, ONE, X); + break; + case 8: + case 9: + case 10: + readWriteEnds.get("QIOn_MUX").feedSignals(ONE, ZERO, X); + break; + default: + throw new IllegalStateException("can't happen"); + } + } else + { + readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X); + readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X); + switch (IAsInt) + { + case 16: + case 18: + readWriteEnds.get("SIO0_MUX").feedSignals(ZERO, ZERO, ZERO); + break; + case 17: + case 19: + readWriteEnds.get("SIO0_MUX").feedSignals(ZERO, ZERO, ONE); + break; + case 20: + case 21: + case 22: + case 23: + case 28: + case 29: + case 30: + case 31: + readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ZERO, X); + break; + case 24: + case 26: + readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ONE, X); + break; + case 25: + case 27: + readWriteEnds.get("SIO0_MUX").feedSignals(ZERO, ONE, X); + break; + default: + throw new IllegalStateException("can't happen"); + } + switch (IAsInt) + { + case 16: + case 18: + case 20: + case 22: + case 27: + readWriteEnds.get("QIO0_MUX").feedSignals(ZERO, ZERO, ZERO); + break; + case 17: + case 19: + case 21: + case 23: + readWriteEnds.get("QIO0_MUX").feedSignals(ZERO, ZERO, ONE); + break; + case 24: + case 25: + case 26: + readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ZERO, X); + break; + case 28: + case 30: + readWriteEnds.get("SIO0_MUX").feedSignals(ONE, ONE, X); + break; + case 29: + case 31: + readWriteEnds.get("QIO0_MUX").feedSignals(ZERO, ONE, X); + break; + default: + throw new IllegalStateException("can't happen"); + } + } + // MC + switch (IAsInt) + { + case 0: + case 1: + case 3: + case 4: + case 5: + case 6: + case 10: + case 11: + case 14: + case 15: + case 18: + case 19: + case 22: + case 23: + case 26: + case 27: + case 30: + case 31: + readWriteEnds.get("MC_EN").feedSignals(ZERO); + readWriteEnds.get("MC_MUX").feedSignals(X, X); + break; + case 2: + case 8: + case 9: + readWriteEnds.get("MC_EN").feedSignals(ONE); + readWriteEnds.get("MC_MUX").feedSignals(ZERO, ZERO); + break; + case 7: + case 12: + case 13: + readWriteEnds.get("MC_EN").feedSignals(ONE); + readWriteEnds.get("MC_MUX").feedSignals(ZERO, ONE); + break; + case 16: + case 17: + case 20: + case 21: + case 24: + case 25: + case 28: + case 29: + readWriteEnds.get("MC_EN").feedSignals(ONE); + readWriteEnds.get("MC_MUX").feedSignals(ONE, X); + break; + default: + throw new IllegalStateException("can't happen"); + } + return null; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(ModelAm2904ShiftInstrDecode.class.getCanonicalName(), + (m, p, n) -> new ModelAm2904ShiftInstrDecode(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910InstrPLA.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910InstrPLA.java deleted file mode 100644 index 96831419..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910InstrPLA.java +++ /dev/null @@ -1,265 +0,0 @@ -package net.mograsim.logic.model.am2900.components.am2910; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.ZERO; - -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.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIAm2910InstrPLA extends SimpleRectangularHardcodedGUIComponent -{ - public GUIAm2910InstrPLA(ViewModelModifiable model, String name) - { - super(model, "GUIAm2910InstrPLA", name, "Instr.\nPLA"); - setSize(30, 85); - addPin(new Pin(this, "PASS", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); - addPin(new Pin(this, "I", 4, PinUsage.INPUT, 0, 20), Position.RIGHT); - addPin(new Pin(this, "R=0", 1, PinUsage.INPUT, 15, 0), Position.BOTTOM); - addPin(new Pin(this, "_PL", 1, PinUsage.OUTPUT, 5, 85), Position.TOP); - addPin(new Pin(this, "_MAP", 1, PinUsage.OUTPUT, 15, 85), Position.TOP); - addPin(new Pin(this, "_VECT", 1, PinUsage.OUTPUT, 25, 85), Position.TOP); - addPin(new Pin(this, "RWE", 1, PinUsage.OUTPUT, 30, 5), Position.LEFT); - addPin(new Pin(this, "RDEC", 1, PinUsage.OUTPUT, 30, 15), Position.LEFT); - addPin(new Pin(this, "YD", 1, PinUsage.OUTPUT, 30, 25), Position.LEFT); - addPin(new Pin(this, "YR", 1, PinUsage.OUTPUT, 30, 35), Position.LEFT); - addPin(new Pin(this, "YF", 1, PinUsage.OUTPUT, 30, 45), Position.LEFT); - addPin(new Pin(this, "YmuPC", 1, PinUsage.OUTPUT, 30, 55), Position.LEFT); - addPin(new Pin(this, "STKI0", 1, PinUsage.OUTPUT, 30, 65), Position.LEFT); - addPin(new Pin(this, "STKI1", 1, PinUsage.OUTPUT, 30, 75), Position.LEFT); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - ReadEnd PASS = readEnds.get("PASS"); - ReadEnd I = readEnds.get("I"); - ReadEnd Req0 = readEnds.get("R=0"); - ReadWriteEnd _PL = readWriteEnds.get("_PL"); - ReadWriteEnd _MAP = readWriteEnds.get("_MAP"); - ReadWriteEnd _VECT = readWriteEnds.get("_VECT"); - ReadWriteEnd RWE = readWriteEnds.get("RWE"); - ReadWriteEnd RDEC = readWriteEnds.get("RDEC"); - ReadWriteEnd YD = readWriteEnds.get("YD"); - ReadWriteEnd YR = readWriteEnds.get("YR"); - ReadWriteEnd YF = readWriteEnds.get("YF"); - ReadWriteEnd YmuPC = readWriteEnds.get("YmuPC"); - ReadWriteEnd STKI0 = readWriteEnds.get("STKI0"); - ReadWriteEnd STKI1 = readWriteEnds.get("STKI1"); - - Bit PASSVal = PASS.getValue(); - Bit I3Val = I.getValue(3); - Bit I2Val = I.getValue(2); - Bit I1Val = I.getValue(1); - Bit I0Val = I.getValue(0); - Bit Req0Val = Req0.getValue(); - - if (!I3Val.isBinary() || !I2Val.isBinary() || !I1Val.isBinary() || !I0Val.isBinary()) - if ((I3Val == U || I3Val.isBinary()) || (I2Val == U || I2Val.isBinary()) || (I1Val == U || I1Val.isBinary()) - || (I0Val == U || I0Val.isBinary())) - { - _PL.feedSignals(U); - _MAP.feedSignals(U); - _VECT.feedSignals(U); - RWE.feedSignals(U); - RDEC.feedSignals(U); - YD.feedSignals(U); - YR.feedSignals(U); - YF.feedSignals(U); - YmuPC.feedSignals(U); - STKI0.feedSignals(U); - STKI1.feedSignals(U); - } else - { - _PL.feedSignals(X); - _MAP.feedSignals(X); - _VECT.feedSignals(X); - RWE.feedSignals(X); - RDEC.feedSignals(X); - YD.feedSignals(X); - YR.feedSignals(X); - YF.feedSignals(X); - YmuPC.feedSignals(X); - STKI0.feedSignals(X); - STKI1.feedSignals(X); - } - else - { - int IAsInt = (I3Val == ONE ? 8 : 0) + (I2Val == ONE ? 4 : 0) + (I1Val == ONE ? 2 : 0) + (I0Val == ONE ? 1 : 0); - Bit _PLVal = ONE; - Bit _MAPVal = ONE; - Bit _VECTVal = ONE; - if (IAsInt == 2) - _MAPVal = ZERO; - else if (IAsInt == 6) - _VECTVal = ZERO; - else - _PLVal = ZERO; - _PL.feedSignals(_PLVal); - _MAP.feedSignals(_MAPVal); - _VECT.feedSignals(_VECTVal); - if (IAsInt == 8 || IAsInt == 9 || IAsInt == 15) - { - RWE.feedSignals(Req0Val); - RDEC.feedSignals(Req0Val);// "forward" X/U/Z - } else if (IAsInt == 4) - { - RWE.feedSignals(PASSVal); - RDEC.feedSignals(PASSVal == ONE ? ZERO : PASSVal);// "forward" X/U/Z - } else - { - RWE.feedSignals(ZERO); - RDEC.feedSignals(ZERO); - } - if (!PASSVal.isBinary()) - { - YD.feedSignals(PASSVal);// "forward" X/U/Z - YR.feedSignals(PASSVal);// "forward" X/U/Z - YF.feedSignals(PASSVal);// "forward" X/U/Z - YmuPC.feedSignals(PASSVal);// "forward" X/U/Z - } else - { - Bit YDVal = ZERO; - Bit YRVal = ZERO; - Bit YFVal = ZERO; - Bit YmuPCVal = ZERO; - switch (IAsInt + (PASSVal == ONE ? 16 : 0)) - { - case 0: - case 0 + 16: - break; - case 2: - case 1 + 16: - case 2 + 16: - case 3 + 16: - case 5 + 16: - case 6 + 16: - case 7 + 16: - case 11 + 16: - YDVal = ONE; - break; - case 5: - case 7: - YRVal = ONE; - break; - case 13: - case 10 + 16: - YFVal = ONE; - break; - case 1: - case 3: - case 4: - case 6: - case 10: - case 11: - case 12: - case 14: - case 4 + 16: - case 12 + 16: - case 13 + 16: - case 14 + 16: - case 15 + 16: - YmuPCVal = ONE; - break; - case 8: - case 8 + 16: - YFVal = Req0Val.not();// "forward" X/U/Z - YmuPCVal = Req0Val;// "forward" X/U/Z - break; - case 9: - case 9 + 16: - YDVal = Req0Val.not();// "forward" X/U/Z - YmuPCVal = Req0Val;// "forward" X/U/Z - break; - case 15: - YFVal = Req0Val.not();// "forward" X/U/Z - YDVal = Req0Val;// "forward" X/U/Z - break; - default: - throw new IllegalStateException("shouldn't happen"); - } - YD.feedSignals(YDVal); - YR.feedSignals(YRVal); - YF.feedSignals(YFVal); - YmuPC.feedSignals(YmuPCVal); - Bit STKI0Val; - Bit STKI1Val; - switch (IAsInt + (PASSVal == ONE ? 16 : 0)) - { - case 1: - case 2: - case 3: - case 6: - case 7: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 2 + 16: - case 3 + 16: - case 6 + 16: - case 7 + 16: - case 9 + 16: - case 12 + 16: - case 14 + 16: - // HOLD - STKI1Val = ZERO; - STKI0Val = ZERO; - break; - case 4: - case 5: - case 1 + 16: - case 4 + 16: - case 5 + 16: - // PUSH - STKI1Val = ZERO; - STKI0Val = ONE; - break; - case 0: - case 0 + 16: - // CLEAR - STKI1Val = ONE; - STKI0Val = ZERO; - break; - case 10 + 16: - case 11 + 16: - case 13 + 16: - case 15 + 16: - // POP - STKI1Val = ONE; - STKI0Val = ONE; - break; - case 8: - case 15: - case 8 + 16: - STKI1Val = Req0Val;// "forward" X/U/Z - STKI0Val = Req0Val;// "forward" X/U/Z - break; - default: - throw new IllegalStateException("shouldn't happen"); - } - STKI0.feedSignals(STKI0Val); - STKI1.feedSignals(STKI1Val); - } - } - return null; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910InstrPLA.class.getCanonicalName(), - (m, p, n) -> new GUIAm2910InstrPLA(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java deleted file mode 100644 index 964637d8..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.mograsim.logic.model.am2900.components.am2910; - -import static net.mograsim.logic.core.types.Bit.ONE; -import static net.mograsim.logic.core.types.Bit.U; -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.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIAm2910RegCntr extends SimpleRectangularHardcodedGUIComponent -{ - public GUIAm2910RegCntr(ViewModelModifiable model, String name) - { - super(model, "GUIAm2910RegCntr", name, "Register/\nCounter"); - setSize(40, 40); - addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 0), Position.BOTTOM); - addPin(new Pin(this, "_RLD", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); - addPin(new Pin(this, "WE", 1, PinUsage.INPUT, 0, 20), Position.RIGHT); - addPin(new Pin(this, "DEC", 1, PinUsage.INPUT, 0, 30), Position.RIGHT); - addPin(new Pin(this, "C", 1, PinUsage.INPUT, 40, 20), Position.LEFT); - addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 40), Position.TOP); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - Bit[] QC = (Bit[]) lastState; - if (QC == null) - { - QC = new Bit[13]; - Arrays.fill(QC, U); - } - - ReadEnd D = readEnds.get("D"); - ReadEnd _RLD = readEnds.get("_RLD"); - ReadEnd WE = readEnds.get("WE"); - ReadEnd DEC = readEnds.get("DEC"); - ReadEnd C = readEnds.get("C"); - ReadWriteEnd Y = readWriteEnds.get("Y"); - - Bit oldCVal = QC[12]; - Bit CVal = C.getValue(); - - // TODO handle U/X/Z - if (oldCVal == ZERO && CVal == ONE) - { - if ((DEC.getValue() == ZERO && WE.getValue() == ONE) || _RLD.getValue() == ZERO) - System.arraycopy(D.getValues().getBits(), 0, QC, 0, 12); - else if (WE.getValue() == ONE) - { - Bit carry = Bit.ZERO; - // TODO extract to helper. This code almost also exists in GUIinc12. - for (int i = 11; i >= 0; i--) - { - Bit a = QC[i]; - QC[i] = a.xnor(carry); - carry = a.or(carry); - } - } - } - QC[12] = CVal; - Y.feedSignals(Arrays.copyOfRange(QC, 0, 12)); - - return QC; - } - - @Override - protected Object getHighLevelState(Object state, String stateID) - { - switch (stateID) - { - case "q": - return BitVector.of(Arrays.copyOfRange((Bit[]) state, 0, 12)); - default: - return super.getHighLevelState(state, stateID); - } - } - - @Override - protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) - { - switch (stateID) - { - case "q": - BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; - if (newHighLevelStateCasted.length() != 12) - throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length()); - System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 0, 12); - return lastState; - default: - return super.setHighLevelState(lastState, stateID, newHighLevelState); - } - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910RegCntr.class.getCanonicalName(), - (m, p, n) -> new GUIAm2910RegCntr(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910SP.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910SP.java deleted file mode 100644 index 2be4d04b..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910SP.java +++ /dev/null @@ -1,132 +0,0 @@ -package net.mograsim.logic.model.am2900.components.am2910; - -import static net.mograsim.logic.core.types.Bit.ONE; -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.ZERO; - -import java.util.Map; - -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class GUIAm2910SP extends SimpleRectangularHardcodedGUIComponent -{ - public GUIAm2910SP(ViewModelModifiable model, String name) - { - super(model, "GUIAm2910SP", name, "Stack\npointer"); - setSize(40, 30); - addPin(new Pin(this, "STKI0", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); - addPin(new Pin(this, "STKI1", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); - addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 25), Position.RIGHT); - addPin(new Pin(this, "A", 3, PinUsage.OUTPUT, 10, 30), Position.TOP); - addPin(new Pin(this, "B", 3, PinUsage.OUTPUT, 30, 30), Position.TOP); - addPin(new Pin(this, "_FULL", 1, PinUsage.OUTPUT, 40, 15), Position.LEFT); - } - - @Override - public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) - { - BitAndInt SPC = (BitAndInt) lastState; - if (SPC == null) - { - SPC = new BitAndInt(); - SPC.bit = U; - SPC.i = -2; - } - int SP = SPC.i; - - Bit STKI0Val = readEnds.get("STKI0").getValue(); - Bit STKI1Val = readEnds.get("STKI1").getValue(); - Bit CVal = readEnds.get("C").getValue(); - if (SPC.bit == ZERO && CVal == ONE) - if (STKI0Val == U && STKI1Val == U) - SP = -2; - else if (!STKI0Val.isBinary() || !STKI1Val.isBinary()) - SP = -1; - else if (STKI0Val == ONE && STKI1Val == ZERO) - { - // PUSH - if (SP >= 0) - SP = SP == 5 ? 5 : SP + 1; - } else if (STKI0Val == ZERO && STKI1Val == ONE) - // CLEAR - SP = 0; - else if (STKI0Val == ONE && STKI1Val == ONE) - // POP - SP = SP <= 0 ? SP : SP - 1; - readWriteEnds.get("A").feedSignals(getAsBitVector(SP == 0 ? 7 : SP < 0 ? SP : SP - 1)); - readWriteEnds.get("B").feedSignals(getAsBitVector(SP == 5 ? 4 : SP)); - readWriteEnds.get("_FULL").feedSignals(SP == -2 ? U : SP == -1 ? X : SP == 5 ? ZERO : ONE); - - SPC.i = SP; - SPC.bit = CVal; - return SPC; - } - - @Override - protected Object getHighLevelState(Object state, String stateID) - { - switch (stateID) - { - case "q": - return getAsBitVector(((BitAndInt) state).i); - default: - return super.getHighLevelState(state, stateID); - } - } - - @Override - protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) - { - switch (stateID) - { - case "q": - int i; - BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; - if (newHighLevelStateCasted.length() != 3) - throw new IllegalArgumentException("Expected BitVector of length 3, not " + newHighLevelStateCasted.length()); - if (newHighLevelStateCasted.isBinary()) - i = newHighLevelStateCasted.getUnsignedValue().intValue(); - else - i = -1;// this makes setting to U impossible - if (i > 5) - throw new IllegalArgumentException("Given value not in range (0-5 incl.): " + i); - ((BitAndInt) lastState).i = i; - return lastState; - default: - return super.setHighLevelState(lastState, stateID, newHighLevelState); - } - } - - private static class BitAndInt - { - Bit bit; - int i; - } - - /** - * -1 means X, -2 means U - */ - private static BitVector getAsBitVector(int i) - { - if (i == -1) - return BitVector.of(X, 3); - if (i == -2) - return BitVector.of(U, 3); - return BitVector.of((i & 0b100) > 0 ? ONE : ZERO, (i & 0b10) > 0 ? ONE : ZERO, (i & 0b1) > 0 ? ONE : ZERO); - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910SP.class.getCanonicalName(), (m, p, n) -> new GUIAm2910SP(m, n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910InstrPLA.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910InstrPLA.java new file mode 100644 index 00000000..5929bc27 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910InstrPLA.java @@ -0,0 +1,265 @@ +package net.mograsim.logic.model.am2900.components.am2910; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.ZERO; + +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.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class ModelAm2910InstrPLA extends SimpleRectangularHardcodedModelComponent +{ + public ModelAm2910InstrPLA(ViewModelModifiable model, String name) + { + super(model, "Am2910InstrPLA", name, "Instr.\nPLA"); + setSize(30, 85); + addPin(new Pin(this, "PASS", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); + addPin(new Pin(this, "I", 4, PinUsage.INPUT, 0, 20), Position.RIGHT); + addPin(new Pin(this, "R=0", 1, PinUsage.INPUT, 15, 0), Position.BOTTOM); + addPin(new Pin(this, "_PL", 1, PinUsage.OUTPUT, 5, 85), Position.TOP); + addPin(new Pin(this, "_MAP", 1, PinUsage.OUTPUT, 15, 85), Position.TOP); + addPin(new Pin(this, "_VECT", 1, PinUsage.OUTPUT, 25, 85), Position.TOP); + addPin(new Pin(this, "RWE", 1, PinUsage.OUTPUT, 30, 5), Position.LEFT); + addPin(new Pin(this, "RDEC", 1, PinUsage.OUTPUT, 30, 15), Position.LEFT); + addPin(new Pin(this, "YD", 1, PinUsage.OUTPUT, 30, 25), Position.LEFT); + addPin(new Pin(this, "YR", 1, PinUsage.OUTPUT, 30, 35), Position.LEFT); + addPin(new Pin(this, "YF", 1, PinUsage.OUTPUT, 30, 45), Position.LEFT); + addPin(new Pin(this, "YmuPC", 1, PinUsage.OUTPUT, 30, 55), Position.LEFT); + addPin(new Pin(this, "STKI0", 1, PinUsage.OUTPUT, 30, 65), Position.LEFT); + addPin(new Pin(this, "STKI1", 1, PinUsage.OUTPUT, 30, 75), Position.LEFT); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + ReadEnd PASS = readEnds.get("PASS"); + ReadEnd I = readEnds.get("I"); + ReadEnd Req0 = readEnds.get("R=0"); + ReadWriteEnd _PL = readWriteEnds.get("_PL"); + ReadWriteEnd _MAP = readWriteEnds.get("_MAP"); + ReadWriteEnd _VECT = readWriteEnds.get("_VECT"); + ReadWriteEnd RWE = readWriteEnds.get("RWE"); + ReadWriteEnd RDEC = readWriteEnds.get("RDEC"); + ReadWriteEnd YD = readWriteEnds.get("YD"); + ReadWriteEnd YR = readWriteEnds.get("YR"); + ReadWriteEnd YF = readWriteEnds.get("YF"); + ReadWriteEnd YmuPC = readWriteEnds.get("YmuPC"); + ReadWriteEnd STKI0 = readWriteEnds.get("STKI0"); + ReadWriteEnd STKI1 = readWriteEnds.get("STKI1"); + + Bit PASSVal = PASS.getValue(); + Bit I3Val = I.getValue(3); + Bit I2Val = I.getValue(2); + Bit I1Val = I.getValue(1); + Bit I0Val = I.getValue(0); + Bit Req0Val = Req0.getValue(); + + if (!I3Val.isBinary() || !I2Val.isBinary() || !I1Val.isBinary() || !I0Val.isBinary()) + if ((I3Val == U || I3Val.isBinary()) || (I2Val == U || I2Val.isBinary()) || (I1Val == U || I1Val.isBinary()) + || (I0Val == U || I0Val.isBinary())) + { + _PL.feedSignals(U); + _MAP.feedSignals(U); + _VECT.feedSignals(U); + RWE.feedSignals(U); + RDEC.feedSignals(U); + YD.feedSignals(U); + YR.feedSignals(U); + YF.feedSignals(U); + YmuPC.feedSignals(U); + STKI0.feedSignals(U); + STKI1.feedSignals(U); + } else + { + _PL.feedSignals(X); + _MAP.feedSignals(X); + _VECT.feedSignals(X); + RWE.feedSignals(X); + RDEC.feedSignals(X); + YD.feedSignals(X); + YR.feedSignals(X); + YF.feedSignals(X); + YmuPC.feedSignals(X); + STKI0.feedSignals(X); + STKI1.feedSignals(X); + } + else + { + int IAsInt = (I3Val == ONE ? 8 : 0) + (I2Val == ONE ? 4 : 0) + (I1Val == ONE ? 2 : 0) + (I0Val == ONE ? 1 : 0); + Bit _PLVal = ONE; + Bit _MAPVal = ONE; + Bit _VECTVal = ONE; + if (IAsInt == 2) + _MAPVal = ZERO; + else if (IAsInt == 6) + _VECTVal = ZERO; + else + _PLVal = ZERO; + _PL.feedSignals(_PLVal); + _MAP.feedSignals(_MAPVal); + _VECT.feedSignals(_VECTVal); + if (IAsInt == 8 || IAsInt == 9 || IAsInt == 15) + { + RWE.feedSignals(Req0Val); + RDEC.feedSignals(Req0Val);// "forward" X/U/Z + } else if (IAsInt == 4) + { + RWE.feedSignals(PASSVal); + RDEC.feedSignals(PASSVal == ONE ? ZERO : PASSVal);// "forward" X/U/Z + } else + { + RWE.feedSignals(ZERO); + RDEC.feedSignals(ZERO); + } + if (!PASSVal.isBinary()) + { + YD.feedSignals(PASSVal);// "forward" X/U/Z + YR.feedSignals(PASSVal);// "forward" X/U/Z + YF.feedSignals(PASSVal);// "forward" X/U/Z + YmuPC.feedSignals(PASSVal);// "forward" X/U/Z + } else + { + Bit YDVal = ZERO; + Bit YRVal = ZERO; + Bit YFVal = ZERO; + Bit YmuPCVal = ZERO; + switch (IAsInt + (PASSVal == ONE ? 16 : 0)) + { + case 0: + case 0 + 16: + break; + case 2: + case 1 + 16: + case 2 + 16: + case 3 + 16: + case 5 + 16: + case 6 + 16: + case 7 + 16: + case 11 + 16: + YDVal = ONE; + break; + case 5: + case 7: + YRVal = ONE; + break; + case 13: + case 10 + 16: + YFVal = ONE; + break; + case 1: + case 3: + case 4: + case 6: + case 10: + case 11: + case 12: + case 14: + case 4 + 16: + case 12 + 16: + case 13 + 16: + case 14 + 16: + case 15 + 16: + YmuPCVal = ONE; + break; + case 8: + case 8 + 16: + YFVal = Req0Val.not();// "forward" X/U/Z + YmuPCVal = Req0Val;// "forward" X/U/Z + break; + case 9: + case 9 + 16: + YDVal = Req0Val.not();// "forward" X/U/Z + YmuPCVal = Req0Val;// "forward" X/U/Z + break; + case 15: + YFVal = Req0Val.not();// "forward" X/U/Z + YDVal = Req0Val;// "forward" X/U/Z + break; + default: + throw new IllegalStateException("shouldn't happen"); + } + YD.feedSignals(YDVal); + YR.feedSignals(YRVal); + YF.feedSignals(YFVal); + YmuPC.feedSignals(YmuPCVal); + Bit STKI0Val; + Bit STKI1Val; + switch (IAsInt + (PASSVal == ONE ? 16 : 0)) + { + case 1: + case 2: + case 3: + case 6: + case 7: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 2 + 16: + case 3 + 16: + case 6 + 16: + case 7 + 16: + case 9 + 16: + case 12 + 16: + case 14 + 16: + // HOLD + STKI1Val = ZERO; + STKI0Val = ZERO; + break; + case 4: + case 5: + case 1 + 16: + case 4 + 16: + case 5 + 16: + // PUSH + STKI1Val = ZERO; + STKI0Val = ONE; + break; + case 0: + case 0 + 16: + // CLEAR + STKI1Val = ONE; + STKI0Val = ZERO; + break; + case 10 + 16: + case 11 + 16: + case 13 + 16: + case 15 + 16: + // POP + STKI1Val = ONE; + STKI0Val = ONE; + break; + case 8: + case 15: + case 8 + 16: + STKI1Val = Req0Val;// "forward" X/U/Z + STKI0Val = Req0Val;// "forward" X/U/Z + break; + default: + throw new IllegalStateException("shouldn't happen"); + } + STKI0.feedSignals(STKI0Val); + STKI1.feedSignals(STKI1Val); + } + } + return null; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(ModelAm2910InstrPLA.class.getCanonicalName(), + (m, p, n) -> new ModelAm2910InstrPLA(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910RegCntr.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910RegCntr.java new file mode 100644 index 00000000..534dea41 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910RegCntr.java @@ -0,0 +1,111 @@ +package net.mograsim.logic.model.am2900.components.am2910; + +import static net.mograsim.logic.core.types.Bit.ONE; +import static net.mograsim.logic.core.types.Bit.U; +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.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class ModelAm2910RegCntr extends SimpleRectangularHardcodedModelComponent +{ + public ModelAm2910RegCntr(ViewModelModifiable model, String name) + { + super(model, "Am2910RegCntr", name, "Register/\nCounter"); + setSize(40, 40); + addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 0), Position.BOTTOM); + addPin(new Pin(this, "_RLD", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); + addPin(new Pin(this, "WE", 1, PinUsage.INPUT, 0, 20), Position.RIGHT); + addPin(new Pin(this, "DEC", 1, PinUsage.INPUT, 0, 30), Position.RIGHT); + addPin(new Pin(this, "C", 1, PinUsage.INPUT, 40, 20), Position.LEFT); + addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 40), Position.TOP); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + Bit[] QC = (Bit[]) lastState; + if (QC == null) + { + QC = new Bit[13]; + Arrays.fill(QC, U); + } + + ReadEnd D = readEnds.get("D"); + ReadEnd _RLD = readEnds.get("_RLD"); + ReadEnd WE = readEnds.get("WE"); + ReadEnd DEC = readEnds.get("DEC"); + ReadEnd C = readEnds.get("C"); + ReadWriteEnd Y = readWriteEnds.get("Y"); + + Bit oldCVal = QC[12]; + Bit CVal = C.getValue(); + + // TODO handle U/X/Z + if (oldCVal == ZERO && CVal == ONE) + { + if ((DEC.getValue() == ZERO && WE.getValue() == ONE) || _RLD.getValue() == ZERO) + System.arraycopy(D.getValues().getBits(), 0, QC, 0, 12); + else if (WE.getValue() == ONE) + { + Bit carry = Bit.ZERO; + // TODO extract to helper. This code almost also exists in Modelinc12. + for (int i = 11; i >= 0; i--) + { + Bit a = QC[i]; + QC[i] = a.xnor(carry); + carry = a.or(carry); + } + } + } + QC[12] = CVal; + Y.feedSignals(Arrays.copyOfRange(QC, 0, 12)); + + return QC; + } + + @Override + protected Object getHighLevelState(Object state, String stateID) + { + switch (stateID) + { + case "q": + return BitVector.of(Arrays.copyOfRange((Bit[]) state, 0, 12)); + default: + return super.getHighLevelState(state, stateID); + } + } + + @Override + protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) + { + switch (stateID) + { + case "q": + BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; + if (newHighLevelStateCasted.length() != 12) + throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length()); + System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 0, 12); + return lastState; + default: + return super.setHighLevelState(lastState, stateID, newHighLevelState); + } + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(ModelAm2910RegCntr.class.getCanonicalName(), + (m, p, n) -> new ModelAm2910RegCntr(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910SP.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910SP.java new file mode 100644 index 00000000..60787f04 --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910SP.java @@ -0,0 +1,132 @@ +package net.mograsim.logic.model.am2900.components.am2910; + +import static net.mograsim.logic.core.types.Bit.ONE; +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.ZERO; + +import java.util.Map; + +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +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.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public class ModelAm2910SP extends SimpleRectangularHardcodedModelComponent +{ + public ModelAm2910SP(ViewModelModifiable model, String name) + { + super(model, "Am2910SP", name, "Stack\npointer"); + setSize(40, 30); + addPin(new Pin(this, "STKI0", 1, PinUsage.INPUT, 0, 5), Position.RIGHT); + addPin(new Pin(this, "STKI1", 1, PinUsage.INPUT, 0, 15), Position.RIGHT); + addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 25), Position.RIGHT); + addPin(new Pin(this, "A", 3, PinUsage.OUTPUT, 10, 30), Position.TOP); + addPin(new Pin(this, "B", 3, PinUsage.OUTPUT, 30, 30), Position.TOP); + addPin(new Pin(this, "_FULL", 1, PinUsage.OUTPUT, 40, 15), Position.LEFT); + } + + @Override + public Object recalculate(Object lastState, Map readEnds, Map readWriteEnds) + { + BitAndInt SPC = (BitAndInt) lastState; + if (SPC == null) + { + SPC = new BitAndInt(); + SPC.bit = U; + SPC.i = -2; + } + int SP = SPC.i; + + Bit STKI0Val = readEnds.get("STKI0").getValue(); + Bit STKI1Val = readEnds.get("STKI1").getValue(); + Bit CVal = readEnds.get("C").getValue(); + if (SPC.bit == ZERO && CVal == ONE) + if (STKI0Val == U && STKI1Val == U) + SP = -2; + else if (!STKI0Val.isBinary() || !STKI1Val.isBinary()) + SP = -1; + else if (STKI0Val == ONE && STKI1Val == ZERO) + { + // PUSH + if (SP >= 0) + SP = SP == 5 ? 5 : SP + 1; + } else if (STKI0Val == ZERO && STKI1Val == ONE) + // CLEAR + SP = 0; + else if (STKI0Val == ONE && STKI1Val == ONE) + // POP + SP = SP <= 0 ? SP : SP - 1; + readWriteEnds.get("A").feedSignals(getAsBitVector(SP == 0 ? 7 : SP < 0 ? SP : SP - 1)); + readWriteEnds.get("B").feedSignals(getAsBitVector(SP == 5 ? 4 : SP)); + readWriteEnds.get("_FULL").feedSignals(SP == -2 ? U : SP == -1 ? X : SP == 5 ? ZERO : ONE); + + SPC.i = SP; + SPC.bit = CVal; + return SPC; + } + + @Override + protected Object getHighLevelState(Object state, String stateID) + { + switch (stateID) + { + case "q": + return getAsBitVector(((BitAndInt) state).i); + default: + return super.getHighLevelState(state, stateID); + } + } + + @Override + protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) + { + switch (stateID) + { + case "q": + int i; + BitVector newHighLevelStateCasted = (BitVector) newHighLevelState; + if (newHighLevelStateCasted.length() != 3) + throw new IllegalArgumentException("Expected BitVector of length 3, not " + newHighLevelStateCasted.length()); + if (newHighLevelStateCasted.isBinary()) + i = newHighLevelStateCasted.getUnsignedValue().intValue(); + else + i = -1;// this makes setting to U impossible + if (i > 5) + throw new IllegalArgumentException("Given value not in range (0-5 incl.): " + i); + ((BitAndInt) lastState).i = i; + return lastState; + default: + return super.setHighLevelState(lastState, stateID, newHighLevelState); + } + } + + private static class BitAndInt + { + Bit bit; + int i; + } + + /** + * -1 means X, -2 means U + */ + private static BitVector getAsBitVector(int i) + { + if (i == -1) + return BitVector.of(X, 3); + if (i == -2) + return BitVector.of(U, 3); + return BitVector.of((i & 0b100) > 0 ? ONE : ZERO, (i & 0b10) > 0 ? ONE : ZERO, (i & 0b1) > 0 ? ONE : ZERO); + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(ModelAm2910SP.class.getCanonicalName(), (m, p, n) -> new ModelAm2910SP(m, n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900Machine.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900Machine.java index 3c6ca1c2..ecb13b4c 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900Machine.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900Machine.java @@ -7,7 +7,7 @@ import net.mograsim.logic.model.model.ViewModel; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.logic.model.modeladapter.LogicModelParameters; import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.machine.Machine; import net.mograsim.machine.MachineDefinition; import net.mograsim.machine.Register; @@ -23,8 +23,8 @@ public class Am2900Machine implements Machine { this.machineDefinition = am2900MachineDefinition; viewModel = new ViewModelModifiable(); - IndirectGUIComponentCreator.createComponent(viewModel, - "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIAm2900.json"); + IndirectModelComponentCreator.createComponent(viewModel, + "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/ModelAm2900.json"); LogicModelParameters params = new LogicModelParameters(); params.gateProcessTime = 50; params.wireTravelTime = 10; diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json index beef385c..bcfae4a6 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json @@ -1,58 +1,58 @@ mograsim version: 0.1.3 { - "GUIAm2904RegCTInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode", - "GUIAm2904ShiftInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode", - "GUIAm2910InstrPLA": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA", - "GUIAm2910RegCntr": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910RegCntr", - "GUIAm2910SP": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910SP", - "GUIdff12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.GUIdff12", - "GUIdff4_finewe": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe", - "GUIinc12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.GUIinc12", - "GUInor12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.GUInor12", - "GUIram5_12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.GUIram5_12", - "GUIsel4_12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.GUIsel4_12", + "Am2904RegCTInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.ModelAm2904RegCTInstrDecode", + "Am2904ShiftInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.ModelAm2904ShiftInstrDecode", + "Am2910InstrPLA": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.ModelAm2910InstrPLA", + "Am2910RegCntr": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.ModelAm2910RegCntr", + "Am2910SP": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2910.ModelAm2910SP", + "dff12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modeldff12", + "dff4_finewe": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modeldff4_finewe", + "inc12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modelinc12", + "nor12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modelnor12", + "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", - "GUIAm2901": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901.json", - "GUIAm2901ALUFuncDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUFuncDecode.json", - "GUIAm2901ALUInclDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclDecode.json", - "GUIAm2901ALUInclSourceDecodeInclFunctionDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json", - "GUIAm2901ALUOneBit": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901ALUOneBit.json", - "GUIAm2904": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/GUIAm2904.json", - "GUIAm2910": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2910/GUIAm2910.json", - "GUIAm2904MSR": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/GUIAm2904MSR.json", - "GUIAm2904muSR": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/GUIAm2904muSR.json", - "GUIAm2904TestLogic": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/GUIAm2904TestLogic.json", - "GUIAm2901DestDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901DestDecode.json", - "GUIAm2901SourceDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/GUIAm2901SourceDecode.json", - "GUI_rsLatch": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUI_rsLatch.json", - "GUIand": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIand.json", - "GUIand41": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIand41.json", - "GUIandor414": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIandor414.json", - "GUIdemux2": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdemux2.json", - "GUIdff": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdff.json", - "GUIdff12_we": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdff12_we.json", - "GUIdff16_invwe": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdff16_invwe.json", - "GUIdff4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdff4.json", - "GUIdff4_invwe": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdff4_invwe.json", - "GUIdlatch": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdlatch.json", - "GUIdlatch4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdlatch4.json", - "GUIfulladder": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIfulladder.json", - "GUIhalfadder": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIhalfadder.json", - "GUImux1": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux1.json", - "GUImux1_12": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux1_12.json", - "GUImux1_16": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux1_16.json", - "GUImux1_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux1_4.json", - "GUImux2": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux2.json", - "GUImux2_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux2_4.json", - "GUImux3": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUImux3.json", - "GUInand3": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUInand3.json", - "GUInot4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUInot4.json", - "GUIor4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIor4.json", - "GUIor_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIor_4.json", - "GUIram2": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIram2.json", - "GUIram4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIram4.json", - "GUIsel1": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIsel1.json", - "GUIsel2_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIsel2_4.json", - "GUIsel3_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIsel3_4.json", - "GUIxor": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIxor.json" + "Am2901": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901.json", + "Am2901ALUFuncDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901ALUFuncDecode.json", + "Am2901ALUInclDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclDecode.json", + "Am2901ALUInclSourceDecodeInclFunctionDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901ALUInclSourceDecodeInclFunctionDecode.json", + "Am2901ALUOneBit": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901ALUOneBit.json", + "Am2904": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904.json", + "Am2910": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2910/Am2910.json", + "Am2904MSR": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904MSR.json", + "Am2904muSR": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904muSR.json", + "Am2904TestLogic": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904TestLogic.json", + "Am2901DestDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901DestDecode.json", + "Am2901SourceDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2901/Am2901SourceDecode.json", + "_rsLatch": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/_rsLatch.json", + "and": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/and.json", + "and41": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/and41.json", + "andor414": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/andor414.json", + "demux2": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/demux2.json", + "dff": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dff.json", + "dff12_we": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dff12_we.json", + "dff16_invwe": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dff16_invwe.json", + "dff4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dff4.json", + "dff4_invwe": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dff4_invwe.json", + "dlatch": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch.json", + "dlatch4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch4.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", + "mux1": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1.json", + "mux1_12": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1_12.json", + "mux1_16": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1_16.json", + "mux1_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux1_4.json", + "mux2": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux2.json", + "mux2_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux2_4.json", + "mux3": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/mux3.json", + "nand3": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/nand3.json", + "not4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/not4.json", + "or4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/or4.json", + "or_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/or_4.json", + "ram2": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/ram2.json", + "ram4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/ram4.json", + "sel1": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/sel1.json", + "sel2_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/sel2_4.json", + "sel3_4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/sel3_4.json", + "xor": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/xor.json" } \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java deleted file mode 100644 index f62840e5..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java +++ /dev/null @@ -1,59 +0,0 @@ -package net.mograsim.logic.model.examples; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - -import net.mograsim.logic.model.SimpleLogicUIStandalone; -import net.mograsim.logic.model.am2900.Am2900Loader; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; -import net.mograsim.logic.model.model.wires.GUIWire; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; - -public class GUIComponentTestbench -{ - public static void main(String[] args) - { - SimpleLogicUIStandalone.executeVisualisation(GUIComponentTestbench::createTestbench); - } - - @SuppressWarnings("unused") // for GUIWires being created - public static void createTestbench(ViewModelModifiable model) - { - Am2900Loader.setup(); - GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, - "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIdff16_invwe.json"); - - List inputPinNames = new ArrayList<>(); - List outputPinNames = new ArrayList<>(); - for (Pin p : comp.getPins().values()) - if (p.usage == PinUsage.INPUT) - inputPinNames.add(p.name); - else - outputPinNames.add(p.name); - - inputPinNames.sort(Comparator.comparing(comp::getPin, Comparator.comparing(Pin::getRelY))); - outputPinNames.sort(Comparator.comparing(comp::getPin, Comparator.comparing(Pin::getRelY))); - - comp.moveTo(100, 0); - for (int i = 0; i < inputPinNames.size(); i++) - { - String pinName = inputPinNames.get(i); - GUIManualSwitch sw = new GUIManualSwitch(model, comp.getPin(pinName).logicWidth); - sw.moveTo(0, 20 * i); - new GUIWire(model, comp.getPin(pinName), sw.getOutputPin()); - } - for (int i = 0; i < outputPinNames.size(); i++) - { - String pinName = outputPinNames.get(i); - GUIBitDisplay bd = new GUIBitDisplay(model, comp.getPin(pinName).logicWidth); - bd.moveTo(200, 20 * i); - new GUIWire(model, comp.getPin(pinName), bd.getInputPin()); - } - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ModelComponentTestbench.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ModelComponentTestbench.java new file mode 100644 index 00000000..20b25dbd --- /dev/null +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ModelComponentTestbench.java @@ -0,0 +1,59 @@ +package net.mograsim.logic.model.examples; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +import net.mograsim.logic.model.SimpleLogicUIStandalone; +import net.mograsim.logic.model.am2900.Am2900Loader; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; +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 main(String[] args) + { + SimpleLogicUIStandalone.executeVisualisation(ModelComponentTestbench::createTestbench); + } + + @SuppressWarnings("unused") // for ModelWires being created + public static void createTestbench(ViewModelModifiable model) + { + Am2900Loader.setup(); + ModelComponent comp = IndirectModelComponentCreator.createComponent(model, + "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dff16_invwe.json"); + + List inputPinNames = new ArrayList<>(); + List outputPinNames = new ArrayList<>(); + for (Pin p : comp.getPins().values()) + if (p.usage == PinUsage.INPUT) + inputPinNames.add(p.name); + else + outputPinNames.add(p.name); + + inputPinNames.sort(Comparator.comparing(comp::getPin, Comparator.comparing(Pin::getRelY))); + outputPinNames.sort(Comparator.comparing(comp::getPin, Comparator.comparing(Pin::getRelY))); + + comp.moveTo(100, 0); + for (int i = 0; i < inputPinNames.size(); i++) + { + String pinName = inputPinNames.get(i); + ModelManualSwitch sw = new ModelManualSwitch(model, comp.getPin(pinName).logicWidth); + sw.moveTo(0, 20 * i); + new ModelWire(model, comp.getPin(pinName), sw.getOutputPin()); + } + for (int i = 0; i < outputPinNames.size(); i++) + { + String pinName = outputPinNames.get(i); + ModelBitDisplay bd = new ModelBitDisplay(model, comp.getPin(pinName).logicWidth); + bd.moveTo(200, 20 * i); + new ModelWire(model, comp.getPin(pinName), bd.getInputPin()); + } + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java index 9ccfd8a0..085cb8f2 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java @@ -13,12 +13,12 @@ import java.util.stream.Stream; import net.mograsim.logic.model.am2900.Am2900Loader; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.MovablePin; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.model.wires.PinUsage; import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.serializing.SubmodelComponentSerializer; public class ReserializeJSONsSettingUsages @@ -51,7 +51,7 @@ public class ReserializeJSONsSettingUsages { try { - DeserializedSubmodelComponent comp = (DeserializedSubmodelComponent) IndirectGUIComponentCreator + DeserializedSubmodelComponent comp = (DeserializedSubmodelComponent) IndirectModelComponentCreator .createComponent(new ViewModelModifiable(), "jsonfile:" + json.toString()); System.out.println("Reserializing " + json); comp.getSupermodelPins().entrySet().stream().sorted(Comparator.comparing(Entry::getKey)).map(Entry::getValue).forEach(pin -> @@ -75,13 +75,13 @@ public class ReserializeJSONsSettingUsages private static void setInterfacePinUsage(DeserializedSubmodelComponent comp, Pin interfacePin, PinUsage usage) { - Set wiresConnectedToPin = comp.submodel.getWiresByName().values().stream() + Set wiresConnectedToPin = comp.submodel.getWiresByName().values().stream() .filter(w -> w.getPin1() == interfacePin || w.getPin2() == interfacePin).collect(Collectors.toSet()); wiresConnectedToPin.forEach(comp.getSubmodelModifiable()::destroyWire); comp.removeSubmodelInterface(interfacePin.name); comp.addSubmodelInterface( new MovablePin(comp, interfacePin.name, interfacePin.logicWidth, usage, interfacePin.getRelX(), interfacePin.getRelY())); ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable(); - wiresConnectedToPin.forEach(w -> new GUIWire(submodelModifiable, w.getPin1(), w.getPin2())); + wiresConnectedToPin.forEach(w -> new ModelWire(submodelModifiable, w.getPin1(), w.getPin2())); } } \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java index 91ba7eb0..e9ce12aa 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java @@ -10,16 +10,16 @@ import net.mograsim.logic.model.SimpleLogicUIStandalone; import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects; import net.mograsim.logic.model.am2900.Am2900Loader; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.atomic.GUIAndGate; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; -import net.mograsim.logic.model.model.components.atomic.GUINotGate; -import net.mograsim.logic.model.model.components.atomic.TextComponent; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.atomic.ModelAndGate; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelNotGate; +import net.mograsim.logic.model.model.components.atomic.ModelTextComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.model.wires.WireCrossPoint; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.util.ModellingTool; public class Am2901Testbench @@ -32,17 +32,17 @@ public class Am2901Testbench public static void createTestbench(ViewModelModifiable model) { - GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "GUIAm2901"); + ModelComponent comp = IndirectModelComponentCreator.createComponent(model, "Am2901"); ModellingTool tool = ModellingTool.createFor(model); comp.moveTo(240, 0); - GUIManualSwitch enable = new GUIManualSwitch(model, 1); - WireCrossPoint wcp0 = new WireCrossPoint(model, 1); - GUINotGate not1 = new GUINotGate(model, 1); - GUINotGate not2 = new GUINotGate(model, 1); - GUINotGate not3 = new GUINotGate(model, 1); - GUIAndGate and = new GUIAndGate(model, 1); + ModelManualSwitch enable = new ModelManualSwitch(model, 1); + ModelWireCrossPoint wcp0 = new ModelWireCrossPoint(model, 1); + ModelNotGate not1 = new ModelNotGate(model, 1); + ModelNotGate not2 = new ModelNotGate(model, 1); + ModelNotGate not3 = new ModelNotGate(model, 1); + ModelAndGate and = new ModelAndGate(model, 1); tool.connect(wcp0, enable, ""); tool.connect(wcp0, and, "A"); tool.connect(wcp0, not1, "A"); @@ -73,9 +73,9 @@ public class Am2901Testbench double x = 55 + 70 * (i % 2); double y = 10 * i; - WireCrossPoint wcp = new WireCrossPoint(model, 1); - GUIComponent d_ff = IndirectGUIComponentCreator.createComponent(model, "GUIdff"); - GUIManualSwitch sw = new GUIManualSwitch(model, 1); + ModelWireCrossPoint wcp = new ModelWireCrossPoint(model, 1); + ModelComponent d_ff = IndirectModelComponentCreator.createComponent(model, "dff"); + ModelManualSwitch sw = new ModelManualSwitch(model, 1); tool.connect(last, wcp); tool.connect(wcp, d_ff, "C"); @@ -83,7 +83,7 @@ public class Am2901Testbench tool.connect(d_ff, comp, "Q", inputPinNames.get(i)); last = wcp.getPin(); - TextComponent label = new TextComponent(model, inputPinNames.get(i)); + ModelTextComponent label = new ModelTextComponent(model, inputPinNames.get(i)); sw.moveTo(x, y + 7.5); wcp.moveTo(160, y); @@ -95,11 +95,11 @@ public class Am2901Testbench { double x = 300 + 75 * (i % 2); double y = 10 * i - 2.5; - GUIBitDisplay bd = new GUIBitDisplay(model, 1); + ModelBitDisplay bd = new ModelBitDisplay(model, 1); bd.moveTo(x, y); tool.connect(bd.getInputPin(), comp, outputPinNames.get(i)); - TextComponent label = new TextComponent(model, outputPinNames.get(i)); + ModelTextComponent label = new ModelTextComponent(model, outputPinNames.get(i)); label.moveTo(x + 25, y); } } @@ -108,9 +108,9 @@ public class Am2901Testbench { vis.model.getComponentsByName().values().forEach(c -> { - if (c instanceof GUIManualSwitch) + if (c instanceof ModelManualSwitch) { - GUIManualSwitch cCasted = (GUIManualSwitch) c; + ModelManualSwitch cCasted = (ModelManualSwitch) c; cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth)); } }); diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/TestableAm2901Impl.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/TestableAm2901Impl.java index 45e9e044..60c1cf86 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/TestableAm2901Impl.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/TestableAm2901Impl.java @@ -8,11 +8,11 @@ import net.mograsim.logic.model.am2900.util.SwitchWithDisplay; import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper; import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper.DebugState; import net.mograsim.logic.model.am2900.util.TestUtil; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; public class TestableAm2901Impl implements TestableAm2901 { - private GUIComponent am2901; + private ModelComponent am2901; private CoreManualSwitch I8, I7, I6, I5, I4, I3, I2, I1, I0; private CoreManualSwitch C; private CoreManualSwitch Cn; @@ -23,7 +23,7 @@ public class TestableAm2901Impl implements TestableAm2901 private CoreBitDisplay F_0, Cn_4, OVR, F3; private SwitchWithDisplay RAMn, RAMn_3, Qn, Qn_3; - private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "GUIAm2901"); + private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "Am2901"); @Override public Result run() diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java index dcf05694..7ead54a2 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java @@ -8,11 +8,11 @@ import net.mograsim.logic.model.SimpleLogicUIStandalone; import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects; import net.mograsim.logic.model.am2900.Am2900Loader; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.snippets.Renderer; public class Am2904Testbench @@ -26,8 +26,8 @@ public class Am2904Testbench public static void create(ViewModelModifiable model) { // TODO replace with proper ViewModel deserialization - DeserializedSubmodelComponent testbench = (DeserializedSubmodelComponent) IndirectGUIComponentCreator.createComponent(model, - "jsonfile:GUIAm2904Testbench.json", "testbench"); + DeserializedSubmodelComponent testbench = (DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(model, + "jsonfile:Am2904Testbench.json", "testbench"); testbench.setSize(1000, 1000); testbench.setOutlineRenderer(new Renderer() { @@ -55,9 +55,9 @@ public class Am2904Testbench { ((SubmodelComponent) vis.model.getComponentsByName().get("testbench")).submodel.getComponentsByName().values().forEach(c -> { - if (c instanceof GUIManualSwitch) + if (c instanceof ModelManualSwitch) { - GUIManualSwitch cCasted = (GUIManualSwitch) c; + ModelManualSwitch cCasted = (ModelManualSwitch) c; cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth)); } }); diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java index 6d926384..677a3e1b 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java @@ -7,12 +7,12 @@ import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.am2900.util.SwitchWithDisplay; import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper; import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper.DebugState; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; public class TestableAm2904Impl implements TestableAm2904 { - private GUIComponent am2904; + private ModelComponent am2904; private CoreManualSwitch I; private CoreManualSwitch C; private CoreManualSwitch Cx; @@ -26,7 +26,7 @@ public class TestableAm2904Impl implements TestableAm2904 private SwitchWithDisplay SIO0, SIOn, QIO0, QIOn; private SwitchWithDisplay YC, YN, YOVR, YZ; - private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "GUIAm2904"); + private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "Am2904"); @Override public void setup() diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java index 5a6b3d01..6185a755 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java @@ -7,14 +7,14 @@ import net.mograsim.logic.model.SimpleLogicUIStandalone; import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects; import net.mograsim.logic.model.am2900.Am2900Loader; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.Orientation; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; -import net.mograsim.logic.model.model.components.atomic.GUIClock; -import net.mograsim.logic.model.model.components.atomic.GUIClock.GUIClockParams; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; -import net.mograsim.logic.model.model.wires.GUIWire; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelClock; +import net.mograsim.logic.model.model.components.atomic.ModelClock.ModelClockParams; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; +import net.mograsim.logic.model.model.wires.ModelWire; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; public class Am2910Testbench { @@ -24,23 +24,23 @@ public class Am2910Testbench SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create, Am2910Testbench::beforeRun); } - @SuppressWarnings("unused") // for GUIWires being created + @SuppressWarnings("unused") // for ModelWires being created public static void create(ViewModelModifiable model) { - GUIComponent am2910 = IndirectGUIComponentCreator.createComponent(model, "GUIAm2910", "Am2910"); - GUIClock C = new GUIClock(model, new GUIClockParams(1000, Orientation.RIGHT)); - GUIManualSwitch D = new GUIManualSwitch(model, 12, "D"); - GUIManualSwitch _RLD = new GUIManualSwitch(model, 1, "_RLD"); - GUIManualSwitch _CC = new GUIManualSwitch(model, 1, "_CC"); - GUIManualSwitch _CCEN = new GUIManualSwitch(model, 1, "_CCEN"); - GUIManualSwitch I = new GUIManualSwitch(model, 4, "I"); - GUIManualSwitch CI = new GUIManualSwitch(model, 1, "CI"); - GUIManualSwitch _OE = new GUIManualSwitch(model, 1, "_OE"); - GUIBitDisplay _FULL = new GUIBitDisplay(model, 1, "_FULL"); - GUIBitDisplay _PL = new GUIBitDisplay(model, 1, "_PL"); - GUIBitDisplay _MAP = new GUIBitDisplay(model, 1, "_MAP"); - GUIBitDisplay _VECT = new GUIBitDisplay(model, 1, "_VECT"); - GUIBitDisplay Y = new GUIBitDisplay(model, 12, "Y"); + ModelComponent am2910 = IndirectModelComponentCreator.createComponent(model, "Am2910", "Am2910"); + ModelClock C = new ModelClock(model, new ModelClockParams(1000, Orientation.RIGHT)); + ModelManualSwitch D = new ModelManualSwitch(model, 12, "D"); + ModelManualSwitch _RLD = new ModelManualSwitch(model, 1, "_RLD"); + ModelManualSwitch _CC = new ModelManualSwitch(model, 1, "_CC"); + ModelManualSwitch _CCEN = new ModelManualSwitch(model, 1, "_CCEN"); + ModelManualSwitch I = new ModelManualSwitch(model, 4, "I"); + ModelManualSwitch CI = new ModelManualSwitch(model, 1, "CI"); + ModelManualSwitch _OE = new ModelManualSwitch(model, 1, "_OE"); + ModelBitDisplay _FULL = new ModelBitDisplay(model, 1, "_FULL"); + ModelBitDisplay _PL = new ModelBitDisplay(model, 1, "_PL"); + ModelBitDisplay _MAP = new ModelBitDisplay(model, 1, "_MAP"); + ModelBitDisplay _VECT = new ModelBitDisplay(model, 1, "_VECT"); + ModelBitDisplay Y = new ModelBitDisplay(model, 12, "Y"); C.moveTo(35, -35); D.moveTo(10, -20); @@ -56,28 +56,28 @@ public class Am2910Testbench Y.moveTo(40, 65); _OE.moveTo(60, 85); - new GUIWire(model, C.getOutputPin(), am2910.getPin("C"), new Point(60, -27.5)); - new GUIWire(model, D.getOutputPin(), am2910.getPin("D"), new Point(36, -12.5)); - new GUIWire(model, _RLD.getOutputPin(), am2910.getPin("_RLD"), new Point[0]); - new GUIWire(model, _CC.getOutputPin(), am2910.getPin("_CC")); - new GUIWire(model, _CCEN.getOutputPin(), am2910.getPin("_CCEN")); - new GUIWire(model, I.getOutputPin(), am2910.getPin("I")); - new GUIWire(model, CI.getOutputPin(), am2910.getPin("CI"), new Point(100, 52.5), new Point(100, 40)); - new GUIWire(model, am2910.getPin("_FULL"), _FULL.getInputPin(), new Point[0]); - new GUIWire(model, am2910.getPin("_PL"), _PL.getInputPin(), new Point(13, 92.5)); - new GUIWire(model, am2910.getPin("_MAP"), _MAP.getInputPin(), new Point(19, 112.5)); - new GUIWire(model, am2910.getPin("_VECT"), _VECT.getInputPin(), new Point(25, 132.5)); - new GUIWire(model, am2910.getPin("Y"), Y.getInputPin(), new Point(38, 72.5)); - new GUIWire(model, am2910.getPin("_OE"), _OE.getOutputPin()); + new ModelWire(model, C.getOutputPin(), am2910.getPin("C"), new Point(60, -27.5)); + new ModelWire(model, D.getOutputPin(), am2910.getPin("D"), new Point(36, -12.5)); + new ModelWire(model, _RLD.getOutputPin(), am2910.getPin("_RLD"), new Point[0]); + new ModelWire(model, _CC.getOutputPin(), am2910.getPin("_CC")); + new ModelWire(model, _CCEN.getOutputPin(), am2910.getPin("_CCEN")); + new ModelWire(model, I.getOutputPin(), am2910.getPin("I")); + new ModelWire(model, CI.getOutputPin(), am2910.getPin("CI"), new Point(100, 52.5), new Point(100, 40)); + new ModelWire(model, am2910.getPin("_FULL"), _FULL.getInputPin(), new Point[0]); + new ModelWire(model, am2910.getPin("_PL"), _PL.getInputPin(), new Point(13, 92.5)); + new ModelWire(model, am2910.getPin("_MAP"), _MAP.getInputPin(), new Point(19, 112.5)); + new ModelWire(model, am2910.getPin("_VECT"), _VECT.getInputPin(), new Point(25, 132.5)); + new ModelWire(model, am2910.getPin("Y"), Y.getInputPin(), new Point(38, 72.5)); + new ModelWire(model, am2910.getPin("_OE"), _OE.getOutputPin()); } public static void beforeRun(VisualisationObjects vis) { vis.model.getComponentsByName().values().forEach(c -> { - if (c instanceof GUIManualSwitch) + if (c instanceof ModelManualSwitch) { - GUIManualSwitch cCasted = (GUIManualSwitch) c; + ModelManualSwitch cCasted = (ModelManualSwitch) c; cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth)); } }); diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java index a7d25252..48b85698 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java @@ -5,12 +5,12 @@ import net.mograsim.logic.core.components.CoreManualSwitch; import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper; import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper.DebugState; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; public class TestableAm2910Impl implements TestableAm2910 { - private GUIComponent am2901; + private ModelComponent am2901; private CoreManualSwitch I; private CoreManualSwitch C; private CoreManualSwitch CI; @@ -23,7 +23,7 @@ public class TestableAm2910Impl implements TestableAm2910 private CoreBitDisplay Y; private CoreBitDisplay _PL, _MAP, _VECT; - private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "GUIAm2910"); + private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "Am2910"); @Override public void setup() diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/SwitchWithDisplay.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/SwitchWithDisplay.java index c5ee27b8..27261546 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/SwitchWithDisplay.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/SwitchWithDisplay.java @@ -4,38 +4,38 @@ import net.mograsim.logic.core.components.CoreBitDisplay; import net.mograsim.logic.core.components.CoreManualSwitch; import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; import net.mograsim.logic.model.util.ModellingTool; public class SwitchWithDisplay { private final Pin pin; - private final GUIBitDisplay guiBitDisplay; - private final GUIManualSwitch guiManualSwitch; + private final ModelBitDisplay modelBitDisplay; + private final ModelManualSwitch modelManualSwitch; public SwitchWithDisplay(ViewModelModifiable model, Pin target) { pin = target; - guiBitDisplay = new GUIBitDisplay(model, pin.logicWidth); - guiManualSwitch = new GUIManualSwitch(model, pin.logicWidth); + modelBitDisplay = new ModelBitDisplay(model, pin.logicWidth); + modelManualSwitch = new ModelManualSwitch(model, pin.logicWidth); ModellingTool tool = ModellingTool.createFor(model); - WireCrossPoint crossPoint = new WireCrossPoint(model, pin.logicWidth); - tool.connect(guiBitDisplay.getInputPin(), crossPoint); - tool.connect(guiManualSwitch.getOutputPin(), crossPoint); + ModelWireCrossPoint crossPoint = new ModelWireCrossPoint(model, pin.logicWidth); + tool.connect(modelBitDisplay.getInputPin(), crossPoint); + tool.connect(modelManualSwitch.getOutputPin(), crossPoint); } public final BitVector getDisplayedValue() { - return guiBitDisplay.getBitDisplay().getDisplayedValue(); + return modelBitDisplay.getBitDisplay().getDisplayedValue(); } public final void setState(BitVector bits) { - guiManualSwitch.getManualSwitch().setState(bits); + modelManualSwitch.getManualSwitch().setState(bits); } public final Pin getPin() @@ -45,21 +45,21 @@ public class SwitchWithDisplay public final CoreBitDisplay getBitDisplay() { - return guiBitDisplay.getBitDisplay(); + return modelBitDisplay.getBitDisplay(); } public final CoreManualSwitch getManualSwitch() { - return guiManualSwitch.getManualSwitch(); + return modelManualSwitch.getManualSwitch(); } - final GUIBitDisplay getGuiBitDisplay() + final ModelBitDisplay getModelBitDisplay() { - return guiBitDisplay; + return modelBitDisplay; } - final GUIManualSwitch getGuiManualSwitch() + final ModelManualSwitch getModelManualSwitch() { - return guiManualSwitch; + return modelManualSwitch; } } diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/TestEnvironmentHelper.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/TestEnvironmentHelper.java index 9707b9ae..bf8ee363 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/TestEnvironmentHelper.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/TestEnvironmentHelper.java @@ -21,15 +21,15 @@ import net.mograsim.logic.model.am2900.TestableCircuit; import net.mograsim.logic.model.am2900.TestableCircuit.Result; import net.mograsim.logic.model.model.ViewModel; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.util.ModellingTool; public class TestEnvironmentHelper @@ -40,12 +40,12 @@ public class TestEnvironmentHelper private Field componentField; private Optional timelineField = Optional.empty(); - private GUIComponent component; + private ModelComponent component; private Timeline timeline; private ViewModelModifiable viewModel; private ModellingTool modellingTool; - private HashMap idSwitchMap = new HashMap<>(); - private HashMap idDisplayMap = new HashMap<>(); + private HashMap idSwitchMap = new HashMap<>(); + private HashMap idDisplayMap = new HashMap<>(); private DebugState debug = DebugState.NO_DEBUG; private Set wireDebugChangeSet; @@ -61,7 +61,7 @@ public class TestEnvironmentHelper this.testEnvClass = testEnvInstance.getClass(); for (Field f : testEnvClass.getDeclaredFields()) { - if (GUIComponent.class.isAssignableFrom(f.getType())) + if (ModelComponent.class.isAssignableFrom(f.getType())) { componentField = f; componentField.setAccessible(true); @@ -82,7 +82,7 @@ public class TestEnvironmentHelper viewModel = new ViewModelModifiable(); modellingTool = ModellingTool.createFor(viewModel); Am2900Loader.setup(); - component = IndirectGUIComponentCreator.createComponent(viewModel, modelId); + component = IndirectModelComponentCreator.createComponent(viewModel, modelId); setField(componentField, component); component.getPins().values().forEach(this::extendModelPin); @@ -113,12 +113,12 @@ public class TestEnvironmentHelper Class type = f.getType(); if (CoreManualSwitch.class.isAssignableFrom(type)) { - GUIManualSwitch gms = new GUIManualSwitch(viewModel, p.logicWidth); + ModelManualSwitch gms = new ModelManualSwitch(viewModel, p.logicWidth); modellingTool.connect(p, gms.getOutputPin()); idSwitchMap.put(p.name, gms); } else if (CoreBitDisplay.class.isAssignableFrom(type)) { - GUIBitDisplay gbd = new GUIBitDisplay(viewModel, p.logicWidth); + ModelBitDisplay gbd = new ModelBitDisplay(viewModel, p.logicWidth); modellingTool.connect(p, gbd.getInputPin()); idDisplayMap.put(p.name, gbd); } else if (SwitchWithDisplay.class.isAssignableFrom(type)) @@ -148,14 +148,14 @@ public class TestEnvironmentHelper private void setupDebugging() { // Debug code - HashSet wiresIncludingSubmodels = new HashSet<>(); + HashSet wiresIncludingSubmodels = new HashSet<>(); Queue modelsToIterate = new LinkedList<>(); modelsToIterate.add(viewModel); while (modelsToIterate.size() > 0) { ViewModel model = modelsToIterate.poll(); wiresIncludingSubmodels.addAll(model.getWiresByName().values()); - for (GUIComponent comp : model.getComponentsByName().values()) + for (ModelComponent comp : model.getComponentsByName().values()) if (comp instanceof SubmodelComponent) modelsToIterate.offer(((SubmodelComponent) comp).submodel); } diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java index b6de1acb..6f3919a9 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java @@ -21,11 +21,11 @@ import net.mograsim.logic.model.editor.states.StateManager; import net.mograsim.logic.model.editor.ui.DialogManager; import net.mograsim.logic.model.editor.ui.EditorGUI; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler; import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer; import net.mograsim.logic.model.snippets.symbolrenderers.DefaultSymbolRenderer; @@ -36,7 +36,7 @@ public final class Editor final Set copyBuffer = new HashSet<>(); public final DeserializedSubmodelComponent toBeEdited; public final HandleManager handleManager; - final static Map identifierPerComponent = new HashMap<>(); + final static Map identifierPerComponent = new HashMap<>(); public final EditorGUI gui; public final StateManager stateManager; private final SaveLoadManager saveManager; @@ -127,7 +127,7 @@ public final class Editor selection.clear(); for (ComponentInfo info : copyBuffer) { - GUIComponent comp = addComponent(info.identifier, info.params); + ModelComponent comp = addComponent(info.identifier, info.params); ComponentHandle h = handleManager.getHandle(comp); h.reqMove(info.relX, info.relY); selection.add(h); @@ -154,7 +154,7 @@ public final class Editor String selected = gui.getAddListSelected(); try { - GUIComponent c = addComponent(selected, params); + ModelComponent c = addComponent(selected, params); selection.clear(); selection.add(handleManager.getHandle(c)); moveSelection(x, y); @@ -171,14 +171,14 @@ public final class Editor } } - private GUIComponent addComponent(String identifier, JsonElement params) + private ModelComponent addComponent(String identifier, JsonElement params) { - GUIComponent comp = IndirectGUIComponentCreator.createComponent(toBeEdited.getSubmodelModifiable(), identifier, params); + ModelComponent comp = IndirectModelComponentCreator.createComponent(toBeEdited.getSubmodelModifiable(), identifier, params); identifierPerComponent.put(comp, identifier); return comp; } - public static String getIdentifier(GUIComponent c) + public static String getIdentifier(ModelComponent c) { if (identifierPerComponent.containsKey(c)) return identifierPerComponent.get(c); @@ -225,7 +225,7 @@ public final class Editor @SuppressWarnings("unused") public void addWire(PinHandle a, PinHandle b) { - new GUIWire(toBeEdited.getSubmodelModifiable(), a.getPin(), b.getPin(), new Point[0]); + new ModelWire(toBeEdited.getSubmodelModifiable(), a.getPin(), b.getPin(), new Point[0]); } public static enum Snapping diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java index 7fecf7f0..ac387223 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java @@ -8,7 +8,7 @@ import org.eclipse.swt.widgets.Shell; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.serializing.SubmodelComponentSerializer; public class SaveLoadManager @@ -68,7 +68,7 @@ public class SaveLoadManager fdShell.dispose(); if (result != null) { - new Editor((DeserializedSubmodelComponent) IndirectGUIComponentCreator.createComponent(new ViewModelModifiable(), + new Editor((DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(new ViewModelModifiable(), "jsonfile:" + result)); } } diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java index 5fe0aa44..8281501d 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java @@ -11,18 +11,18 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.model.editor.Editor; import net.mograsim.logic.model.editor.Editor.ComponentInfo; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; public class ComponentHandle extends Handle { private final ViewModelModifiable model; - public final GUIComponent parent; + public final ModelComponent parent; private final static double POS_OFFSET = 2.0d; private final static double LENGTH_OFFSET = POS_OFFSET * 2; boolean selected = false; - public ComponentHandle(ViewModelModifiable model, GUIComponent parent) + public ComponentHandle(ViewModelModifiable model, ModelComponent parent) { super(4); this.model = model; diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/HandleManager.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/HandleManager.java index 51890038..37818e16 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/HandleManager.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/HandleManager.java @@ -17,9 +17,9 @@ import net.mograsim.logic.model.editor.Editor; import net.mograsim.logic.model.editor.states.EditorState; import net.mograsim.logic.model.editor.util.PrioritySet; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.MovablePin; import net.mograsim.logic.model.model.wires.Pin; @@ -27,11 +27,11 @@ public class HandleManager { private final Map handlePerPin; private final Map handlePerInterfacePin; - private final Map> pointHandlesPerWire; - private final Map handlePerWire; + private final Map> pointHandlesPerWire; + private final Map handlePerWire; private final Set handles; private final Set wirePointHandles; - private final Map handlePerComp; + private final Map handlePerComp; private final Collection> handleAddedListeners; private final Collection> handleRemovedListeners; @@ -84,9 +84,9 @@ public class HandleManager else { ViewModelModifiable model = editor.getSubmodel(); - Map compsByName = model.getComponentsByName(); - Set comps = new HashSet<>(compsByName.values()); - GUIComponent interfaceComp = compsByName.get(SubmodelComponent.SUBMODEL_INTERFACE_NAME); + Map compsByName = model.getComponentsByName(); + Set comps = new HashSet<>(compsByName.values()); + ModelComponent interfaceComp = compsByName.get(SubmodelComponent.SUBMODEL_INTERFACE_NAME); comps.remove(interfaceComp); registerInterfaceComponent(interfaceComp); comps.forEach(c -> registerComponent(c)); @@ -96,14 +96,14 @@ public class HandleManager } } - private void registerInterfaceComponent(GUIComponent c) + private void registerInterfaceComponent(ModelComponent c) { c.getPins().values().forEach(p -> addInterfacePinHandle(p)); c.addPinAddedListener(p -> addInterfacePinHandle(p)); c.addPinRemovedListener(p -> removeInterfacePinHandle(p)); } - private void registerComponent(GUIComponent c) + private void registerComponent(ModelComponent c) { addComponentHandle(c); @@ -113,7 +113,7 @@ public class HandleManager c.addPinRemovedListener(p -> removePinHandle(p)); } - private void registerWire(GUIWire wire) + private void registerWire(ModelWire wire) { Point[] path = wire.getPath(); AtomicInteger oldLength = new AtomicInteger(path == null ? 0 : path.length); @@ -152,14 +152,14 @@ public class HandleManager // -- Adding/Removing handles -- /// /////////////////////////////////// - private void addComponentHandle(GUIComponent c) + private void addComponentHandle(ModelComponent c) { ComponentHandle h = new ComponentHandle(editor.getSubmodel(), c); handlePerComp.put(c, h); addHandle(h); } - private void removeComponentHandle(GUIComponent c) + private void removeComponentHandle(ModelComponent c) { ComponentHandle h = handlePerComp.get(c); handlePerComp.remove(c); @@ -197,7 +197,7 @@ public class HandleManager removeHandle(h); } - private void addWirePointHandle(GUIWire w) + private void addWirePointHandle(ModelWire w) { List wireHandles = pointHandlesPerWire.get(w); WirePointHandle h; @@ -214,7 +214,7 @@ public class HandleManager addHandle(h); } - void destroyWirePointHandle(GUIWire owner, WirePointHandle h) + void destroyWirePointHandle(ModelWire owner, WirePointHandle h) { if (pointHandlesPerWire.containsKey(owner)) { @@ -226,7 +226,7 @@ public class HandleManager } } - private void removeWirePointHandles(GUIWire owner) + private void removeWirePointHandles(ModelWire owner) { if (!pointHandlesPerWire.containsKey(owner)) return; @@ -238,14 +238,14 @@ public class HandleManager pointHandlesPerWire.remove(owner); } - private void addWireHandle(GUIWire w) + private void addWireHandle(ModelWire w) { WireHandle h = new WireHandle(editor.getSubmodel(), w); handlePerWire.put(w, h); addHandle(h); } - private void removeWireHandle(GUIWire w) + private void removeWireHandle(ModelWire w) { WireHandle h = handlePerWire.get(w); handlePerWire.remove(w); @@ -270,12 +270,12 @@ public class HandleManager return handlePerPin.get(parent); } - public ComponentHandle getHandle(GUIComponent parent) + public ComponentHandle getHandle(ModelComponent parent) { return handlePerComp.get(parent); } - public WireHandle getHandle(GUIWire parent) + public WireHandle getHandle(ModelWire parent) { return handlePerWire.get(parent); } @@ -288,7 +288,7 @@ public class HandleManager /** * @return A Collection of the registered {@link WirePointHandle}s of the specified wire */ - public Collection getWirePointHandles(GUIWire parent) + public Collection getWirePointHandles(ModelWire parent) { return pointHandlesPerWire.get(parent).stream().collect(Collectors.toSet()); } diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java index be9a5ca6..d5e80c83 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java @@ -10,7 +10,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.model.editor.states.EditorState; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; public class WireHandle extends Handle { @@ -18,9 +18,9 @@ public class WireHandle extends Handle private final static double WIDTH = 2.0; private final static double WIDTH_SQUARED = WIDTH * WIDTH; private final ViewModelModifiable model; - public final GUIWire parent; + public final ModelWire parent; - public WireHandle(ViewModelModifiable model, GUIWire parent) + public WireHandle(ViewModelModifiable model, ModelWire parent) { super(5); this.model = model; @@ -104,7 +104,7 @@ public class WireHandle extends Handle } - private static Optional click(GUIWire w, double x, double y) + private static Optional click(ModelWire w, double x, double y) { Rectangle modifiedBounds = w.getBounds(); modifiedBounds.x -= WIDTH; diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WirePointHandle.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WirePointHandle.java index b7cc23e9..2947535f 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WirePointHandle.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WirePointHandle.java @@ -6,18 +6,18 @@ import org.eclipse.swt.widgets.Display; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.mograsim.logic.core.wires.CoreWire; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; public class WirePointHandle extends Handle { private final static int END_OFFSET = 4; private final HandleManager manager; private boolean selected = false; - public final GUIWire parent; + public final ModelWire parent; private int pointIndex; - public WirePointHandle(HandleManager manager, GUIWire parent, int pointIndex) + public WirePointHandle(HandleManager manager, ModelWire parent, int pointIndex) { super(3); this.manager = manager; diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorGUI.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorGUI.java index 0c4d0385..17e12ebb 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorGUI.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorGUI.java @@ -24,7 +24,7 @@ import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasOverlay; import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasUserInput; import net.mograsim.logic.model.editor.Editor; import net.mograsim.logic.model.editor.SaveLoadManager; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; public class EditorGUI { @@ -210,7 +210,7 @@ public class EditorGUI public void refreshAddList() { - addList.setItems(IndirectGUIComponentCreator.getStandardComponentIDs().keySet().stream().sorted().toArray(String[]::new)); + addList.setItems(IndirectModelComponentCreator.getStandardComponentIDs().keySet().stream().sorted().toArray(String[]::new)); addList.select(0); } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java index 115605f1..24bd3eab 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java @@ -23,10 +23,10 @@ import net.haspamelodica.swt.helper.zoomablecanvas.ZoomableCanvas; import net.mograsim.logic.core.types.Bit; import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.model.ViewModel; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelInterface; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; import net.mograsim.preferences.Preferences; /** @@ -67,7 +67,7 @@ public class LogicUICanvas extends ZoomableCanvas if (e.button == 1) { Point click = canvasToWorldCoords(e.x, e.y); - for (GUIComponent component : model.getComponentsByName().values()) + for (ModelComponent component : model.getComponentsByName().values()) if (component.getBounds().contains(click) && component.clicked(click.x, click.y)) { redraw(); @@ -83,8 +83,8 @@ public class LogicUICanvas extends ZoomableCanvas new Label(debugShell, SWT.NONE).setText("Target component: "); Combo componentSelector = new Combo(debugShell, SWT.DROP_DOWN | SWT.READ_ONLY); componentSelector.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); - List componentsByItemIndex = new ArrayList<>(); - Consumer compsChanged = c -> recalculateComponentSelector(componentsByItemIndex, componentSelector, model); + List componentsByItemIndex = new ArrayList<>(); + Consumer compsChanged = c -> recalculateComponentSelector(componentsByItemIndex, componentSelector, model); model.addComponentAddedListener(compsChanged); model.addComponentRemovedListener(compsChanged); debugShell.addListener(SWT.Dispose, e -> @@ -123,7 +123,7 @@ public class LogicUICanvas extends ZoomableCanvas int componentIndex = componentSelector.getSelectionIndex(); if (componentIndex < 0 || componentIndex >= componentsByItemIndex.size()) throw new RuntimeException("No component selected"); - GUIComponent target = componentsByItemIndex.get(componentIndex); + ModelComponent target = componentsByItemIndex.get(componentIndex); String valueString = valueText.getText(); Object value; if (radioBit.getSelection()) @@ -161,18 +161,18 @@ public class LogicUICanvas extends ZoomableCanvas debugShell.open(); } - private void recalculateComponentSelector(List componentsByItemIndex, Combo componentSelector, ViewModel model) + private void recalculateComponentSelector(List componentsByItemIndex, Combo componentSelector, ViewModel model) { componentsByItemIndex.clear(); componentSelector.setItems(); addComponentSelectorItems(componentsByItemIndex, "", componentSelector, model); } - private void addComponentSelectorItems(List componentsByItemIndex, String base, Combo componentSelector, ViewModel model) + private void addComponentSelectorItems(List componentsByItemIndex, String base, Combo componentSelector, ViewModel model) { model.getComponentsByName().values().stream().sorted((c1, c2) -> c1.name.compareTo(c2.name)).forEach(c -> { - if (!(c instanceof WireCrossPoint || c instanceof SubmodelInterface)) + if (!(c instanceof ModelWireCrossPoint || c instanceof SubmodelInterface)) { String item = base + c.name; componentsByItemIndex.add(c); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java index 36b165a1..b90e259e 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java @@ -6,7 +6,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.model.model.ViewModel; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.preferences.Preferences; @@ -36,7 +36,7 @@ public class LogicUIRenderer model.getComponentsByName().values().forEach(c -> renderComponent(gc, c, visibleRegion)); } - private static void renderComponent(GeneralGC gc, GUIComponent component, Rectangle visibleRegion) + private static void renderComponent(GeneralGC gc, ModelComponent component, Rectangle visibleRegion) { Rectangle bounds = component.getBounds(); double lw = gc.getLineWidth(); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/ClickableSubmodelComponentsTest.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/ClickableSubmodelComponentsTest.java index 41212009..ac09b1c5 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/ClickableSubmodelComponentsTest.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/ClickableSubmodelComponentsTest.java @@ -2,10 +2,10 @@ package net.mograsim.logic.model.examples; import net.mograsim.logic.model.SimpleLogicUIStandalone; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; public class ClickableSubmodelComponentsTest { @@ -16,20 +16,20 @@ public class ClickableSubmodelComponentsTest public static void createExample(ViewModelModifiable model) { - @SuppressWarnings("unused") // GUIWire + @SuppressWarnings("unused") // Wire SimpleRectangularSubmodelComponent comp = new SimpleRectangularSubmodelComponent(model, 1, "") { { setSubmodelScale(.4); setOutputPins("O0"); - GUIManualSwitch sw = new GUIManualSwitch(submodelModifiable, 1); - GUIBitDisplay bd = new GUIBitDisplay(submodelModifiable, 1); + ModelManualSwitch sw = new ModelManualSwitch(submodelModifiable, 1); + ModelBitDisplay bd = new ModelBitDisplay(submodelModifiable, 1); sw.moveTo(10, 5); bd.moveTo(50, 5); - new GUIWire(submodelModifiable, sw.getOutputPin(), bd.getInputPin()); + new ModelWire(submodelModifiable, sw.getOutputPin(), bd.getInputPin()); } }; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/RSLatchExample.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/RSLatchExample.java index 58f75550..2c71dc11 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/RSLatchExample.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/examples/RSLatchExample.java @@ -3,11 +3,11 @@ package net.mograsim.logic.model.examples; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.mograsim.logic.model.SimpleLogicUIStandalone; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; -import net.mograsim.logic.model.model.components.atomic.GUINotGate; -import net.mograsim.logic.model.model.components.atomic.GUIOrGate; -import net.mograsim.logic.model.model.wires.GUIWire; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelNotGate; +import net.mograsim.logic.model.model.components.atomic.ModelOrGate; +import net.mograsim.logic.model.model.wires.ModelWire; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; public class RSLatchExample { @@ -16,46 +16,46 @@ public class RSLatchExample SimpleLogicUIStandalone.executeVisualisation(RSLatchExample::createRSLatchExample); } - @SuppressWarnings("unused") // for GUIWires being created + @SuppressWarnings("unused") // for Wires being created public static void createRSLatchExample(ViewModelModifiable model) { - GUIManualSwitch rIn = new GUIManualSwitch(model, 1); + ModelManualSwitch rIn = new ModelManualSwitch(model, 1); rIn.moveTo(100, 100); - GUIManualSwitch sIn = new GUIManualSwitch(model, 1); + ModelManualSwitch sIn = new ModelManualSwitch(model, 1); sIn.moveTo(100, 200); - GUIOrGate or1 = new GUIOrGate(model, 1); + ModelOrGate or1 = new ModelOrGate(model, 1); or1.moveTo(160, 102.5); - new GUIWire(model, rIn.getOutputPin(), or1.getPin("A")); + new ModelWire(model, rIn.getOutputPin(), or1.getPin("A")); - GUIOrGate or2 = new GUIOrGate(model, 1); + ModelOrGate or2 = new ModelOrGate(model, 1); or2.moveTo(160, 192.5); - new GUIWire(model, sIn.getOutputPin(), or2.getPin("B")); + new ModelWire(model, sIn.getOutputPin(), or2.getPin("B")); - GUINotGate not1 = new GUINotGate(model, 1); + ModelNotGate not1 = new ModelNotGate(model, 1); not1.moveTo(200, 107.5); - new GUIWire(model, or1.getPin("Y"), not1.getPin("A")); + new ModelWire(model, or1.getPin("Y"), not1.getPin("A")); - GUINotGate not2 = new GUINotGate(model, 1); + ModelNotGate not2 = new ModelNotGate(model, 1); not2.moveTo(200, 197.5); - new GUIWire(model, or2.getPin("Y"), not2.getPin("A")); + new ModelWire(model, or2.getPin("Y"), not2.getPin("A")); - WireCrossPoint p1 = new WireCrossPoint(model, 1); + ModelWireCrossPoint p1 = new ModelWireCrossPoint(model, 1); p1.moveCenterTo(250, 112.5); - new GUIWire(model, not1.getPin("Y"), p1); - new GUIWire(model, p1, or2.getPin("A"), new Point(250, 130), new Point(140, 185), new Point(140, 197.5)); + new ModelWire(model, not1.getPin("Y"), p1); + new ModelWire(model, p1, or2.getPin("A"), new Point(250, 130), new Point(140, 185), new Point(140, 197.5)); - WireCrossPoint p2 = new WireCrossPoint(model, 1); + ModelWireCrossPoint p2 = new ModelWireCrossPoint(model, 1); p2.moveCenterTo(250, 202.5); - new GUIWire(model, not2.getPin("Y"), p2); - new GUIWire(model, p2, or1.getPin("B"), new Point(250, 185), new Point(140, 130), new Point(140, 117.5)); + new ModelWire(model, not2.getPin("Y"), p2); + new ModelWire(model, p2, or1.getPin("B"), new Point(250, 185), new Point(140, 130), new Point(140, 117.5)); - WireCrossPoint o1 = new WireCrossPoint(model, 1); + ModelWireCrossPoint o1 = new ModelWireCrossPoint(model, 1); o1.moveCenterTo(270, 112.5); - new GUIWire(model, p1, o1); + new ModelWire(model, p1, o1); - WireCrossPoint o2 = new WireCrossPoint(model, 1); + ModelWireCrossPoint o2 = new ModelWireCrossPoint(model, 1); o2.moveCenterTo(270, 202.5); - new GUIWire(model, p2, o2); + new ModelWire(model, p2, o2); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java index cf679cd1..b0d6a3cf 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java @@ -7,22 +7,22 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.ModelWire; public class ViewModel { - private final Map components; + private final Map components; private final Map componentDestroyFunctions; - private final Map componentsUnmodifiable; - private final Map wires; + private final Map componentsUnmodifiable; + private final Map wires; private final Map wireDestroyFunctions; - private final Map wiresUnmodifiable; + private final Map wiresUnmodifiable; - private final List> componentAddedListeners; - private final List> componentRemovedListeners; - private final List> wireAddedListeners; - private final List> wireRemovedListeners; + private final List> componentAddedListeners; + private final List> componentRemovedListeners; + private final List> wireAddedListeners; + private final List> wireRemovedListeners; private final List> redrawHandlerChangedListeners; private Runnable redrawHandler; @@ -45,11 +45,11 @@ public class ViewModel /** * Adds the given component to the list of components and calls all componentAddedListeners. Don't call this method from application - * code as it is automatically called in {@link GUIComponent}'s constructor. + * code as it is automatically called in {@link ModelComponent}'s constructor. * * @author Daniel Kirschten */ - protected void componentCreated(GUIComponent component, Runnable destroyed) + protected void componentCreated(ModelComponent component, Runnable destroyed) { if (components.containsKey(component.name)) throw new IllegalStateException("Don't add the same component twice!"); @@ -64,7 +64,7 @@ public class ViewModel * * @author Daniel Kirschten */ - protected void destroyComponent(GUIComponent component) + protected void destroyComponent(ModelComponent component) { componentDestroyFunctions.get(component.name).run(); if (!components.containsKey(component.name)) @@ -79,7 +79,7 @@ public class ViewModel * * @author Daniel Kirschten */ - protected void wireCreated(GUIWire wire, Runnable destroyed) + protected void wireCreated(ModelWire wire, Runnable destroyed) { if (wires.containsKey(wire.name)) throw new IllegalStateException("Don't add the same wire twice!"); @@ -94,7 +94,7 @@ public class ViewModel * * @author Daniel Kirschten */ - protected void destroyWire(GUIWire wire) + protected void destroyWire(ModelWire wire) { wireDestroyFunctions.get(wire.name).run(); if (!wires.containsKey(wire.name)) @@ -104,33 +104,33 @@ public class ViewModel requestRedraw(); } - public Map getComponentsByName() + public Map getComponentsByName() { return componentsUnmodifiable; } - public Map getWiresByName() + public Map getWiresByName() { return wiresUnmodifiable; } // @formatter:off - public void addComponentAddedListener (Consumer listener) {componentAddedListeners .add (listener);} - public void addComponentRemovedListener (Consumer listener) {componentRemovedListeners .add (listener);} - public void addWireAddedListener (Consumer listener) {wireAddedListeners .add (listener);} - public void addWireRemovedListener (Consumer listener) {wireRemovedListeners .add (listener);} + public void addComponentAddedListener (Consumer listener) {componentAddedListeners .add (listener);} + public void addComponentRemovedListener (Consumer listener) {componentRemovedListeners .add (listener);} + public void addWireAddedListener (Consumer listener) {wireAddedListeners .add (listener);} + public void addWireRemovedListener (Consumer listener) {wireRemovedListeners .add (listener);} public void addRedrawHandlerChangedListener (Consumer listener) {redrawHandlerChangedListeners.add (listener);} - public void removeComponentAddedListener (Consumer listener) {componentAddedListeners .remove(listener);} - public void removeComponentRemovedListener (Consumer listener) {componentRemovedListeners .remove(listener);} - public void removeWireAddedListener (Consumer listener) {wireAddedListeners .remove(listener);} - public void removeWireRemovedListener (Consumer listener) {wireRemovedListeners .remove(listener);} + public void removeComponentAddedListener (Consumer listener) {componentAddedListeners .remove(listener);} + public void removeComponentRemovedListener (Consumer listener) {componentRemovedListeners .remove(listener);} + public void removeWireAddedListener (Consumer listener) {wireAddedListeners .remove(listener);} + public void removeWireRemovedListener (Consumer listener) {wireRemovedListeners .remove(listener);} public void removeRedrawHandlerChangedListener(Consumer listener) {redrawHandlerChangedListeners.remove(listener);} - private void callComponentAddedListeners (GUIComponent c) {componentAddedListeners .forEach(l -> l.accept(c));} - private void callComponentRemovedListeners (GUIComponent c) {componentRemovedListeners .forEach(l -> l.accept(c));} - private void callWireAddedListeners (GUIWire w) {wireAddedListeners .forEach(l -> l.accept(w));} - private void callWireRemovedListeners (GUIWire w) {wireRemovedListeners .forEach(l -> l.accept(w));} + private void callComponentAddedListeners (ModelComponent c) {componentAddedListeners .forEach(l -> l.accept(c));} + private void callComponentRemovedListeners (ModelComponent c) {componentRemovedListeners .forEach(l -> l.accept(c));} + private void callWireAddedListeners (ModelWire w) {wireAddedListeners .forEach(l -> l.accept(w));} + private void callWireRemovedListeners (ModelWire w) {wireRemovedListeners .forEach(l -> l.accept(w));} private void callRedrawHandlerChangedListener(Runnable r) {redrawHandlerChangedListeners.forEach(l -> l.accept(r));} // @formatter:on diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java index b4fa4f53..7ebde10e 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java @@ -2,12 +2,12 @@ package net.mograsim.logic.model.model; import java.util.Set; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.ModelWire; public class ViewModelModifiable extends ViewModel { - public String getDefaultComponentName(GUIComponent component) + public String getDefaultComponentName(ModelComponent component) { Set componentNames = getComponentsByName().keySet(); // TODO get the ID of component @@ -40,25 +40,25 @@ public class ViewModelModifiable extends ViewModel } @Override - public void componentCreated(GUIComponent component, Runnable destroyed) + public void componentCreated(ModelComponent component, Runnable destroyed) { super.componentCreated(component, destroyed); } @Override - public void destroyComponent(GUIComponent component) + public void destroyComponent(ModelComponent component) { super.destroyComponent(component); } @Override - public void wireCreated(GUIWire wire, Runnable destroyed) + public void wireCreated(ModelWire wire, Runnable destroyed) { super.wireCreated(wire, destroyed); } @Override - public void destroyWire(GUIWire wire) + public void destroyWire(ModelWire wire) { super.destroyWire(wire); } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java deleted file mode 100644 index 63582600..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java +++ /dev/null @@ -1,312 +0,0 @@ -package net.mograsim.logic.model.model.components; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.JSONSerializable; -import net.mograsim.logic.model.snippets.HighLevelStateHandler; - -/** - * The base class for all GUI components.
- * A GUIComponent has a reference to the ViewModel it belongs to.
- * A GUIComponent has a name. This name is unique in the model the GUIComponent belongs to.
- * A GUIComponent has a position and size. The size can only be modified by subclasses. - * - * @author Daniel Kirschten - */ -public abstract class GUIComponent implements JSONSerializable -{ - /** - * The model this component is a part of. - */ - protected final ViewModelModifiable model; - /** - * The name of this component. Is unique for all components in its model. - */ - public final String name; - private final Rectangle bounds; - /** - * The list of all pins of this component by name. - */ - private final Map pinsByName; - /** - * An unmodifiable view of {@link #pinsByName}. - */ - protected final Map pinsUnmodifiable; - - private final List> componentMovedListeners; - private final List> componentResizedListeners; - private final List> pinAddedListeners; - private final List> pinRemovedListeners; - - private HighLevelStateHandler highLevelStateHandler; - - // creation and destruction - - public GUIComponent(ViewModelModifiable model, String name) - { - this.model = model; - this.name = name == null ? model.getDefaultComponentName(this) : name; - this.bounds = new Rectangle(0, 0, 0, 0); - this.pinsByName = new HashMap<>(); - this.pinsUnmodifiable = Collections.unmodifiableMap(pinsByName); - - this.componentMovedListeners = new ArrayList<>(); - this.componentResizedListeners = new ArrayList<>(); - this.pinAddedListeners = new ArrayList<>(); - this.pinRemovedListeners = new ArrayList<>(); - - // TODO this will crash the high level state debug shell because submodel is not yet set. - // The same problem exists in ViewModelModifiable.getDefaultComponentName; see there - model.componentCreated(this, this::destroyed); - } - - /** - * Destroys this component. This method is called from {@link ViewModelModifiable#componentDestroyed(GUIComponent) destroyComponent()} - * of the model this component is a part of.
- * When overriding, make sure to also call the original implementation. - * - * @author Daniel Kirschten - */ - protected void destroyed() - { - pinsByName.values().forEach(p -> pinRemovedListeners.forEach(l -> l.accept(p))); - } - - // pins - - /** - * Adds the given pin to this component and calls pinAddedListeners and redrawListeners. - * - * @throws IllegalArgumentException if the pin doesn't belong to this component - * @throws IllegalArgumentException if there already is a pin with the given name - * - * @author Daniel Kirschten - */ - protected void addPin(Pin pin) - { - if (pin.component != this) - throw new IllegalArgumentException("Can't add a pin not belonging to this component!"); - if (pinsByName.containsKey(pin.name)) - throw new IllegalArgumentException("Duplicate pin name: " + pin.name); - pinsByName.put(pin.name, pin); - callPinAddedListeners(pin); - model.requestRedraw(); - } - - /** - * Removes the given pin from this component and calls pinAddedListeners and redrawListeners. - * - * @throws NullPointerException if there was no pin with this name - * - * @author Daniel Kirschten - */ - protected void removePin(String name) - { - Pin pin = pinsByName.remove(name); - callPinRemovedListeners(pin); - model.requestRedraw(); - } - - /** - * Returns a collection of pins of this component. - * - * @author Daniel Kirschten - */ - public Map getPins() - { - return pinsUnmodifiable; - } - - /** - * Returns the pin with the given name of this component. - * - * @throws IllegalArgumentException if there is no pin with the given name - * - * @author Daniel Kirschten - */ - public Pin getPin(String name) - { - Pin pin = pinsByName.get(name); - if (pin == null) - throw new IllegalArgumentException("No pin with the name " + name); - return pin; - } - - // high-level access - - /** - * @author Daniel Kirschten - */ - protected void setHighLevelStateHandler(HighLevelStateHandler highLevelStateHandler) - { - this.highLevelStateHandler = highLevelStateHandler; - } - - public HighLevelStateHandler getHighLevelStateHandler() - { - return highLevelStateHandler; - } - - /** - * Gets the current value of the given high-level state.
- * See {@link HighLevelStateHandler} for an explanation of high-level state IDs. - * - * @see #setHighLevelState(String, Object) - * @see HighLevelStateHandler#getHighLevelState(String) - * - * @author Daniel Kirschten - */ - public Object getHighLevelState(String stateID) - { - return highLevelStateHandler.getHighLevelState(stateID); - } - - /** - * Sets the given high-level state to the given value.
- * See {@link HighLevelStateHandler} for an explanation of high-level state IDs. - * - * @see #getHighLevelState(String) - * @see HighLevelStateHandler#setHighLevelState(String, Object) - * - * @author Daniel Kirschten - */ - public void setHighLevelState(String stateID, Object newState) - { - highLevelStateHandler.setHighLevelState(stateID, newState); - } - - // "graphical" operations - - /** - * Sets the position of this component and calls componentMovedListeners and redrawListeners. - * - * @author Daniel Kirschten - */ - public void moveTo(double x, double y) - { - bounds.x = x; - bounds.y = y; - callComponentMovedListeners(); - model.requestRedraw(); - } - - /** - * Sets the size of this component and calls redrawListeners. - * - * @author Daniel Kirschten - */ - protected void setSize(double width, double height) - { - bounds.width = width; - bounds.height = height; - callComponentResizedListener(); - model.requestRedraw(); - } - - /** - * Returns the bounds of this component. Is a bit slower than {@link #getPosX()}, {@link #getPosY()}, {@link #getWidth}, - * {@link #getHeight}, because new objects are created. - * - * @author Daniel Kirschten - */ - public final Rectangle getBounds() - { - return new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); - } - - /** - * Returns the x coordinate of the position of this component. Is a bit faster than {@link #getBounds()} because no objects are created. - * - * @author Daniel Kirschten - */ - public double getPosX() - { - return bounds.x; - } - - /** - * Returns the y coordinate of the position of this component. Is a bit faster than {@link #getBounds()} because no objects are created. - * - * @author Daniel Kirschten - */ - public double getPosY() - { - return bounds.y; - } - - /** - * Returns the (graphical) width of this component. Is a bit faster than {@link #getBounds()} because no objects are created. - * - * @author Daniel Kirschten - */ - public double getWidth() - { - return bounds.width; - } - - /** - * Returns the height of this component. Is a bit faster than {@link #getBounds()} because no objects are created. - * - * @author Daniel Kirschten - */ - public double getHeight() - { - return bounds.height; - } - - /** - * Called when this component is clicked. Absolute coordinates of the click are given. Returns true if this component consumed this - * click. - * - * @author Daniel Kirschten - */ - @SuppressWarnings({ "static-method", "unused" }) // this method is inteded to be overridden - public boolean clicked(double x, double y) - { - return false; - } - - /** - * Render this component to the given gc, in absoulute coordinates. - * - * @author Daniel Kirschten - */ - public abstract void render(GeneralGC gc, Rectangle visibleRegion); - - // serializing - - @Override - public Object getParamsForSerializing(IdentifyParams idParams) - { - return null; - } - - // listeners - - // @formatter:off - public void addComponentMovedListener (Consumer listener) {componentMovedListeners .add (listener);} - public void addComponentResizedListener (Consumer listener) {componentResizedListeners.add (listener);} - public void addPinAddedListener (Consumer listener) {pinAddedListeners .add (listener);} - public void addPinRemovedListener (Consumer listener) {pinRemovedListeners .add (listener);} - - public void removeComponentMovedListener (Consumer listener) {componentMovedListeners .remove(listener);} - public void removeComponentResizedListener (Consumer listener) {componentResizedListeners.remove(listener);} - public void removePinAddedListener (Consumer listener) {pinAddedListeners .remove(listener);} - public void removePinRemovedListener (Consumer listener) {pinRemovedListeners .remove(listener);} - - private void callComponentMovedListeners ( ) {componentMovedListeners .forEach(l -> l.accept(this));} - private void callComponentResizedListener( ) {componentResizedListeners.forEach(l -> l.accept(this));} - private void callPinAddedListeners (Pin p) {pinAddedListeners .forEach(l -> l.accept(p ));} - private void callPinRemovedListeners (Pin p) {pinRemovedListeners .forEach(l -> l.accept(p ));} - // @formatter:on -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java new file mode 100644 index 00000000..6853e382 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java @@ -0,0 +1,312 @@ +package net.mograsim.logic.model.model.components; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.JSONSerializable; +import net.mograsim.logic.model.snippets.HighLevelStateHandler; + +/** + * The base class for all model components.
+ * A ModelComponent has a reference to the ViewModel it belongs to.
+ * A ModelComponent has a name. This name is unique in the model the ModelComponent belongs to.
+ * A ModelComponent has a position and size. The size can only be modified by subclasses. + * + * @author Daniel Kirschten + */ +public abstract class ModelComponent implements JSONSerializable +{ + /** + * The model this component is a part of. + */ + protected final ViewModelModifiable model; + /** + * The name of this component. Is unique for all components in its model. + */ + public final String name; + private final Rectangle bounds; + /** + * The list of all pins of this component by name. + */ + private final Map pinsByName; + /** + * An unmodifiable view of {@link #pinsByName}. + */ + protected final Map pinsUnmodifiable; + + private final List> componentMovedListeners; + private final List> componentResizedListeners; + private final List> pinAddedListeners; + private final List> pinRemovedListeners; + + private HighLevelStateHandler highLevelStateHandler; + + // creation and destruction + + public ModelComponent(ViewModelModifiable model, String name) + { + this.model = model; + this.name = name == null ? model.getDefaultComponentName(this) : name; + this.bounds = new Rectangle(0, 0, 0, 0); + this.pinsByName = new HashMap<>(); + this.pinsUnmodifiable = Collections.unmodifiableMap(pinsByName); + + this.componentMovedListeners = new ArrayList<>(); + this.componentResizedListeners = new ArrayList<>(); + this.pinAddedListeners = new ArrayList<>(); + this.pinRemovedListeners = new ArrayList<>(); + + // TODO this will crash the high level state debug shell because submodel is not yet set. + // The same problem exists in ViewModelModifiable.getDefaultComponentName; see there + model.componentCreated(this, this::destroyed); + } + + /** + * Destroys this component. This method is called from {@link ViewModelModifiable#componentDestroyed(ModelComponent) destroyComponent()} + * of the model this component is a part of.
+ * When overriding, make sure to also call the original implementation. + * + * @author Daniel Kirschten + */ + protected void destroyed() + { + pinsByName.values().forEach(p -> pinRemovedListeners.forEach(l -> l.accept(p))); + } + + // pins + + /** + * Adds the given pin to this component and calls pinAddedListeners and redrawListeners. + * + * @throws IllegalArgumentException if the pin doesn't belong to this component + * @throws IllegalArgumentException if there already is a pin with the given name + * + * @author Daniel Kirschten + */ + protected void addPin(Pin pin) + { + if (pin.component != this) + throw new IllegalArgumentException("Can't add a pin not belonging to this component!"); + if (pinsByName.containsKey(pin.name)) + throw new IllegalArgumentException("Duplicate pin name: " + pin.name); + pinsByName.put(pin.name, pin); + callPinAddedListeners(pin); + model.requestRedraw(); + } + + /** + * Removes the given pin from this component and calls pinAddedListeners and redrawListeners. + * + * @throws NullPointerException if there was no pin with this name + * + * @author Daniel Kirschten + */ + protected void removePin(String name) + { + Pin pin = pinsByName.remove(name); + callPinRemovedListeners(pin); + model.requestRedraw(); + } + + /** + * Returns a collection of pins of this component. + * + * @author Daniel Kirschten + */ + public Map getPins() + { + return pinsUnmodifiable; + } + + /** + * Returns the pin with the given name of this component. + * + * @throws IllegalArgumentException if there is no pin with the given name + * + * @author Daniel Kirschten + */ + public Pin getPin(String name) + { + Pin pin = pinsByName.get(name); + if (pin == null) + throw new IllegalArgumentException("No pin with the name " + name); + return pin; + } + + // high-level access + + /** + * @author Daniel Kirschten + */ + protected void setHighLevelStateHandler(HighLevelStateHandler highLevelStateHandler) + { + this.highLevelStateHandler = highLevelStateHandler; + } + + public HighLevelStateHandler getHighLevelStateHandler() + { + return highLevelStateHandler; + } + + /** + * Gets the current value of the given high-level state.
+ * See {@link HighLevelStateHandler} for an explanation of high-level state IDs. + * + * @see #setHighLevelState(String, Object) + * @see HighLevelStateHandler#getHighLevelState(String) + * + * @author Daniel Kirschten + */ + public Object getHighLevelState(String stateID) + { + return highLevelStateHandler.getHighLevelState(stateID); + } + + /** + * Sets the given high-level state to the given value.
+ * See {@link HighLevelStateHandler} for an explanation of high-level state IDs. + * + * @see #getHighLevelState(String) + * @see HighLevelStateHandler#setHighLevelState(String, Object) + * + * @author Daniel Kirschten + */ + public void setHighLevelState(String stateID, Object newState) + { + highLevelStateHandler.setHighLevelState(stateID, newState); + } + + // "graphical" operations + + /** + * Sets the position of this component and calls componentMovedListeners and redrawListeners. + * + * @author Daniel Kirschten + */ + public void moveTo(double x, double y) + { + bounds.x = x; + bounds.y = y; + callComponentMovedListeners(); + model.requestRedraw(); + } + + /** + * Sets the size of this component and calls redrawListeners. + * + * @author Daniel Kirschten + */ + protected void setSize(double width, double height) + { + bounds.width = width; + bounds.height = height; + callComponentResizedListener(); + model.requestRedraw(); + } + + /** + * Returns the bounds of this component. Is a bit slower than {@link #getPosX()}, {@link #getPosY()}, {@link #getWidth}, + * {@link #getHeight}, because new objects are created. + * + * @author Daniel Kirschten + */ + public final Rectangle getBounds() + { + return new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); + } + + /** + * Returns the x coordinate of the position of this component. Is a bit faster than {@link #getBounds()} because no objects are created. + * + * @author Daniel Kirschten + */ + public double getPosX() + { + return bounds.x; + } + + /** + * Returns the y coordinate of the position of this component. Is a bit faster than {@link #getBounds()} because no objects are created. + * + * @author Daniel Kirschten + */ + public double getPosY() + { + return bounds.y; + } + + /** + * Returns the (graphical) width of this component. Is a bit faster than {@link #getBounds()} because no objects are created. + * + * @author Daniel Kirschten + */ + public double getWidth() + { + return bounds.width; + } + + /** + * Returns the height of this component. Is a bit faster than {@link #getBounds()} because no objects are created. + * + * @author Daniel Kirschten + */ + public double getHeight() + { + return bounds.height; + } + + /** + * Called when this component is clicked. Absolute coordinates of the click are given. Returns true if this component consumed this + * click. + * + * @author Daniel Kirschten + */ + @SuppressWarnings({ "static-method", "unused" }) // this method is inteded to be overridden + public boolean clicked(double x, double y) + { + return false; + } + + /** + * Render this component to the given gc, in absoulute coordinates. + * + * @author Daniel Kirschten + */ + public abstract void render(GeneralGC gc, Rectangle visibleRegion); + + // serializing + + @Override + public Object getParamsForSerializing(IdentifyParams idParams) + { + return null; + } + + // listeners + + // @formatter:off + public void addComponentMovedListener (Consumer listener) {componentMovedListeners .add (listener);} + public void addComponentResizedListener (Consumer listener) {componentResizedListeners.add (listener);} + public void addPinAddedListener (Consumer listener) {pinAddedListeners .add (listener);} + public void addPinRemovedListener (Consumer listener) {pinRemovedListeners .add (listener);} + + public void removeComponentMovedListener (Consumer listener) {componentMovedListeners .remove(listener);} + public void removeComponentResizedListener (Consumer listener) {componentResizedListeners.remove(listener);} + public void removePinAddedListener (Consumer listener) {pinAddedListeners .remove(listener);} + public void removePinRemovedListener (Consumer listener) {pinRemovedListeners .remove(listener);} + + private void callComponentMovedListeners ( ) {componentMovedListeners .forEach(l -> l.accept(this));} + private void callComponentResizedListener( ) {componentResizedListeners.forEach(l -> l.accept(this));} + private void callPinAddedListeners (Pin p) {pinAddedListeners .forEach(l -> l.accept(p ));} + private void callPinRemovedListeners (Pin p) {pinRemovedListeners .forEach(l -> l.accept(p ));} + // @formatter:on +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java index f16eaa9b..06621baf 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java @@ -1,13 +1,13 @@ package net.mograsim.logic.model.model.components; /** - * This class simplifies the calculation of coordinates, especially for GUI components. + * This class simplifies the calculation of coordinates, especially for model components. *

* Supply it with the original width and height and an orientation, and use the methods {@link #newX(double, double)} and * {@link #newY(double, double)} to retrieve the new coordinates, relative to the upper left corner of {@link Orientation#RIGHT}. The * {@link #height()} and {@link #width()} methods return the width and height in the new orientation. *

- * This is meant to be used in the context of a a classic display coordinate system, as done in the {@link GUIComponent}s. + * This is meant to be used in the context of a a classic display coordinate system, as done in the {@link ModelComponent}s. * * @see Orientation * @author Christian Femers diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIAndGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIAndGate.java deleted file mode 100644 index d2f656f8..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIAndGate.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import net.mograsim.logic.core.components.gates.CoreAndGate; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; - -public class GUIAndGate extends SimpleRectangularGUIGate -{ - public GUIAndGate(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUIAndGate(ViewModelModifiable model, int logicWidth, String name) - { - super(model, "GUIAndGate", "&", false, logicWidth, name); - setInputCount(2);// TODO make variable - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUIAndGate.class, CoreAndGate::new)); - IndirectGUIComponentCreator.setComponentSupplier(GUIAndGate.class.getCanonicalName(), - (m, p, n) -> new GUIAndGate(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java deleted file mode 100644 index ac92ecba..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.graphics.Color; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.LogicObserver; -import net.mograsim.logic.core.components.CoreBitDisplay; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.BitDisplayAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.preferences.Preferences; - -public class GUIBitDisplay extends GUIComponent -{ - private static final double width = 20; - private static final double height = 15; - private static final double fontHeight = 5; - - public final int logicWidth; - private final Pin inputPin; - - private final LogicObserver logicObs; - private CoreBitDisplay bitDisplay; - - public GUIBitDisplay(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUIBitDisplay(ViewModelModifiable model, int logicWidth, String name) - { - super(model, name); - this.logicWidth = logicWidth; - logicObs = (i) -> model.requestRedraw(); - - setSize(width, height); - addPin(this.inputPin = new Pin(this, "", logicWidth, PinUsage.INPUT, 0, height / 2)); - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); - if (foreground != null) - gc.setForeground(foreground); - gc.drawRectangle(getBounds()); - String label = bitDisplay == null ? BitVectorFormatter.formatAsString(null) - : BitVectorFormatter.formatAsString(bitDisplay.getDisplayedValue()); - Font oldFont = gc.getFont(); - Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); - gc.setFont(labelFont); - Point textExtent = gc.textExtent(label); - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); - if (textColor != null) - gc.setForeground(textColor); - gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); - gc.setFont(oldFont); - } - - public void setLogicModelBinding(CoreBitDisplay bitDisplay) - { - if (this.bitDisplay != null) - this.bitDisplay.deregisterObserver(logicObs); - this.bitDisplay = bitDisplay; - if (bitDisplay != null) - bitDisplay.registerObserver(logicObs); - } - - public boolean hasLogicModelBinding() - { - return bitDisplay != null; - } - - public CoreBitDisplay getBitDisplay() - { - return bitDisplay; - } - - public Pin getInputPin() - { - return inputPin; - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUIBitDisplay"; - } - - @Override - public Integer getParamsForSerializing(IdentifyParams idParams) - { - return logicWidth; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new BitDisplayAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUIBitDisplay.class.getCanonicalName(), - (m, p, n) -> new GUIBitDisplay(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIClock.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIClock.java deleted file mode 100644 index 5d314cc1..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIClock.java +++ /dev/null @@ -1,166 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.graphics.Color; - -import com.google.gson.JsonSyntaxException; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.LogicObserver; -import net.mograsim.logic.core.components.CoreClock; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.Orientation; -import net.mograsim.logic.model.model.components.OrientationCalculator; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.ClockAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.util.JsonHandler; -import net.mograsim.preferences.Preferences; - -public class GUIClock extends GUIComponent -{ - private static final double width = 20; - private static final double height = 20; - private static final double fontHeight = 5; - - private final Pin outputPin; - - private final LogicObserver logicObs; - private GUIClockParams params; - private OrientationCalculator oc; - private CoreClock clock; - - public GUIClock(ViewModelModifiable model, GUIClockParams params) - { - this(model, params, null); - } - - public GUIClock(ViewModelModifiable model, GUIClockParams params, String name) - { - super(model, name); - this.params = params; - logicObs = (i) -> model.requestRedraw(); - - oc = new OrientationCalculator(params.orientation, width, height); - setSize(oc.width(), oc.height()); - - this.outputPin = new Pin(this, "", 1, PinUsage.OUTPUT, oc.newX(width, height / 2), oc.newY(width, height / 2)); - addPin(outputPin); - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); - if (foreground != null) - gc.setForeground(foreground); - gc.drawRectangle(getBounds()); - String label = clock == null ? "null" : (clock.isOn() ? "|" : "\u2015"); - Font oldFont = gc.getFont(); - Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); - gc.setFont(labelFont); - Point textExtent = gc.textExtent(label); - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); - if (textColor != null) - gc.setForeground(textColor); - gc.drawText(label, getPosX() + (oc.width() - textExtent.x) / 2, getPosY() + (oc.height() - textExtent.y) / 2, true); - gc.setFont(oldFont); - } - - public void setLogicModelBinding(CoreClock clock) - { - if (this.clock != null) - this.clock.deregisterObserver(logicObs); - this.clock = clock; - if (clock != null) - clock.registerObserver(logicObs); - } - - public boolean hasLogicModelBinding() - { - return clock != null; - } - - @Override - public Object getHighLevelState(String stateID) - { - switch (stateID) - { - case "out": - if (clock != null) - return clock.getOut().getInputValues(); - return null; - default: - return super.getHighLevelState(stateID); - } - } - - @Override - public void setHighLevelState(String stateID, Object newState) - { - switch (stateID) - { - case "out": - throw new UnsupportedOperationException("cannot set state of clock"); - default: - super.setHighLevelState(stateID, newState); - } - } - - public CoreClock getClock() - { - return clock; - } - - public Pin getOutputPin() - { - return outputPin; - } - - public int getDelta() - { - return params.delta; - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUIClock"; - } - - @Override - public GUIClockParams getParamsForSerializing(IdentifyParams idParams) - { - return params; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new ClockAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUIClock.class.getName(), (m, p, n) -> - { - GUIClockParams params = JsonHandler.fromJsonTree(p, GUIClockParams.class); - if (params == null) - throw new JsonSyntaxException("Invalid!!!"); - return new GUIClock(m, params, n); - }); - } - - public static class GUIClockParams - { - int delta; - Orientation orientation; - - public GUIClockParams(int delta, Orientation orientation) - { - this.delta = delta; - this.orientation = orientation; - } - } -} diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIFixedOutput.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIFixedOutput.java deleted file mode 100644 index 651daba9..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIFixedOutput.java +++ /dev/null @@ -1,77 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import java.util.Objects; - -import org.eclipse.swt.graphics.Color; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.FixedOutputAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.util.JsonHandler; -import net.mograsim.preferences.Preferences; - -public class GUIFixedOutput extends GUIComponent -{ - private static final double width = 20; - private static final double height = 20; - private static final double fontHeight = 5; - - public final BitVector bits; - - public GUIFixedOutput(ViewModelModifiable model, BitVector bits, String name) - { - super(model, name); - this.bits = bits; - setSize(width, height); - addPin(new Pin(this, "out", bits.length(), PinUsage.OUTPUT, width, height / 2)); - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUIFixedOutput"; - } - - @Override - public Object getParamsForSerializing(IdentifyParams idParams) - { - return bits; - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); - if (foreground != null) - gc.setForeground(foreground); - gc.drawRectangle(getBounds()); - String label = BitVectorFormatter.formatAsString(bits); - Font oldFont = gc.getFont(); - Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); - gc.setFont(labelFont); - Point textExtent = gc.textExtent(label); - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); - if (textColor != null) - gc.setForeground(textColor); - gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); - gc.setFont(oldFont); - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new FixedOutputAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUIFixedOutput.class.getCanonicalName(), - (m, p, n) -> new GUIFixedOutput(m, Objects.requireNonNull(JsonHandler.fromJsonTree(p, BitVector.class)), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java deleted file mode 100644 index 48bff90f..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java +++ /dev/null @@ -1,183 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.graphics.Color; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.LogicObserver; -import net.mograsim.logic.core.components.CoreManualSwitch; -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.ManualSwitchAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.preferences.Preferences; - -public class GUIManualSwitch extends GUIComponent -{ - private static final double width = 20; - private static final double height = 15; - private static final double fontHeight = 5; - private static final double heightMiniButtons = 4; // 0 is disabled - - public final int logicWidth; - private final Pin outputPin; - - private final LogicObserver logicObs; - private CoreManualSwitch logicSwitch; - - public GUIManualSwitch(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUIManualSwitch(ViewModelModifiable model, int logicWidth, String name) - { - super(model, name); - this.logicWidth = logicWidth; - logicObs = (i) -> model.requestRedraw(); - - setSize(width, height); - addPin(this.outputPin = new Pin(this, "", logicWidth, PinUsage.OUTPUT, width, height / 2)); - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); - if (foreground != null) - gc.setForeground(foreground); - gc.drawRectangle(getBounds()); - String label = BitVectorFormatter.formatAsString(logicSwitch == null ? null : logicSwitch.getValues()); - Font oldFont = gc.getFont(); - Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); - gc.setFont(labelFont); - Point textExtent = gc.textExtent(label); - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); - if (textColor != null) - gc.setForeground(textColor); - gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); - gc.setFont(oldFont); - - if (logicSwitch != null && logicWidth > 1 && heightMiniButtons > 0 && visibleRegion.y < getPosY() + heightMiniButtons) - { - double x = getPosX(); - double y = getPosY(); - gc.drawLine(x, y + heightMiniButtons, x + width, y + heightMiniButtons); - Color c = gc.getBackground(); - gc.setBackground(gc.getForeground()); - BitVector bv = logicSwitch.getValues(); - double part = width / bv.length(); - for (int i = 0; i < bv.length(); i++) - { - double start = x + part * i; - if (i != 0) - gc.drawLine(start, y, start, y + heightMiniButtons); - if (bv.getMSBit(i) == Bit.ONE) - { -// gc.fillRectangle(start, y, part, heightMiniButtons); // alternative, but not always visible what Bit is where - gc.drawLine(start, y, start + part, y + heightMiniButtons); - gc.drawLine(start + part, y, start, y + heightMiniButtons); - } - } - gc.setBackground(c); - } - } - - public void setLogicModelBinding(CoreManualSwitch logicSwitch) - { - if (this.logicSwitch != null) - this.logicSwitch.deregisterObserver(logicObs); - this.logicSwitch = logicSwitch; - if (logicSwitch != null) - logicSwitch.registerObserver(logicObs); - } - - public boolean hasLogicModelBinding() - { - return logicSwitch != null; - } - - @Override - public Object getHighLevelState(String stateID) - { - switch (stateID) - { - case "out": - if (logicSwitch != null) - return logicSwitch.getValues(); - return null; - default: - return super.getHighLevelState(stateID); - } - } - - @Override - public void setHighLevelState(String stateID, Object newState) - { - switch (stateID) - { - case "out": - if (logicSwitch != null) - logicSwitch.setState((BitVector) newState); - break; - default: - super.setHighLevelState(stateID, newState); - break; - } - } - - @Override - public boolean clicked(double x, double y) - { - if (logicSwitch != null) - { - if (heightMiniButtons > 0 && y - getPosY() < heightMiniButtons) - { - int part = (int) ((x - getPosX()) * logicWidth / width); - logicSwitch.setState(logicSwitch.getValues().withBitChanged(part, Bit::not)); - } else - { - logicSwitch.toggle(); - } - } - return true; - } - - public CoreManualSwitch getManualSwitch() - { - return logicSwitch; - } - - public Pin getOutputPin() - { - return outputPin; - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUIManualSwitch"; - } - - @Override - public Integer getParamsForSerializing(IdentifyParams idParams) - { - return logicWidth; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new ManualSwitchAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUIManualSwitch.class.getName(), - (m, p, n) -> new GUIManualSwitch(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java deleted file mode 100644 index 804f871d..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.SWT; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.MergerAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.preferences.ColorDefinition; -import net.mograsim.preferences.ColorManager; -import net.mograsim.preferences.Preferences; - -public class GUIMerger extends GUIComponent -{ - private static final double width = 10; - private static final double heightPerPin = 10; - - public final int logicWidth; - private final Pin outputPin; - - private final ReadEnd[] inputEnds; - private ReadEnd outputEnd; - - public GUIMerger(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUIMerger(ViewModelModifiable model, int logicWidth, String name) - { - super(model, name); - this.logicWidth = logicWidth; - setSize(width, (logicWidth - 1) * heightPerPin); - double inputHeight = (logicWidth - 1) * heightPerPin; - for (int i = 0; i < logicWidth; i++, inputHeight -= 10) - addPin(new Pin(this, "I" + i, 1, PinUsage.TRISTATE, 0, inputHeight)); - addPin(this.outputPin = new Pin(this, "O", logicWidth, PinUsage.TRISTATE, width, (logicWidth - 1) * heightPerPin / 2)); - inputEnds = new ReadEnd[logicWidth]; - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - double posX = getPosX(); - double posY = getPosY(); - - ColorDefinition c = BitVectorFormatter.formatAsColor(outputEnd); - if (c != null) - gc.setForeground(ColorManager.current().toColor(c)); - gc.setLineWidth( - Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); - double outLineY = posY + (logicWidth - 1) * heightPerPin / 2; - gc.drawLine(posX + width / 2, outLineY, posX + width, outLineY); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); - double inputHeight = posY; - for (int i = 0; i < logicWidth; i++, inputHeight += 10) - { - c = BitVectorFormatter.formatAsColor(inputEnds[i]); - if (c != null) - gc.setForeground(ColorManager.current().toColor(c)); - gc.drawLine(posX, inputHeight, posX + width / 2, inputHeight); - } - gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); - int oldLineCap = gc.getLineCap(); - int lineJoin = gc.getLineJoin(); - // TODO find better "replacement" for JOIN_BEVEL - // TODO it looks weird that the vertical line is thinner than the single multibit wire. - gc.setLineCap(lineJoin == SWT.JOIN_MITER ? SWT.CAP_SQUARE : lineJoin == SWT.JOIN_ROUND ? SWT.CAP_ROUND : SWT.CAP_SQUARE); - gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); - gc.setLineCap(oldLineCap); - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUIMerger"; - } - - @Override - public Integer getParamsForSerializing(IdentifyParams idParams) - { - return logicWidth; - } - - public void setLogicModelBinding(ReadEnd[] inputEnds, ReadEnd outputEnd) - { - System.arraycopy(inputEnds, 0, this.inputEnds, 0, logicWidth); - this.outputEnd = outputEnd; - } - - public Pin getOutputPin() - { - return outputPin; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new MergerAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUIMerger.class.getCanonicalName(), - (m, p, n) -> new GUIMerger(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUINandGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUINandGate.java deleted file mode 100644 index ddad7f82..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUINandGate.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import net.mograsim.logic.core.components.gates.CoreNandGate; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; - -public class GUINandGate extends SimpleRectangularGUIGate -{ - public GUINandGate(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUINandGate(ViewModelModifiable model, int logicWidth, String name) - { - super(model, "GUINandGate", "&", true, logicWidth, name); - setInputCount(2);// TODO make variable - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUINandGate.class, CoreNandGate::new)); - IndirectGUIComponentCreator.setComponentSupplier(GUINandGate.class.getCanonicalName(), - (m, p, n) -> new GUINandGate(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUINotGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUINotGate.java deleted file mode 100644 index c6001d29..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUINotGate.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import net.mograsim.logic.core.components.gates.CoreNotGate; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; - -public class GUINotGate extends SimpleRectangularGUIGate -{ - public GUINotGate(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUINotGate(ViewModelModifiable model, int logicWidth, String name) - { - super(model, "GUINotGate", "1", true, logicWidth, name); - setInputCount(1); - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUINotGate.class, (t, p, o, i) -> new CoreNotGate(t, p, i[0], o))); - IndirectGUIComponentCreator.setComponentSupplier(GUINotGate.class.getCanonicalName(), - (m, p, n) -> new GUINotGate(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIOrGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIOrGate.java deleted file mode 100644 index 6a6ba0f0..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIOrGate.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import net.mograsim.logic.core.components.gates.CoreOrGate; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; - -public class GUIOrGate extends SimpleRectangularGUIGate -{ - public GUIOrGate(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUIOrGate(ViewModelModifiable model, int logicWidth, String name) - { - super(model, "GUIOrGate", "\u22651", false, logicWidth, name);// ">=1" - setInputCount(2); - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUIOrGate.class, CoreOrGate::new)); - IndirectGUIComponentCreator.setComponentSupplier(GUIOrGate.class.getCanonicalName(), - (m, p, n) -> new GUIOrGate(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java deleted file mode 100644 index 4821c919..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.SWT; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.preferences.ColorDefinition; -import net.mograsim.preferences.ColorManager; -import net.mograsim.preferences.Preferences; - -public class GUISplitter extends GUIComponent -{ - private static final double width = 10; - private static final double heightPerPin = 10; - - public final int logicWidth; - private final Pin inputPin; - - private ReadEnd inputEnd; - private final ReadEnd[] outputEnds; - - public GUISplitter(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public GUISplitter(ViewModelModifiable model, int logicWidth, String name) - { - super(model, name); - this.logicWidth = logicWidth; - setSize(width, (logicWidth - 1) * heightPerPin); - addPin(this.inputPin = new Pin(this, "I", logicWidth, PinUsage.TRISTATE, 0, (logicWidth - 1) * heightPerPin / 2)); - double outputHeight = (logicWidth - 1) * heightPerPin; - for (int i = 0; i < logicWidth; i++, outputHeight -= 10) - addPin(new Pin(this, "O" + i, 1, PinUsage.TRISTATE, width, outputHeight)); - outputEnds = new ReadEnd[logicWidth]; - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - double posX = getPosX(); - double posY = getPosY(); - - ColorDefinition c = BitVectorFormatter.formatAsColor(inputEnd); - if (c != null) - gc.setForeground(ColorManager.current().toColor(c)); - gc.setLineWidth( - Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); - double inLineY = posY + (logicWidth - 1) * heightPerPin / 2; - gc.drawLine(posX, inLineY, posX + width / 2, inLineY); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); - double outputHeight = posY; - for (int i = 0; i < logicWidth; i++, outputHeight += 10) - { - c = BitVectorFormatter.formatAsColor(outputEnds[i]); - if (c != null) - gc.setForeground(ColorManager.current().toColor(c)); - gc.drawLine(posX + width / 2, outputHeight, posX + width, outputHeight); - } - gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); - int oldLineCap = gc.getLineCap(); - int lineJoin = gc.getLineJoin(); - // TODO find better "replacement" for JOIN_BEVEL - // TODO it looks weird that the vertical line is thinner than the single multibit wire. - gc.setLineCap(lineJoin == SWT.JOIN_MITER ? SWT.CAP_SQUARE : lineJoin == SWT.JOIN_ROUND ? SWT.CAP_ROUND : SWT.CAP_SQUARE); - gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); - gc.setLineCap(oldLineCap); - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUISplitter"; - } - - @Override - public Integer getParamsForSerializing(IdentifyParams idParams) - { - return logicWidth; - } - - public void setLogicModelBinding(ReadEnd inputEnd, ReadEnd[] outputEnds) - { - this.inputEnd = inputEnd; - System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth); - } - - public Pin getInputPin() - { - return inputPin; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUISplitter.class.getCanonicalName(), - (m, p, n) -> new GUISplitter(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUITriStateBuffer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUITriStateBuffer.java deleted file mode 100644 index 7f04102c..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUITriStateBuffer.java +++ /dev/null @@ -1,124 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.graphics.Color; - -import com.google.gson.JsonSyntaxException; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.Orientation; -import net.mograsim.logic.model.model.components.OrientationCalculator; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.TriStateBufferAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.util.JsonHandler; -import net.mograsim.preferences.Preferences; - -public class GUITriStateBuffer extends GUIComponent -{ - - private static final double width = 20; - private static final double height = 20; - private Pin input; - private Pin output; - private Pin enable; - private double[] path; - - private GUITriStateBufferParams params; - private OrientationCalculator oc; - - public GUITriStateBuffer(ViewModelModifiable model, GUITriStateBufferParams params) - { - this(model, params, null); - } - - public GUITriStateBuffer(ViewModelModifiable model, GUITriStateBufferParams params, String name) - { - super(model, name); - this.params = params; - - oc = new OrientationCalculator(params.orientation, width, height); - - double wHalf = width / 2; - double hHalf = height / 2; - double hQuar = height / 4; - - this.input = new Pin(this, "IN", params.logicWidth, PinUsage.INPUT, oc.newX(0, hHalf), oc.newY(0, hHalf)); - this.output = new Pin(this, "OUT", params.logicWidth, PinUsage.OUTPUT, oc.newX(width, hHalf), oc.newY(width, hHalf)); - this.enable = new Pin(this, "EN", 1, PinUsage.INPUT, oc.newX(wHalf, hQuar), oc.newY(wHalf, hQuar)); - this.path = new double[] { oc.newX(0, 0), oc.newY(0, 0), oc.newX(width, hHalf), oc.newY(width, hHalf), oc.newX(0, height), - oc.newY(0, height) }; - - setSize(oc.width(), oc.height()); - addPin(input); - addPin(output); - addPin(enable); - } - - public final Pin getInputPin() - { - return input; - } - - public final Pin getOutputPin() - { - return output; - } - - public final Pin getEnablePin() - { - return enable; - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); - if (foreground != null) - gc.setForeground(foreground); - double x = getPosX(); - double y = getPosY(); - gc.drawPolygon(new double[] { x + path[0], y + path[1], x + path[2], y + path[3], x + path[4], y + path[5] }); - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUITriStateBuffer"; - } - - @Override - public GUITriStateBufferParams getParamsForSerializing(IdentifyParams idParams) - { - return params; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new TriStateBufferAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUITriStateBuffer.class.getName(), (m, p, n) -> - { - GUITriStateBufferParams params = JsonHandler.fromJsonTree(p, GUITriStateBufferParams.class); - if (params == null) - throw new JsonSyntaxException("Invalid!!!"); - return new GUITriStateBuffer(m, params, n); - }); - } - - public static class GUITriStateBufferParams - { - int logicWidth; - Orientation orientation; - - public GUITriStateBufferParams(int logicWidth, Orientation orientation) - { - this.logicWidth = logicWidth; - this.orientation = orientation; - } - } -} diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java new file mode 100644 index 00000000..3707a783 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java @@ -0,0 +1,28 @@ +package net.mograsim.logic.model.model.components.atomic; + +import net.mograsim.logic.core.components.gates.CoreAndGate; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; + +public class ModelAndGate extends SimpleRectangularModelGate +{ + public ModelAndGate(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelAndGate(ViewModelModifiable model, int logicWidth, String name) + { + super(model, "AndGate", "&", false, logicWidth, name); + setInputCount(2);// TODO make variable + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(ModelAndGate.class, CoreAndGate::new)); + IndirectModelComponentCreator.setComponentSupplier(ModelAndGate.class.getCanonicalName(), + (m, p, n) -> new ModelAndGate(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelBitDisplay.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelBitDisplay.java new file mode 100644 index 00000000..b0a97b4d --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelBitDisplay.java @@ -0,0 +1,111 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.graphics.Color; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Font; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.LogicObserver; +import net.mograsim.logic.core.components.CoreBitDisplay; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.BitDisplayAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.preferences.Preferences; + +public class ModelBitDisplay extends ModelComponent +{ + private static final double width = 20; + private static final double height = 15; + private static final double fontHeight = 5; + + public final int logicWidth; + private final Pin inputPin; + + private final LogicObserver logicObs; + private CoreBitDisplay bitDisplay; + + public ModelBitDisplay(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelBitDisplay(ViewModelModifiable model, int logicWidth, String name) + { + super(model, name); + this.logicWidth = logicWidth; + logicObs = (i) -> model.requestRedraw(); + + setSize(width, height); + addPin(this.inputPin = new Pin(this, "", logicWidth, PinUsage.INPUT, 0, height / 2)); + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + if (foreground != null) + gc.setForeground(foreground); + gc.drawRectangle(getBounds()); + String label = bitDisplay == null ? BitVectorFormatter.formatAsString(null) + : BitVectorFormatter.formatAsString(bitDisplay.getDisplayedValue()); + Font oldFont = gc.getFont(); + Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); + gc.setFont(labelFont); + Point textExtent = gc.textExtent(label); + Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + if (textColor != null) + gc.setForeground(textColor); + gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); + gc.setFont(oldFont); + } + + public void setLogicModelBinding(CoreBitDisplay bitDisplay) + { + if (this.bitDisplay != null) + this.bitDisplay.deregisterObserver(logicObs); + this.bitDisplay = bitDisplay; + if (bitDisplay != null) + bitDisplay.registerObserver(logicObs); + } + + public boolean hasLogicModelBinding() + { + return bitDisplay != null; + } + + public CoreBitDisplay getBitDisplay() + { + return bitDisplay; + } + + public Pin getInputPin() + { + return inputPin; + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "BitDisplay"; + } + + @Override + public Integer getParamsForSerializing(IdentifyParams idParams) + { + return logicWidth; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new BitDisplayAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelBitDisplay.class.getCanonicalName(), + (m, p, n) -> new ModelBitDisplay(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelClock.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelClock.java new file mode 100644 index 00000000..2755ac10 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelClock.java @@ -0,0 +1,166 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.graphics.Color; + +import com.google.gson.JsonSyntaxException; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Font; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.LogicObserver; +import net.mograsim.logic.core.components.CoreClock; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.Orientation; +import net.mograsim.logic.model.model.components.OrientationCalculator; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.ClockAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.logic.model.util.JsonHandler; +import net.mograsim.preferences.Preferences; + +public class ModelClock extends ModelComponent +{ + private static final double width = 20; + private static final double height = 20; + private static final double fontHeight = 5; + + private final Pin outputPin; + + private final LogicObserver logicObs; + private ModelClockParams params; + private OrientationCalculator oc; + private CoreClock clock; + + public ModelClock(ViewModelModifiable model, ModelClockParams params) + { + this(model, params, null); + } + + public ModelClock(ViewModelModifiable model, ModelClockParams params, String name) + { + super(model, name); + this.params = params; + logicObs = (i) -> model.requestRedraw(); + + oc = new OrientationCalculator(params.orientation, width, height); + setSize(oc.width(), oc.height()); + + this.outputPin = new Pin(this, "", 1, PinUsage.OUTPUT, oc.newX(width, height / 2), oc.newY(width, height / 2)); + addPin(outputPin); + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + if (foreground != null) + gc.setForeground(foreground); + gc.drawRectangle(getBounds()); + String label = clock == null ? "null" : (clock.isOn() ? "|" : "\u2015"); + Font oldFont = gc.getFont(); + Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); + gc.setFont(labelFont); + Point textExtent = gc.textExtent(label); + Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + if (textColor != null) + gc.setForeground(textColor); + gc.drawText(label, getPosX() + (oc.width() - textExtent.x) / 2, getPosY() + (oc.height() - textExtent.y) / 2, true); + gc.setFont(oldFont); + } + + public void setLogicModelBinding(CoreClock clock) + { + if (this.clock != null) + this.clock.deregisterObserver(logicObs); + this.clock = clock; + if (clock != null) + clock.registerObserver(logicObs); + } + + public boolean hasLogicModelBinding() + { + return clock != null; + } + + @Override + public Object getHighLevelState(String stateID) + { + switch (stateID) + { + case "out": + if (clock != null) + return clock.getOut().getInputValues(); + return null; + default: + return super.getHighLevelState(stateID); + } + } + + @Override + public void setHighLevelState(String stateID, Object newState) + { + switch (stateID) + { + case "out": + throw new UnsupportedOperationException("cannot set state of clock"); + default: + super.setHighLevelState(stateID, newState); + } + } + + public CoreClock getClock() + { + return clock; + } + + public Pin getOutputPin() + { + return outputPin; + } + + public int getDelta() + { + return params.delta; + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "Clock"; + } + + @Override + public ModelClockParams getParamsForSerializing(IdentifyParams idParams) + { + return params; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new ClockAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelClock.class.getName(), (m, p, n) -> + { + ModelClockParams params = JsonHandler.fromJsonTree(p, ModelClockParams.class); + if (params == null) + throw new JsonSyntaxException("Invalid!!!"); + return new ModelClock(m, params, n); + }); + } + + public static class ModelClockParams + { + int delta; + Orientation orientation; + + public ModelClockParams(int delta, Orientation orientation) + { + this.delta = delta; + this.orientation = orientation; + } + } +} diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelFixedOutput.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelFixedOutput.java new file mode 100644 index 00000000..b052dedd --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelFixedOutput.java @@ -0,0 +1,77 @@ +package net.mograsim.logic.model.model.components.atomic; + +import java.util.Objects; + +import org.eclipse.swt.graphics.Color; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Font; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.FixedOutputAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.logic.model.util.JsonHandler; +import net.mograsim.preferences.Preferences; + +public class ModelFixedOutput extends ModelComponent +{ + private static final double width = 20; + private static final double height = 20; + private static final double fontHeight = 5; + + public final BitVector bits; + + public ModelFixedOutput(ViewModelModifiable model, BitVector bits, String name) + { + super(model, name); + this.bits = bits; + setSize(width, height); + addPin(new Pin(this, "out", bits.length(), PinUsage.OUTPUT, width, height / 2)); + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "FixedOutput"; + } + + @Override + public Object getParamsForSerializing(IdentifyParams idParams) + { + return bits; + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + if (foreground != null) + gc.setForeground(foreground); + gc.drawRectangle(getBounds()); + String label = BitVectorFormatter.formatAsString(bits); + Font oldFont = gc.getFont(); + Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); + gc.setFont(labelFont); + Point textExtent = gc.textExtent(label); + Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + if (textColor != null) + gc.setForeground(textColor); + gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); + gc.setFont(oldFont); + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new FixedOutputAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelFixedOutput.class.getCanonicalName(), + (m, p, n) -> new ModelFixedOutput(m, Objects.requireNonNull(JsonHandler.fromJsonTree(p, BitVector.class)), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java new file mode 100644 index 00000000..d0a0b15b --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java @@ -0,0 +1,183 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.graphics.Color; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Font; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.LogicObserver; +import net.mograsim.logic.core.components.CoreManualSwitch; +import net.mograsim.logic.core.types.Bit; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.ManualSwitchAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.preferences.Preferences; + +public class ModelManualSwitch extends ModelComponent +{ + private static final double width = 20; + private static final double height = 15; + private static final double fontHeight = 5; + private static final double heightMiniButtons = 4; // 0 is disabled + + public final int logicWidth; + private final Pin outputPin; + + private final LogicObserver logicObs; + private CoreManualSwitch logicSwitch; + + public ModelManualSwitch(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelManualSwitch(ViewModelModifiable model, int logicWidth, String name) + { + super(model, name); + this.logicWidth = logicWidth; + logicObs = (i) -> model.requestRedraw(); + + setSize(width, height); + addPin(this.outputPin = new Pin(this, "", logicWidth, PinUsage.OUTPUT, width, height / 2)); + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + if (foreground != null) + gc.setForeground(foreground); + gc.drawRectangle(getBounds()); + String label = BitVectorFormatter.formatAsString(logicSwitch == null ? null : logicSwitch.getValues()); + Font oldFont = gc.getFont(); + Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); + gc.setFont(labelFont); + Point textExtent = gc.textExtent(label); + Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + if (textColor != null) + gc.setForeground(textColor); + gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); + gc.setFont(oldFont); + + if (logicSwitch != null && logicWidth > 1 && heightMiniButtons > 0 && visibleRegion.y < getPosY() + heightMiniButtons) + { + double x = getPosX(); + double y = getPosY(); + gc.drawLine(x, y + heightMiniButtons, x + width, y + heightMiniButtons); + Color c = gc.getBackground(); + gc.setBackground(gc.getForeground()); + BitVector bv = logicSwitch.getValues(); + double part = width / bv.length(); + for (int i = 0; i < bv.length(); i++) + { + double start = x + part * i; + if (i != 0) + gc.drawLine(start, y, start, y + heightMiniButtons); + if (bv.getMSBit(i) == Bit.ONE) + { +// gc.fillRectangle(start, y, part, heightMiniButtons); // alternative, but not always visible what Bit is where + gc.drawLine(start, y, start + part, y + heightMiniButtons); + gc.drawLine(start + part, y, start, y + heightMiniButtons); + } + } + gc.setBackground(c); + } + } + + public void setLogicModelBinding(CoreManualSwitch logicSwitch) + { + if (this.logicSwitch != null) + this.logicSwitch.deregisterObserver(logicObs); + this.logicSwitch = logicSwitch; + if (logicSwitch != null) + logicSwitch.registerObserver(logicObs); + } + + public boolean hasLogicModelBinding() + { + return logicSwitch != null; + } + + @Override + public Object getHighLevelState(String stateID) + { + switch (stateID) + { + case "out": + if (logicSwitch != null) + return logicSwitch.getValues(); + return null; + default: + return super.getHighLevelState(stateID); + } + } + + @Override + public void setHighLevelState(String stateID, Object newState) + { + switch (stateID) + { + case "out": + if (logicSwitch != null) + logicSwitch.setState((BitVector) newState); + break; + default: + super.setHighLevelState(stateID, newState); + break; + } + } + + @Override + public boolean clicked(double x, double y) + { + if (logicSwitch != null) + { + if (heightMiniButtons > 0 && y - getPosY() < heightMiniButtons) + { + int part = (int) ((x - getPosX()) * logicWidth / width); + logicSwitch.setState(logicSwitch.getValues().withBitChanged(part, Bit::not)); + } else + { + logicSwitch.toggle(); + } + } + return true; + } + + public CoreManualSwitch getManualSwitch() + { + return logicSwitch; + } + + public Pin getOutputPin() + { + return outputPin; + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "ManualSwitch"; + } + + @Override + public Integer getParamsForSerializing(IdentifyParams idParams) + { + return logicWidth; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new ManualSwitchAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelManualSwitch.class.getName(), + (m, p, n) -> new ModelManualSwitch(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelMerger.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelMerger.java new file mode 100644 index 00000000..c2856e13 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelMerger.java @@ -0,0 +1,111 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.SWT; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.MergerAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.preferences.ColorDefinition; +import net.mograsim.preferences.ColorManager; +import net.mograsim.preferences.Preferences; + +public class ModelMerger extends ModelComponent +{ + private static final double width = 10; + private static final double heightPerPin = 10; + + public final int logicWidth; + private final Pin outputPin; + + private final ReadEnd[] inputEnds; + private ReadEnd outputEnd; + + public ModelMerger(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelMerger(ViewModelModifiable model, int logicWidth, String name) + { + super(model, name); + this.logicWidth = logicWidth; + setSize(width, (logicWidth - 1) * heightPerPin); + double inputHeight = (logicWidth - 1) * heightPerPin; + for (int i = 0; i < logicWidth; i++, inputHeight -= 10) + addPin(new Pin(this, "I" + i, 1, PinUsage.TRISTATE, 0, inputHeight)); + addPin(this.outputPin = new Pin(this, "O", logicWidth, PinUsage.TRISTATE, width, (logicWidth - 1) * heightPerPin / 2)); + inputEnds = new ReadEnd[logicWidth]; + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + double posX = getPosX(); + double posY = getPosY(); + + ColorDefinition c = BitVectorFormatter.formatAsColor(outputEnd); + if (c != null) + gc.setForeground(ColorManager.current().toColor(c)); + gc.setLineWidth( + Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); + double outLineY = posY + (logicWidth - 1) * heightPerPin / 2; + gc.drawLine(posX + width / 2, outLineY, posX + width, outLineY); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); + double inputHeight = posY; + for (int i = 0; i < logicWidth; i++, inputHeight += 10) + { + c = BitVectorFormatter.formatAsColor(inputEnds[i]); + if (c != null) + gc.setForeground(ColorManager.current().toColor(c)); + gc.drawLine(posX, inputHeight, posX + width / 2, inputHeight); + } + gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); + int oldLineCap = gc.getLineCap(); + int lineJoin = gc.getLineJoin(); + // TODO find better "replacement" for JOIN_BEVEL + // TODO it looks weird that the vertical line is thinner than the single multibit wire. + gc.setLineCap(lineJoin == SWT.JOIN_MITER ? SWT.CAP_SQUARE : lineJoin == SWT.JOIN_ROUND ? SWT.CAP_ROUND : SWT.CAP_SQUARE); + gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); + gc.setLineCap(oldLineCap); + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "Merger"; + } + + @Override + public Integer getParamsForSerializing(IdentifyParams idParams) + { + return logicWidth; + } + + public void setLogicModelBinding(ReadEnd[] inputEnds, ReadEnd outputEnd) + { + System.arraycopy(inputEnds, 0, this.inputEnds, 0, logicWidth); + this.outputEnd = outputEnd; + } + + public Pin getOutputPin() + { + return outputPin; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new MergerAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelMerger.class.getCanonicalName(), + (m, p, n) -> new ModelMerger(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNandGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNandGate.java new file mode 100644 index 00000000..f2acc944 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNandGate.java @@ -0,0 +1,28 @@ +package net.mograsim.logic.model.model.components.atomic; + +import net.mograsim.logic.core.components.gates.CoreNandGate; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; + +public class ModelNandGate extends SimpleRectangularModelGate +{ + public ModelNandGate(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelNandGate(ViewModelModifiable model, int logicWidth, String name) + { + super(model, "NandGate", "&", true, logicWidth, name); + setInputCount(2);// TODO make variable + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(ModelNandGate.class, CoreNandGate::new)); + IndirectModelComponentCreator.setComponentSupplier(ModelNandGate.class.getCanonicalName(), + (m, p, n) -> new ModelNandGate(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNotGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNotGate.java new file mode 100644 index 00000000..0262c8f3 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNotGate.java @@ -0,0 +1,29 @@ +package net.mograsim.logic.model.model.components.atomic; + +import net.mograsim.logic.core.components.gates.CoreNotGate; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; + +public class ModelNotGate extends SimpleRectangularModelGate +{ + public ModelNotGate(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelNotGate(ViewModelModifiable model, int logicWidth, String name) + { + super(model, "NotGate", "1", true, logicWidth, name); + setInputCount(1); + } + + static + { + ViewLogicModelAdapter + .addComponentAdapter(new SimpleGateAdapter<>(ModelNotGate.class, (t, p, o, i) -> new CoreNotGate(t, p, i[0], o))); + IndirectModelComponentCreator.setComponentSupplier(ModelNotGate.class.getCanonicalName(), + (m, p, n) -> new ModelNotGate(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelOrGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelOrGate.java new file mode 100644 index 00000000..de0aa7f7 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelOrGate.java @@ -0,0 +1,28 @@ +package net.mograsim.logic.model.model.components.atomic; + +import net.mograsim.logic.core.components.gates.CoreOrGate; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; + +public class ModelOrGate extends SimpleRectangularModelGate +{ + public ModelOrGate(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelOrGate(ViewModelModifiable model, int logicWidth, String name) + { + super(model, "OrGate", "\u22651", false, logicWidth, name);// ">=1" + setInputCount(2); + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(ModelOrGate.class, CoreOrGate::new)); + IndirectModelComponentCreator.setComponentSupplier(ModelOrGate.class.getCanonicalName(), + (m, p, n) -> new ModelOrGate(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelSplitter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelSplitter.java new file mode 100644 index 00000000..2f7a98de --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelSplitter.java @@ -0,0 +1,111 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.SWT; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.preferences.ColorDefinition; +import net.mograsim.preferences.ColorManager; +import net.mograsim.preferences.Preferences; + +public class ModelSplitter extends ModelComponent +{ + private static final double width = 10; + private static final double heightPerPin = 10; + + public final int logicWidth; + private final Pin inputPin; + + private ReadEnd inputEnd; + private final ReadEnd[] outputEnds; + + public ModelSplitter(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelSplitter(ViewModelModifiable model, int logicWidth, String name) + { + super(model, name); + this.logicWidth = logicWidth; + setSize(width, (logicWidth - 1) * heightPerPin); + addPin(this.inputPin = new Pin(this, "I", logicWidth, PinUsage.TRISTATE, 0, (logicWidth - 1) * heightPerPin / 2)); + double outputHeight = (logicWidth - 1) * heightPerPin; + for (int i = 0; i < logicWidth; i++, outputHeight -= 10) + addPin(new Pin(this, "O" + i, 1, PinUsage.TRISTATE, width, outputHeight)); + outputEnds = new ReadEnd[logicWidth]; + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + double posX = getPosX(); + double posY = getPosY(); + + ColorDefinition c = BitVectorFormatter.formatAsColor(inputEnd); + if (c != null) + gc.setForeground(ColorManager.current().toColor(c)); + gc.setLineWidth( + Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); + double inLineY = posY + (logicWidth - 1) * heightPerPin / 2; + gc.drawLine(posX, inLineY, posX + width / 2, inLineY); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); + double outputHeight = posY; + for (int i = 0; i < logicWidth; i++, outputHeight += 10) + { + c = BitVectorFormatter.formatAsColor(outputEnds[i]); + if (c != null) + gc.setForeground(ColorManager.current().toColor(c)); + gc.drawLine(posX + width / 2, outputHeight, posX + width, outputHeight); + } + gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); + int oldLineCap = gc.getLineCap(); + int lineJoin = gc.getLineJoin(); + // TODO find better "replacement" for JOIN_BEVEL + // TODO it looks weird that the vertical line is thinner than the single multibit wire. + gc.setLineCap(lineJoin == SWT.JOIN_MITER ? SWT.CAP_SQUARE : lineJoin == SWT.JOIN_ROUND ? SWT.CAP_ROUND : SWT.CAP_SQUARE); + gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); + gc.setLineCap(oldLineCap); + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "Splitter"; + } + + @Override + public Integer getParamsForSerializing(IdentifyParams idParams) + { + return logicWidth; + } + + public void setLogicModelBinding(ReadEnd inputEnd, ReadEnd[] outputEnds) + { + this.inputEnd = inputEnd; + System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth); + } + + public Pin getInputPin() + { + return inputPin; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelSplitter.class.getCanonicalName(), + (m, p, n) -> new ModelSplitter(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTextComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTextComponent.java new file mode 100644 index 00000000..628cb13a --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTextComponent.java @@ -0,0 +1,72 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.graphics.Color; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.NoLogicAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.preferences.Preferences; + +//TODO clean size calculation mess +public class ModelTextComponent extends ModelComponent +{ + private final String text; + private boolean calculatedSize; + + public ModelTextComponent(ViewModelModifiable model, String text) + { + this(model, text, null); + } + + public ModelTextComponent(ViewModelModifiable model, String text, String name) + { + super(model, name); + this.text = text; + // If size is unset, it defaults to 0, which could prohibit this component from being rendered, which would prohibit the size being + // set to a better guess + setSize(1, 1); + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + if (!calculatedSize) + { + calculatedSize = true; + Point textExtent = gc.textExtent(text); + setSize(textExtent.x, textExtent.y); + } + + Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + if (textColor != null) + gc.setForeground(textColor); + gc.drawText(text, getPosX(), getPosY(), true); + } + + // serializing + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "TextComponent"; + } + + @Override + public String getParamsForSerializing(IdentifyParams idParams) + { + return text; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(ModelTextComponent.class)); + IndirectModelComponentCreator.setComponentSupplier(ModelTextComponent.class.getName(), + (m, p, n) -> new ModelTextComponent(m, p.getAsString(), n)); + } +} diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTriStateBuffer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTriStateBuffer.java new file mode 100644 index 00000000..04f7caee --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTriStateBuffer.java @@ -0,0 +1,124 @@ +package net.mograsim.logic.model.model.components.atomic; + +import org.eclipse.swt.graphics.Color; + +import com.google.gson.JsonSyntaxException; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.Orientation; +import net.mograsim.logic.model.model.components.OrientationCalculator; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.TriStateBufferAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.logic.model.util.JsonHandler; +import net.mograsim.preferences.Preferences; + +public class ModelTriStateBuffer extends ModelComponent +{ + + private static final double width = 20; + private static final double height = 20; + private Pin input; + private Pin output; + private Pin enable; + private double[] path; + + private ModelTriStateBufferParams params; + private OrientationCalculator oc; + + public ModelTriStateBuffer(ViewModelModifiable model, ModelTriStateBufferParams params) + { + this(model, params, null); + } + + public ModelTriStateBuffer(ViewModelModifiable model, ModelTriStateBufferParams params, String name) + { + super(model, name); + this.params = params; + + oc = new OrientationCalculator(params.orientation, width, height); + + double wHalf = width / 2; + double hHalf = height / 2; + double hQuar = height / 4; + + this.input = new Pin(this, "IN", params.logicWidth, PinUsage.INPUT, oc.newX(0, hHalf), oc.newY(0, hHalf)); + this.output = new Pin(this, "OUT", params.logicWidth, PinUsage.OUTPUT, oc.newX(width, hHalf), oc.newY(width, hHalf)); + this.enable = new Pin(this, "EN", 1, PinUsage.INPUT, oc.newX(wHalf, hQuar), oc.newY(wHalf, hQuar)); + this.path = new double[] { oc.newX(0, 0), oc.newY(0, 0), oc.newX(width, hHalf), oc.newY(width, hHalf), oc.newX(0, height), + oc.newY(0, height) }; + + setSize(oc.width(), oc.height()); + addPin(input); + addPin(output); + addPin(enable); + } + + public final Pin getInputPin() + { + return input; + } + + public final Pin getOutputPin() + { + return output; + } + + public final Pin getEnablePin() + { + return enable; + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + if (foreground != null) + gc.setForeground(foreground); + double x = getPosX(); + double y = getPosY(); + gc.drawPolygon(new double[] { x + path[0], y + path[1], x + path[2], y + path[3], x + path[4], y + path[5] }); + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "TriStateBuffer"; + } + + @Override + public ModelTriStateBufferParams getParamsForSerializing(IdentifyParams idParams) + { + return params; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new TriStateBufferAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelTriStateBuffer.class.getName(), (m, p, n) -> + { + ModelTriStateBufferParams params = JsonHandler.fromJsonTree(p, ModelTriStateBufferParams.class); + if (params == null) + throw new JsonSyntaxException("Invalid!!!"); + return new ModelTriStateBuffer(m, params, n); + }); + } + + public static class ModelTriStateBufferParams + { + int logicWidth; + Orientation orientation; + + public ModelTriStateBufferParams(int logicWidth, Orientation orientation) + { + this.logicWidth = logicWidth; + this.orientation = orientation; + } + } +} diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularGUIGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularGUIGate.java deleted file mode 100644 index 9b72cb6c..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularGUIGate.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.swt.graphics.Color; - -import com.google.gson.JsonPrimitive; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.MovablePin; -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.preferences.Preferences; - -public class SimpleRectangularGUIGate extends GUIComponent -{ - private static final double width = 20; - private static final double pinDistance = 10; - private static final double fontHeight = 5; - private static final double invertedCircleDiam = 3.5; - - private final String id; - - private final String label; - private final boolean isInverted; - protected final int logicWidth; - private final double rectWidth; - - private MovablePin outputPin; - private final List inputPins; - - protected SimpleRectangularGUIGate(ViewModelModifiable model, String id, String label, boolean isInverted, int logicWidth, String name) - { - super(model, name); - this.id = id; - this.label = label; - this.logicWidth = logicWidth; - this.isInverted = isInverted; - this.rectWidth = width - (isInverted ? invertedCircleDiam : 0); - this.outputPin = new MovablePin(this, "Y", logicWidth, PinUsage.OUTPUT, width, 0); - addPin(outputPin); - this.inputPins = new ArrayList<>(); - setInputCount(1); - } - - protected void setInputCount(int inputCount) - { - int oldInputCount = inputPins.size(); - setSize(width, inputCount * pinDistance); - if (oldInputCount > inputCount) - while (inputPins.size() > inputCount) - removePin(inputPins.remove(inputCount).name); - else if (oldInputCount < inputCount) - for (int i = oldInputCount; i < inputCount; i++) - { - // TODO what for more than 24 input pins? - Pin pin = new Pin(this, String.valueOf((char) ('A' + i)), logicWidth, PinUsage.INPUT, 0, pinDistance / 2 + i * pinDistance); - inputPins.add(pin); - addPin(pin); - } - outputPin.setRelPos(width, inputCount * pinDistance / 2); - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); - if (foreground != null) - gc.setForeground(foreground); - double height = (getPins().size() - 1) * pinDistance; - gc.drawRectangle(getPosX(), getPosY(), rectWidth, height); - if (isInverted) - gc.drawOval(getPosX() + rectWidth, getPosY() + (height - invertedCircleDiam) / 2, invertedCircleDiam, invertedCircleDiam); - Font oldFont = gc.getFont(); - Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); - gc.setFont(labelFont); - Point textExtent = gc.textExtent(label); - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); - if (textColor != null) - gc.setForeground(textColor); - gc.drawText(label, getPosX() + (rectWidth - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); - gc.setFont(oldFont); - } - - // serializing - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return id; - } - - /** - * {@link SimpleRectangularGUIGate}s implementation returns a {@link JsonPrimitive} of type int containing the {@link #logicWidth} of - * this component. - * - * @see GUIComponent#getParamsForSerializing() - */ - @Override - public Integer getParamsForSerializing(IdentifyParams idParams) - { - return logicWidth; - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedGUIComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedGUIComponent.java deleted file mode 100644 index 431240d7..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedGUIComponent.java +++ /dev/null @@ -1,153 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.SimpleRectangularHardcodedGUIComponentAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.snippets.HighLevelStateHandler; -import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer; -import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer; -import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer.CenteredTextParams; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public abstract class SimpleRectangularHardcodedGUIComponent extends GUIComponent -{ - private static final double centerTextHeight = 5; - private static final double pinNamesHeight = 3.5; - private static final double pinNamesMargin = .5; - - private final String id; - - private final DefaultOutlineRenderer outlineRenderer; - private final CenteredTextSymbolRenderer centerTextRenderer; - private final PinNamesSymbolRenderer pinNamesRenderer; - - private AtomicReference state; - private Runnable recalculate; - - // creation and destruction - - public SimpleRectangularHardcodedGUIComponent(ViewModelModifiable model, String id, String name, String centerText) - { - super(model, name); - this.id = id; - this.outlineRenderer = new DefaultOutlineRenderer(this); - CenteredTextParams centeredTextParams = new CenteredTextParams(); - centeredTextParams.text = centerText; - centeredTextParams.fontHeight = centerTextHeight; - this.centerTextRenderer = new CenteredTextSymbolRenderer(this, centeredTextParams); - PinNamesParams pinNamesParams = new PinNamesParams(); - pinNamesParams.pinLabelHeight = pinNamesHeight; - pinNamesParams.pinLabelMargin = pinNamesMargin; - this.pinNamesRenderer = new PinNamesSymbolRenderer(this, pinNamesParams); - addPinRemovedListener(this::pinRemoved); - setHighLevelStateHandler(new HighLevelStateHandler() - { - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return null;// we don't need to serialize this; it's implicit since we are a SimpleRectangularHardcodedGUIComponent - } - - @Override - public Object getParamsForSerializing(IdentifyParams idParams) - { - return null; - } - - @Override - public Object getHighLevelState(String stateID) - { - return SimpleRectangularHardcodedGUIComponent.this.getHighLevelState(state.get(), stateID); - } - - @Override - public void setHighLevelState(String stateID, Object newState) - { - state.updateAndGet(s -> SimpleRectangularHardcodedGUIComponent.this.setHighLevelState(s, stateID, newState)); - recalculate.run(); - } - }); - } - - // pins - - protected void addPin(Pin pin, Position namePosition) - { - super.addPin(pin); // do this first to catch errors - pinNamesRenderer.setPinPosition(pin, namePosition); - } - - private void pinRemoved(Pin pin) - { - pinNamesRenderer.setPinPosition(pin, null); - } - - // high-level access - - @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden - protected Object getHighLevelState(Object state, String stateID) - { - throw new IllegalArgumentException("No high level state with ID " + stateID); - } - - @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden - protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) - { - throw new IllegalArgumentException("No high level state with ID " + stateID); - } - - // logic - - public abstract Object recalculate(Object lastState, Map readEnds, Map readWriteEnds); - - // logic model binding - - public void setLogicModelBindingAndResetState(AtomicReference state, Runnable recalculate) - { - this.state = state; - this.recalculate = recalculate; - } - - // "graphical" operations - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - outlineRenderer.render(gc, visibleRegion); - centerTextRenderer.render(gc, visibleRegion); - pinNamesRenderer.render(gc, visibleRegion); - } - - // serializing - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return id; - } - - // operations no longer supported - - @Override - protected void addPin(Pin pin) - { - throw new UnsupportedOperationException("Can't add pins without setting usage, call addPin(Pin [, Position]) instead"); - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new SimpleRectangularHardcodedGUIComponentAdapter()); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedModelComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedModelComponent.java new file mode 100644 index 00000000..cad271cc --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedModelComponent.java @@ -0,0 +1,153 @@ +package net.mograsim.logic.model.model.components.atomic; + +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SimpleRectangularHardcodedModelComponentAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.snippets.HighLevelStateHandler; +import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer; +import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer; +import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer.CenteredTextParams; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams; +import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; + +public abstract class SimpleRectangularHardcodedModelComponent extends ModelComponent +{ + private static final double centerTextHeight = 5; + private static final double pinNamesHeight = 3.5; + private static final double pinNamesMargin = .5; + + private final String id; + + private final DefaultOutlineRenderer outlineRenderer; + private final CenteredTextSymbolRenderer centerTextRenderer; + private final PinNamesSymbolRenderer pinNamesRenderer; + + private AtomicReference state; + private Runnable recalculate; + + // creation and destruction + + public SimpleRectangularHardcodedModelComponent(ViewModelModifiable model, String id, String name, String centerText) + { + super(model, name); + this.id = id; + this.outlineRenderer = new DefaultOutlineRenderer(this); + CenteredTextParams centeredTextParams = new CenteredTextParams(); + centeredTextParams.text = centerText; + centeredTextParams.fontHeight = centerTextHeight; + this.centerTextRenderer = new CenteredTextSymbolRenderer(this, centeredTextParams); + PinNamesParams pinNamesParams = new PinNamesParams(); + pinNamesParams.pinLabelHeight = pinNamesHeight; + pinNamesParams.pinLabelMargin = pinNamesMargin; + this.pinNamesRenderer = new PinNamesSymbolRenderer(this, pinNamesParams); + addPinRemovedListener(this::pinRemoved); + setHighLevelStateHandler(new HighLevelStateHandler() + { + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return null;// we don't need to serialize this; it's implicit since we are a SimpleRectangularHardcodedModelComponent + } + + @Override + public Object getParamsForSerializing(IdentifyParams idParams) + { + return null; + } + + @Override + public Object getHighLevelState(String stateID) + { + return SimpleRectangularHardcodedModelComponent.this.getHighLevelState(state.get(), stateID); + } + + @Override + public void setHighLevelState(String stateID, Object newState) + { + state.updateAndGet(s -> SimpleRectangularHardcodedModelComponent.this.setHighLevelState(s, stateID, newState)); + recalculate.run(); + } + }); + } + + // pins + + protected void addPin(Pin pin, Position namePosition) + { + super.addPin(pin); // do this first to catch errors + pinNamesRenderer.setPinPosition(pin, namePosition); + } + + private void pinRemoved(Pin pin) + { + pinNamesRenderer.setPinPosition(pin, null); + } + + // high-level access + + @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden + protected Object getHighLevelState(Object state, String stateID) + { + throw new IllegalArgumentException("No high level state with ID " + stateID); + } + + @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden + protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState) + { + throw new IllegalArgumentException("No high level state with ID " + stateID); + } + + // logic + + public abstract Object recalculate(Object lastState, Map readEnds, Map readWriteEnds); + + // logic model binding + + public void setLogicModelBindingAndResetState(AtomicReference state, Runnable recalculate) + { + this.state = state; + this.recalculate = recalculate; + } + + // "graphical" operations + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + outlineRenderer.render(gc, visibleRegion); + centerTextRenderer.render(gc, visibleRegion); + pinNamesRenderer.render(gc, visibleRegion); + } + + // serializing + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return id; + } + + // operations no longer supported + + @Override + protected void addPin(Pin pin) + { + throw new UnsupportedOperationException("Can't add pins without setting usage, call addPin(Pin [, Position]) instead"); + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new SimpleRectangularHardcodedModelComponentAdapter()); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularModelGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularModelGate.java new file mode 100644 index 00000000..890c482f --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularModelGate.java @@ -0,0 +1,111 @@ +package net.mograsim.logic.model.model.components.atomic; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.swt.graphics.Color; + +import com.google.gson.JsonPrimitive; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Font; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.MovablePin; +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.preferences.Preferences; + +public class SimpleRectangularModelGate extends ModelComponent +{ + private static final double width = 20; + private static final double pinDistance = 10; + private static final double fontHeight = 5; + private static final double invertedCircleDiam = 3.5; + + private final String id; + + private final String label; + private final boolean isInverted; + protected final int logicWidth; + private final double rectWidth; + + private MovablePin outputPin; + private final List inputPins; + + protected SimpleRectangularModelGate(ViewModelModifiable model, String id, String label, boolean isInverted, int logicWidth, String name) + { + super(model, name); + this.id = id; + this.label = label; + this.logicWidth = logicWidth; + this.isInverted = isInverted; + this.rectWidth = width - (isInverted ? invertedCircleDiam : 0); + this.outputPin = new MovablePin(this, "Y", logicWidth, PinUsage.OUTPUT, width, 0); + addPin(outputPin); + this.inputPins = new ArrayList<>(); + setInputCount(1); + } + + protected void setInputCount(int inputCount) + { + int oldInputCount = inputPins.size(); + setSize(width, inputCount * pinDistance); + if (oldInputCount > inputCount) + while (inputPins.size() > inputCount) + removePin(inputPins.remove(inputCount).name); + else if (oldInputCount < inputCount) + for (int i = oldInputCount; i < inputCount; i++) + { + // TODO what for more than 24 input pins? + Pin pin = new Pin(this, String.valueOf((char) ('A' + i)), logicWidth, PinUsage.INPUT, 0, pinDistance / 2 + i * pinDistance); + inputPins.add(pin); + addPin(pin); + } + outputPin.setRelPos(width, inputCount * pinDistance / 2); + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + if (foreground != null) + gc.setForeground(foreground); + double height = (getPins().size() - 1) * pinDistance; + gc.drawRectangle(getPosX(), getPosY(), rectWidth, height); + if (isInverted) + gc.drawOval(getPosX() + rectWidth, getPosY() + (height - invertedCircleDiam) / 2, invertedCircleDiam, invertedCircleDiam); + Font oldFont = gc.getFont(); + Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); + gc.setFont(labelFont); + Point textExtent = gc.textExtent(label); + Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + if (textColor != null) + gc.setForeground(textColor); + gc.drawText(label, getPosX() + (rectWidth - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); + gc.setFont(oldFont); + } + + // serializing + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return id; + } + + /** + * {@link SimpleRectangularModelGate}s implementation returns a {@link JsonPrimitive} of type int containing the {@link #logicWidth} of + * this component. + * + * @see ModelComponent#getParamsForSerializing() + */ + @Override + public Integer getParamsForSerializing(IdentifyParams idParams) + { + return logicWidth; + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/TextComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/TextComponent.java deleted file mode 100644 index f2507022..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/TextComponent.java +++ /dev/null @@ -1,72 +0,0 @@ -package net.mograsim.logic.model.model.components.atomic; - -import org.eclipse.swt.graphics.Color; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.modeladapter.componentadapters.NoLogicAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.preferences.Preferences; - -//TODO clean size calculation mess -public class TextComponent extends GUIComponent -{ - private final String text; - private boolean calculatedSize; - - public TextComponent(ViewModelModifiable model, String text) - { - this(model, text, null); - } - - public TextComponent(ViewModelModifiable model, String text, String name) - { - super(model, name); - this.text = text; - // If size is unset, it defaults to 0, which could prohibit this component from being rendered, which would prohibit the size being - // set to a better guess - setSize(1, 1); - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - if (!calculatedSize) - { - calculatedSize = true; - Point textExtent = gc.textExtent(text); - setSize(textExtent.x, textExtent.y); - } - - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); - if (textColor != null) - gc.setForeground(textColor); - gc.drawText(text, getPosX(), getPosY(), true); - } - - // serializing - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "TextComponent"; - } - - @Override - public String getParamsForSerializing(IdentifyParams idParams) - { - return text; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(TextComponent.class)); - IndirectGUIComponentCreator.setComponentSupplier(TextComponent.class.getName(), - (m, p, n) -> new TextComponent(m, p.getAsString(), n)); - } -} diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java index f67be7d3..7eaba805 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java @@ -13,12 +13,12 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.model.LogicUIRenderer; import net.mograsim.logic.model.model.ViewModel; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.MovablePin; 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.IndirectGUIComponentCreator; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.serializing.SubmodelComponentParams; import net.mograsim.logic.model.serializing.SubmodelComponentSerializer; import net.mograsim.logic.model.snippets.Renderer; @@ -26,10 +26,10 @@ import net.mograsim.logic.model.util.JsonHandler; import net.mograsim.preferences.Preferences; /** - * A {@link GUIComponent} consisting of another model. A SubmodelComponent can have so-called "interface pins" connecting the + * A {@link ModelComponent} consisting of another model. A SubmodelComponent can have so-called "interface pins" connecting the * inner and outer models. */ -public abstract class SubmodelComponent extends GUIComponent +public abstract class SubmodelComponent extends ModelComponent { public static final String SUBMODEL_INTERFACE_NAME = "_submodelinterface"; /** @@ -356,7 +356,7 @@ public abstract class SubmodelComponent extends GUIComponent { double scaledX = (x - getPosX()) / submodelScale; double scaledY = (y - getPosY()) / submodelScale; - for (GUIComponent component : submodel.getComponentsByName().values()) + for (ModelComponent component : submodel.getComponentsByName().values()) if (component.getBounds().contains(scaledX, scaledY) && component.clicked(scaledX, scaledY)) return true; return false; @@ -449,7 +449,7 @@ public abstract class SubmodelComponent extends GUIComponent static { - IndirectGUIComponentCreator.setComponentSupplier(SubmodelComponent.class.getCanonicalName(), + IndirectModelComponentCreator.setComponentSupplier(SubmodelComponent.class.getCanonicalName(), (m, p, n) -> SubmodelComponentSerializer.deserialize(m, JsonHandler.fromJsonTree(p, SubmodelComponentParams.class), n)); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelInterface.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelInterface.java index 9c4c46d1..d2e6b3de 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelInterface.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelInterface.java @@ -3,11 +3,11 @@ package net.mograsim.logic.model.model.components.submodels; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.serializing.IdentifyParams; -public class SubmodelInterface extends GUIComponent +public class SubmodelInterface extends ModelComponent { public SubmodelInterface(ViewModelModifiable model, String name) { @@ -30,7 +30,7 @@ public class SubmodelInterface extends GUIComponent * This method is only marked public in {@link SubmodelInterface} for {@link SubmodelComponent} to be able to add / remove pins to / * from a SubmodelInterface.
* - * @see GUIComponent#removePin(Pin) + * @see ModelComponent#removePin(Pin) * * @author Daniel Kirschten */ @@ -45,7 +45,7 @@ public class SubmodelInterface extends GUIComponent * This method is only marked public in {@link SubmodelInterface} for {@link SubmodelComponent} to be able to add / remove pins to / * from a SubmodelInterface.
* - * @see GUIComponent#removePin(Pin) + * @see ModelComponent#removePin(Pin) * * @author Daniel Kirschten */ diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java deleted file mode 100644 index e4b60105..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java +++ /dev/null @@ -1,531 +0,0 @@ -package net.mograsim.logic.model.model.wires; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.function.Consumer; - -import org.eclipse.swt.SWT; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.LogicObserver; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.core.wires.CoreWire; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.preferences.ColorDefinition; -import net.mograsim.preferences.ColorManager; -import net.mograsim.preferences.Preferences; - -/** - * A wire connecting exactly two {@link Pin}s. - * - * @author Daniel Kirschten - */ -public class GUIWire -{ - /** - * The model this wire is a part of. - */ - private final ViewModelModifiable model; - /** - * The name of this wire. Is unique for all wires in its model. - */ - public final String name; - /** - * The logical width of this wire. Is equal to the logical with of {@link #pin1} and {@link #pin2}. - */ - public final int logicWidth; - /** - * The {@link Pin} on one side of this wire, usually the signal source. - */ - private Pin pin1; - /** - * The {@link Pin} on one side of this wire, usually the signal target. - */ - private Pin pin2; - /** - * The user-defined path between {@link #pin1} and {@link #pin2}.
- * Special cases: null means "choose an interpolation as fits", and an empty array means "direct connection without any - * interpolation". - */ - private Point[] path; - /** - * The bounds of this wire, excluding line width (and line joins, if the line join is {@link SWT#JOIN_MITER}) - */ - private final Rectangle bounds; - /** - * The effective path of this wire, including automatic interpolation and the position of both {@link Pin}s. Is never null. - */ - private double[] effectivePath; - - private final List> pathChangedListeners; - - /** - * A LogicObserver calling redrawListeners. Used for logic model bindings. - */ - private final LogicObserver logicObs; - /** - * A ReadEnd of the logic wire this GUI wire currently is bound to. - */ - private ReadEnd end; - - // creation and destruction - - /** - * Creates a new {@link GUIWire} with automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, WireCrossPoint pin2) - { - this(model, null, pin1, pin2); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, Pin pin2) - { - this(model, null, pin1, pin2); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, Pin pin1, WireCrossPoint pin2) - { - this(model, null, pin1, pin2); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, Pin pin1, Pin pin2) - { - this(model, null, pin1, pin2); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, WireCrossPoint pin2, Point... path) - { - this(model, null, pin1, pin2, path); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, Pin pin2, Point... path) - { - this(model, null, pin1, pin2, path); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, Pin pin1, WireCrossPoint pin2, Point... path) - { - this(model, null, pin1, pin2, path); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation and using the default name. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, Pin pin1, Pin pin2, Point... path) - { - this(model, null, pin1, pin2, path); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, WireCrossPoint pin1, WireCrossPoint pin2) - { - this(model, name, pin1, pin2, (Point[]) null); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, WireCrossPoint pin1, Pin pin2) - { - this(model, name, pin1, pin2, (Point[]) null); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, Pin pin1, WireCrossPoint pin2) - { - this(model, name, pin1, pin2, (Point[]) null); - } - - /** - * Creates a new {@link GUIWire} with automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, Pin pin1, Pin pin2) - { - this(model, name, pin1, pin2, (Point[]) null); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, WireCrossPoint pin1, WireCrossPoint pin2, Point... path) - { - this(model, name, pin1.getPin(), pin2.getPin(), path); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, WireCrossPoint pin1, Pin pin2, Point... path) - { - this(model, name, pin1.getPin(), pin2, path); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, Pin pin1, WireCrossPoint pin2, Point... path) - { - this(model, name, pin1, pin2.getPin(), path); - } - - /** - * Creates a new {@link GUIWire} without automatic interpolation. - * - * @author Daniel Kirschten - */ - public GUIWire(ViewModelModifiable model, String name, Pin pin1, Pin pin2, Point... path) - { - this.model = model; - this.name = name == null ? model.getDefaultWireName() : name; - this.logicWidth = pin1.logicWidth; - if (pin2.logicWidth != pin1.logicWidth) - throw new IllegalArgumentException("Can't connect pins of different logic width"); - - this.pin1 = pin1; - this.pin2 = pin2; - - this.path = path == null ? null : Arrays.copyOf(path, path.length); - this.bounds = new Rectangle(0, 0, -1, -1); - - pathChangedListeners = new ArrayList<>(); - - logicObs = (i) -> model.requestRedraw(); - - pin1.addPinMovedListener(p -> pinMoved()); - pin2.addPinMovedListener(p -> pinMoved()); - - recalculateEffectivePath(); - - model.wireCreated(this, this::destroyed); - } - - /** - * Destroys this wire. This method is called from {@link ViewModelModifiable#wireDestroyed(GUIWire) wireDestroyed()} of the model this - * wire is a part of. - * - * @author Daniel Kirschten - */ - private void destroyed() - { - // nothing to do - } - - // pins - - /** - * Returns the {@link Pin} on one side of this wire, usually the signal source. - * - * @author Daniel Kirschten - */ - public Pin getPin1() - { - return pin1; - } - - /** - * Returns the {@link Pin} on one side of this wire, usually the signal target. - * - * @author Daniel Kirschten - */ - public Pin getPin2() - { - return pin2; - } - - /** - * Called when {@link #pin1} or {@link #pin2} were moved. - * - * @author Daniel Kirschten - */ - private void pinMoved() - { - recalculateEffectivePath(); - model.requestRedraw(); - } - - // "graphical" operations - - /** - * Recalculates {@link #effectivePath} "from scratch". Also updates {@link #bounds}. - * - * @author Daniel Kirschten - */ - private void recalculateEffectivePath() - { - Point pos1 = pin1.getPos(), pos2 = pin2.getPos(); - - double boundsX1 = Math.min(pos1.x, pos2.x); - double boundsY1 = Math.min(pos1.y, pos2.y); - double boundsX2 = Math.max(pos1.x, pos2.x); - double boundsY2 = Math.max(pos1.y, pos2.y); - - if (path == null) - effectivePath = new double[] { pos1.x, pos1.y, (pos1.x + pos2.x) / 2, pos1.y, (pos1.x + pos2.x) / 2, pos2.y, pos2.x, pos2.y }; - else - { - effectivePath = new double[path.length * 2 + 4]; - effectivePath[0] = pos1.x; - effectivePath[1] = pos1.y; - for (int srcI = 0, dstI = 2; srcI < path.length; srcI++, dstI += 2) - { - double pathX = path[srcI].x; - double pathY = path[srcI].y; - effectivePath[dstI + 0] = pathX; - effectivePath[dstI + 1] = pathY; - if (pathX < boundsX1) - boundsX1 = pathX; - if (pathX > boundsX2) - boundsX2 = pathX; - if (pathY < boundsY1) - boundsY1 = pathY; - if (pathY > boundsY2) - boundsY2 = pathY; - } - effectivePath[effectivePath.length - 2] = pos2.x; - effectivePath[effectivePath.length - 1] = pos2.y; - } - - bounds.x = boundsX1; - bounds.y = boundsY1; - bounds.width = boundsX2 - boundsX1; - bounds.height = boundsY2 - boundsY1; - } - - /** - * Returns the bounds of this wire, excluding line width (and line joins, if the line join is {@link SWT#JOIN_MITER}) - * - * @author Daniel Kirschten - */ - public Rectangle getBounds() - { - return new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); - } - - /** - * Render this wire to the given gc, in absoulute coordinates. - * - * @author Daniel Kirschten - */ - public void render(GeneralGC gc) - { - ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end); - if (wireColor != null) - gc.setForeground(ColorManager.current().toColor(wireColor)); - gc.setLineWidth( - Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); - gc.drawPolyline(effectivePath); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); - } - - // operations concerning the path - - /** - * The user-defined path between {@link #pin1} and {@link #pin2}. Note that this is not neccessarily equal to the effective path drawn - * in {@link #render(GeneralGC)}.
- * Special cases: null means "choose an interpolation as fits", and an empty array means "direct connection without any - * interpolation". - * - * @author Daniel Kirschten - */ - public Point[] getPath() - { - return deepPathCopy(path); - } - - public void setPath(Point... path) - { - this.path = deepPathCopy(path); - recalculateEffectivePath(); - callPathChangedListeners(); - model.requestRedraw(); - } - - public Point getPathPoint(int index) - { - return pointCopy(path[index]); - } - - public void setPathPoint(Point p, int index) - { - path[index] = pointCopy(p); - recalculateEffectivePath(); - callPathChangedListeners(); - model.requestRedraw(); - } - - public void insertPathPoint(Point p, int index) - { - if (path == null) - path = new Point[] { pointCopy(p) }; - else - { - Point[] oldPath = path; - path = new Point[oldPath.length + 1]; - System.arraycopy(oldPath, 0, path, 0, index); - if (index < oldPath.length) - System.arraycopy(oldPath, index, path, index + 1, oldPath.length - index); - path[index] = pointCopy(p); - } - recalculateEffectivePath(); - callPathChangedListeners(); - } - - public void removePathPoint(int index) - { - if (path.length == 0) - path = null; - else - { - Point[] oldPath = path; - path = new Point[oldPath.length - 1]; - System.arraycopy(oldPath, 0, path, 0, index); - if (index < oldPath.length - 1) - System.arraycopy(oldPath, index + 1, path, index, oldPath.length - index - 1); - } - recalculateEffectivePath(); - callPathChangedListeners(); - } - - public double[] getEffectivePath() - { - return Arrays.copyOf(effectivePath, effectivePath.length); - } - - private static Point[] deepPathCopy(Point[] path) - { - if (path == null) - return null; - Point[] copy = new Point[path.length]; - for (int i = 0; i < path.length; i++) - copy[i] = pointCopy(path[i]); - return copy; - } - - private static Point pointCopy(Point p) - { - return new Point(p.x, p.y); - } - - // logic model binding - - /** - * Binds this {@link GUIWire} to the given {@link ReadEnd}: The color of this {@link GUIWire} will now depend on the state of the given - * {@link ReadEnd}, and further changes of the given {@link ReadEnd} will result in readrawListeners being called.
- * The argument can be null, in which case the old binding is stopped. - * - * @author Daniel Kirschten - */ - public void setLogicModelBinding(ReadEnd end) - { - if (this.end != null) - this.end.deregisterObserver(logicObs); - this.end = end; - if (end != null) - end.registerObserver(logicObs); - } - - /** - * Returns whether this {@link GUIWire} has a logic model binding or not. - * - * @author Daniel Kirschten - */ - public boolean hasLogicModelBinding() - { - return end != null; - } - - /** - * If this {@link GUIWire} has a logic model binding, delegates to {@link CoreWire#forceValues(BitVector)} for the {@link CoreWire} - * corresponding to this {@link GUIWire}. - * - * @author Daniel Kirschten - */ - public void forceWireValues(BitVector values) - { - end.getWire().forceValues(values); - } - - /** - * If this {@link GUIWire} has a logic model binding, delegates to {@link ReadEnd#getValues()} for the {@link ReadEnd} corresponding to - * this {@link GUIWire}. - * - * @author Daniel Kirschten - */ - public BitVector getWireValues() - { - return end.getValues(); - } - - // listeners - - // @formatter:off - public void addPathChangedListener (Consumer listener) {pathChangedListeners.add (listener);} - - public void removePathChangedListener(Consumer listener) {pathChangedListeners.remove(listener);} - - private void callPathChangedListeners() {pathChangedListeners.forEach(l -> l.accept(this));} - // @formatter:on - - @Override - public String toString() - { - return "GUIWire [" + pin1 + "---" + pin2 + ", value=" + (end == null ? "null" : end.getValues()) + "]"; - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java new file mode 100644 index 00000000..1d7c9a44 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java @@ -0,0 +1,531 @@ +package net.mograsim.logic.model.model.wires; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.function.Consumer; + +import org.eclipse.swt.SWT; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.LogicObserver; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.core.wires.CoreWire; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.preferences.ColorDefinition; +import net.mograsim.preferences.ColorManager; +import net.mograsim.preferences.Preferences; + +/** + * A wire connecting exactly two {@link Pin}s. + * + * @author Daniel Kirschten + */ +public class ModelWire +{ + /** + * The model this wire is a part of. + */ + private final ViewModelModifiable model; + /** + * The name of this wire. Is unique for all wires in its model. + */ + public final String name; + /** + * The logical width of this wire. Is equal to the logical with of {@link #pin1} and {@link #pin2}. + */ + public final int logicWidth; + /** + * The {@link Pin} on one side of this wire, usually the signal source. + */ + private Pin pin1; + /** + * The {@link Pin} on one side of this wire, usually the signal target. + */ + private Pin pin2; + /** + * The user-defined path between {@link #pin1} and {@link #pin2}.
+ * Special cases: null means "choose an interpolation as fits", and an empty array means "direct connection without any + * interpolation". + */ + private Point[] path; + /** + * The bounds of this wire, excluding line width (and line joins, if the line join is {@link SWT#JOIN_MITER}) + */ + private final Rectangle bounds; + /** + * The effective path of this wire, including automatic interpolation and the position of both {@link Pin}s. Is never null. + */ + private double[] effectivePath; + + private final List> pathChangedListeners; + + /** + * A LogicObserver calling redrawListeners. Used for logic model bindings. + */ + private final LogicObserver logicObs; + /** + * A ReadEnd of the logic wire this model wire currently is bound to. + */ + private ReadEnd end; + + // creation and destruction + + /** + * Creates a new {@link ModelWire} with automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2) + { + this(model, null, pin1, pin2); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, Pin pin2) + { + this(model, null, pin1, pin2); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, Pin pin1, ModelWireCrossPoint pin2) + { + this(model, null, pin1, pin2); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, Pin pin1, Pin pin2) + { + this(model, null, pin1, pin2); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2, Point... path) + { + this(model, null, pin1, pin2, path); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, Pin pin2, Point... path) + { + this(model, null, pin1, pin2, path); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, Pin pin1, ModelWireCrossPoint pin2, Point... path) + { + this(model, null, pin1, pin2, path); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation and using the default name. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, Pin pin1, Pin pin2, Point... path) + { + this(model, null, pin1, pin2, path); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2) + { + this(model, name, pin1, pin2, (Point[]) null); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, Pin pin2) + { + this(model, name, pin1, pin2, (Point[]) null); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, Pin pin1, ModelWireCrossPoint pin2) + { + this(model, name, pin1, pin2, (Point[]) null); + } + + /** + * Creates a new {@link ModelWire} with automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, Pin pin1, Pin pin2) + { + this(model, name, pin1, pin2, (Point[]) null); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2, Point... path) + { + this(model, name, pin1.getPin(), pin2.getPin(), path); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, Pin pin2, Point... path) + { + this(model, name, pin1.getPin(), pin2, path); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, Pin pin1, ModelWireCrossPoint pin2, Point... path) + { + this(model, name, pin1, pin2.getPin(), path); + } + + /** + * Creates a new {@link ModelWire} without automatic interpolation. + * + * @author Daniel Kirschten + */ + public ModelWire(ViewModelModifiable model, String name, Pin pin1, Pin pin2, Point... path) + { + this.model = model; + this.name = name == null ? model.getDefaultWireName() : name; + this.logicWidth = pin1.logicWidth; + if (pin2.logicWidth != pin1.logicWidth) + throw new IllegalArgumentException("Can't connect pins of different logic width"); + + this.pin1 = pin1; + this.pin2 = pin2; + + this.path = path == null ? null : Arrays.copyOf(path, path.length); + this.bounds = new Rectangle(0, 0, -1, -1); + + pathChangedListeners = new ArrayList<>(); + + logicObs = (i) -> model.requestRedraw(); + + pin1.addPinMovedListener(p -> pinMoved()); + pin2.addPinMovedListener(p -> pinMoved()); + + recalculateEffectivePath(); + + model.wireCreated(this, this::destroyed); + } + + /** + * Destroys this wire. This method is called from {@link ViewModelModifiable#wireDestroyed(ModelWire) wireDestroyed()} of the model this + * wire is a part of. + * + * @author Daniel Kirschten + */ + private void destroyed() + { + // nothing to do + } + + // pins + + /** + * Returns the {@link Pin} on one side of this wire, usually the signal source. + * + * @author Daniel Kirschten + */ + public Pin getPin1() + { + return pin1; + } + + /** + * Returns the {@link Pin} on one side of this wire, usually the signal target. + * + * @author Daniel Kirschten + */ + public Pin getPin2() + { + return pin2; + } + + /** + * Called when {@link #pin1} or {@link #pin2} were moved. + * + * @author Daniel Kirschten + */ + private void pinMoved() + { + recalculateEffectivePath(); + model.requestRedraw(); + } + + // "graphical" operations + + /** + * Recalculates {@link #effectivePath} "from scratch". Also updates {@link #bounds}. + * + * @author Daniel Kirschten + */ + private void recalculateEffectivePath() + { + Point pos1 = pin1.getPos(), pos2 = pin2.getPos(); + + double boundsX1 = Math.min(pos1.x, pos2.x); + double boundsY1 = Math.min(pos1.y, pos2.y); + double boundsX2 = Math.max(pos1.x, pos2.x); + double boundsY2 = Math.max(pos1.y, pos2.y); + + if (path == null) + effectivePath = new double[] { pos1.x, pos1.y, (pos1.x + pos2.x) / 2, pos1.y, (pos1.x + pos2.x) / 2, pos2.y, pos2.x, pos2.y }; + else + { + effectivePath = new double[path.length * 2 + 4]; + effectivePath[0] = pos1.x; + effectivePath[1] = pos1.y; + for (int srcI = 0, dstI = 2; srcI < path.length; srcI++, dstI += 2) + { + double pathX = path[srcI].x; + double pathY = path[srcI].y; + effectivePath[dstI + 0] = pathX; + effectivePath[dstI + 1] = pathY; + if (pathX < boundsX1) + boundsX1 = pathX; + if (pathX > boundsX2) + boundsX2 = pathX; + if (pathY < boundsY1) + boundsY1 = pathY; + if (pathY > boundsY2) + boundsY2 = pathY; + } + effectivePath[effectivePath.length - 2] = pos2.x; + effectivePath[effectivePath.length - 1] = pos2.y; + } + + bounds.x = boundsX1; + bounds.y = boundsY1; + bounds.width = boundsX2 - boundsX1; + bounds.height = boundsY2 - boundsY1; + } + + /** + * Returns the bounds of this wire, excluding line width (and line joins, if the line join is {@link SWT#JOIN_MITER}) + * + * @author Daniel Kirschten + */ + public Rectangle getBounds() + { + return new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); + } + + /** + * Render this wire to the given gc, in absoulute coordinates. + * + * @author Daniel Kirschten + */ + public void render(GeneralGC gc) + { + ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end); + if (wireColor != null) + gc.setForeground(ColorManager.current().toColor(wireColor)); + gc.setLineWidth( + Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); + gc.drawPolyline(effectivePath); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); + } + + // operations concerning the path + + /** + * The user-defined path between {@link #pin1} and {@link #pin2}. Note that this is not neccessarily equal to the effective path drawn + * in {@link #render(GeneralGC)}.
+ * Special cases: null means "choose an interpolation as fits", and an empty array means "direct connection without any + * interpolation". + * + * @author Daniel Kirschten + */ + public Point[] getPath() + { + return deepPathCopy(path); + } + + public void setPath(Point... path) + { + this.path = deepPathCopy(path); + recalculateEffectivePath(); + callPathChangedListeners(); + model.requestRedraw(); + } + + public Point getPathPoint(int index) + { + return pointCopy(path[index]); + } + + public void setPathPoint(Point p, int index) + { + path[index] = pointCopy(p); + recalculateEffectivePath(); + callPathChangedListeners(); + model.requestRedraw(); + } + + public void insertPathPoint(Point p, int index) + { + if (path == null) + path = new Point[] { pointCopy(p) }; + else + { + Point[] oldPath = path; + path = new Point[oldPath.length + 1]; + System.arraycopy(oldPath, 0, path, 0, index); + if (index < oldPath.length) + System.arraycopy(oldPath, index, path, index + 1, oldPath.length - index); + path[index] = pointCopy(p); + } + recalculateEffectivePath(); + callPathChangedListeners(); + } + + public void removePathPoint(int index) + { + if (path.length == 0) + path = null; + else + { + Point[] oldPath = path; + path = new Point[oldPath.length - 1]; + System.arraycopy(oldPath, 0, path, 0, index); + if (index < oldPath.length - 1) + System.arraycopy(oldPath, index + 1, path, index, oldPath.length - index - 1); + } + recalculateEffectivePath(); + callPathChangedListeners(); + } + + public double[] getEffectivePath() + { + return Arrays.copyOf(effectivePath, effectivePath.length); + } + + private static Point[] deepPathCopy(Point[] path) + { + if (path == null) + return null; + Point[] copy = new Point[path.length]; + for (int i = 0; i < path.length; i++) + copy[i] = pointCopy(path[i]); + return copy; + } + + private static Point pointCopy(Point p) + { + return new Point(p.x, p.y); + } + + // logic model binding + + /** + * Binds this {@link ModelWire} to the given {@link ReadEnd}: The color of this {@link ModelWire} will now depend on the state of the + * given {@link ReadEnd}, and further changes of the given {@link ReadEnd} will result in readrawListeners being called.
+ * The argument can be null, in which case the old binding is stopped. + * + * @author Daniel Kirschten + */ + public void setLogicModelBinding(ReadEnd end) + { + if (this.end != null) + this.end.deregisterObserver(logicObs); + this.end = end; + if (end != null) + end.registerObserver(logicObs); + } + + /** + * Returns whether this {@link ModelWire} has a logic model binding or not. + * + * @author Daniel Kirschten + */ + public boolean hasLogicModelBinding() + { + return end != null; + } + + /** + * If this {@link ModelWire} has a logic model binding, delegates to {@link CoreWire#forceValues(BitVector)} for the {@link CoreWire} + * corresponding to this {@link ModelWire}. + * + * @author Daniel Kirschten + */ + public void forceWireValues(BitVector values) + { + end.getWire().forceValues(values); + } + + /** + * If this {@link ModelWire} has a logic model binding, delegates to {@link ReadEnd#getValues()} for the {@link ReadEnd} corresponding + * to this {@link ModelWire}. + * + * @author Daniel Kirschten + */ + public BitVector getWireValues() + { + return end.getValues(); + } + + // listeners + + // @formatter:off + public void addPathChangedListener (Consumer listener) {pathChangedListeners.add (listener);} + + public void removePathChangedListener(Consumer listener) {pathChangedListeners.remove(listener);} + + private void callPathChangedListeners() {pathChangedListeners.forEach(l -> l.accept(this));} + // @formatter:on + + @Override + public String toString() + { + return "ModelWire [" + pin1 + "---" + pin2 + ", value=" + (end == null ? "null" : end.getValues()) + "]"; + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWireCrossPoint.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWireCrossPoint.java new file mode 100644 index 00000000..f8d32ac5 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWireCrossPoint.java @@ -0,0 +1,138 @@ +package net.mograsim.logic.model.model.wires; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.core.LogicObserver; +import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.preferences.ColorDefinition; +import net.mograsim.preferences.ColorManager; + +/** + * A {@link ModelComponent} with only one pin. Is used to create wires connecting more than two pins.
+ * Example: There are three pins P1, P2, P3 that need to be connected. Solution: Create a + * ModelWireCrossPoint (WCP) and create the ModelWires P1-WCP, P2-WCP, + * P3-WCP.
+ * Cross points are drawn as circles. The pin of cross points is in the center of this circle. + * + * @author Daniel Kirschten + */ +public class ModelWireCrossPoint extends ModelComponent +{ + private static final int CIRCLE_RADIUS = 1; + private static final int CIRCLE_DIAM = CIRCLE_RADIUS * 2; + + /** + * The logical width of this cross point. + */ + public final int logicWidth; + /** + * The (single) pin of this cross point. + */ + private final Pin pin; + + /** + * A {@link LogicObserver} calling {@link #requestRedraw()}. + */ + private final LogicObserver logicObs; + /** + * The {@link ReadEnd} currently bound to this cross point. + */ + private ReadEnd end; + + // creation and destruction + + public ModelWireCrossPoint(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelWireCrossPoint(ViewModelModifiable model, int logicWidth, String name) + { + super(model, name); + this.logicWidth = logicWidth; + logicObs = (i) -> model.requestRedraw(); + + setSize(CIRCLE_DIAM, CIRCLE_DIAM); + addPin(this.pin = new Pin(this, "", logicWidth, PinUsage.TRISTATE, CIRCLE_RADIUS, CIRCLE_RADIUS)); + } + + // pins + + public Pin getPin() + { + return pin; + } + + // "graphical" operations + + /** + * Moves the center (and therefore the pin) of this {@link ModelWireCrossPoint} to the given location. + * + * @author Daniel Kirschten + */ + public void moveCenterTo(double x, double y) + { + moveTo(x - CIRCLE_RADIUS, y - CIRCLE_RADIUS); + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end); + if (wireColor != null) + gc.setBackground(ColorManager.current().toColor(wireColor)); + gc.fillOval(getPosX(), getPosY(), CIRCLE_DIAM, CIRCLE_DIAM); + } + + // logic model binding + + /** + * Binds this {@link ModelWireCrossPoint} to the given {@link ReadEnd}: The color of this {@link ModelWireCrossPoint} will now depend on + * the state of the given {@link ReadEnd}, and further changes of the given {@link ReadEnd} will result in readrawListeners being + * called.
+ * The argument can be null, in which case the old binding is stopped. + * + * @author Daniel Kirschten + */ + public void setLogicModelBinding(ReadEnd end) + { + if (this.end != null) + this.end.deregisterObserver(logicObs); + this.end = end; + if (end != null) + end.registerObserver(logicObs); + } + + /** + * Returns whether this {@link ModelWireCrossPoint} has a logic model binding or not. + */ + public boolean hasLogicModelBinding() + { + return end != null; + } + + // serializing + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "WireCrossPoint"; + } + + @Override + public Integer getParamsForSerializing(IdentifyParams idParams) + { + return logicWidth; + } + + static + { + IndirectModelComponentCreator.setComponentSupplier(ModelWireCrossPoint.class.getCanonicalName(), + (m, p, n) -> new ModelWireCrossPoint(m, p.getAsInt(), n)); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/MovablePin.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/MovablePin.java index ba6d3b7e..4ec62c7a 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/MovablePin.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/MovablePin.java @@ -1,6 +1,6 @@ package net.mograsim.logic.model.model.wires; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; /** * Exactly like {@link Pin}, but {@link #setRelPos(double, double) setRelPos(...)} is public. @@ -9,7 +9,7 @@ import net.mograsim.logic.model.model.components.GUIComponent; */ public class MovablePin extends Pin { - public MovablePin(GUIComponent component, String name, int logicWidth, PinUsage usage, double relX, double relY) + public MovablePin(ModelComponent component, String name, int logicWidth, PinUsage usage, double relX, double relY) { super(component, name, logicWidth, usage, relX, relY); } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java index 0c63d389..38ba2045 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java @@ -6,24 +6,24 @@ import java.util.Objects; import java.util.function.Consumer; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; /** - * A connection interface between a GUIComponent and the rest of a ViewModel. Pins usually are created by {@link GUIComponent}s themselves. - *
- * A pin has a name identifying it. Pin names are unique for a {@link GUIComponent}: Every pin of a {@link GUIComponent} has a different - * name, but different {@link GUIComponent}s can have pins with the same name. + * A connection interface between a ModelComponent and the rest of a ViewModel. Pins usually are created by {@link ModelComponent}s + * themselves.
+ * A pin has a name identifying it. Pin names are unique for a {@link ModelComponent}: Every pin of a {@link ModelComponent} has a different + * name, but different {@link ModelComponent}s can have pins with the same name. * * @author Daniel Kirschten */ public class Pin { /** - * The {@link GUIComponent} this pin belongs to. + * The {@link ModelComponent} this pin belongs to. */ - public final GUIComponent component; + public final ModelComponent component; /** - * The name identifying this pin. Is unique for a {@link GUIComponent}. + * The name identifying this pin. Is unique for a {@link ModelComponent}. */ public final String name; /** @@ -51,11 +51,12 @@ public class Pin // creation and destruction /** - * Creates a new pin. Usually it is not needed to call this constructor manually, as {@link GUIComponent}s create their pins themselves. + * Creates a new pin. Usually it is not needed to call this constructor manually, as {@link ModelComponent}s create their pins + * themselves. * * @author Daniel Kirschten */ - public Pin(GUIComponent component, String name, int logicWidth, PinUsage usage, double relX, double relY) + public Pin(ModelComponent component, String name, int logicWidth, PinUsage usage, double relX, double relY) { this.component = component; this.name = name; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java deleted file mode 100644 index d8863c21..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java +++ /dev/null @@ -1,137 +0,0 @@ -package net.mograsim.logic.model.model.wires; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.core.LogicObserver; -import net.mograsim.logic.core.types.BitVectorFormatter; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.preferences.ColorDefinition; -import net.mograsim.preferences.ColorManager; - -/** - * A {@link GUIComponent} with only one pin. Is used to create wires connecting more than two pins.
- * Example: There are three pins P1, P2, P3 that need to be connected. Solution: Create a - * WireCrossPoint (WCP) and create the GUIWires P1-WCP, P2-WCP, - * P3-WCP.
- * Cross points are drawn as circles. The pin of cross points is in the center of this circle. - * - * @author Daniel Kirschten - */ -public class WireCrossPoint extends GUIComponent -{ - private static final int CIRCLE_RADIUS = 1; - private static final int CIRCLE_DIAM = CIRCLE_RADIUS * 2; - - /** - * The logical width of this cross point. - */ - public final int logicWidth; - /** - * The (single) pin of this cross point. - */ - private final Pin pin; - - /** - * A {@link LogicObserver} calling {@link #requestRedraw()}. - */ - private final LogicObserver logicObs; - /** - * The {@link ReadEnd} currently bound to this cross point. - */ - private ReadEnd end; - - // creation and destruction - - public WireCrossPoint(ViewModelModifiable model, int logicWidth) - { - this(model, logicWidth, null); - } - - public WireCrossPoint(ViewModelModifiable model, int logicWidth, String name) - { - super(model, name); - this.logicWidth = logicWidth; - logicObs = (i) -> model.requestRedraw(); - - setSize(CIRCLE_DIAM, CIRCLE_DIAM); - addPin(this.pin = new Pin(this, "", logicWidth, PinUsage.TRISTATE, CIRCLE_RADIUS, CIRCLE_RADIUS)); - } - - // pins - - public Pin getPin() - { - return pin; - } - - // "graphical" operations - - /** - * Moves the center (and therefore the pin) of this {@link WireCrossPoint} to the given location. - * - * @author Daniel Kirschten - */ - public void moveCenterTo(double x, double y) - { - moveTo(x - CIRCLE_RADIUS, y - CIRCLE_RADIUS); - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end); - if (wireColor != null) - gc.setBackground(ColorManager.current().toColor(wireColor)); - gc.fillOval(getPosX(), getPosY(), CIRCLE_DIAM, CIRCLE_DIAM); - } - - // logic model binding - - /** - * Binds this {@link WireCrossPoint} to the given {@link ReadEnd}: The color of this {@link WireCrossPoint} will now depend on the state - * of the given {@link ReadEnd}, and further changes of the given {@link ReadEnd} will result in readrawListeners being called.
- * The argument can be null, in which case the old binding is stopped. - * - * @author Daniel Kirschten - */ - public void setLogicModelBinding(ReadEnd end) - { - if (this.end != null) - this.end.deregisterObserver(logicObs); - this.end = end; - if (end != null) - end.registerObserver(logicObs); - } - - /** - * Returns whether this {@link WireCrossPoint} has a logic model binding or not. - */ - public boolean hasLogicModelBinding() - { - return end != null; - } - - // serializing - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "WireCrossPoint"; - } - - @Override - public Integer getParamsForSerializing(IdentifyParams idParams) - { - return logicWidth; - } - - static - { - IndirectGUIComponentCreator.setComponentSupplier(WireCrossPoint.class.getCanonicalName(), - (m, p, n) -> new WireCrossPoint(m, p.getAsInt(), n)); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java index 8c337cd2..ffeff19a 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java @@ -14,19 +14,19 @@ import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; import net.mograsim.logic.model.model.ViewModel; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelInterface; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; import net.mograsim.logic.model.modeladapter.componentadapters.ComponentAdapter; public class ViewLogicModelAdapter { - private final static Map, ComponentAdapter> componentAdapters = new HashMap<>(); + private final static Map, ComponentAdapter> componentAdapters = new HashMap<>(); - public static void addComponentAdapter(ComponentAdapter componentAdapter) + public static void addComponentAdapter(ComponentAdapter componentAdapter) { componentAdapters.put(componentAdapter.getSupportedClass(), componentAdapter); } @@ -43,25 +43,25 @@ public class ViewLogicModelAdapter private static void convert(ViewModel viewModel, LogicModelParameters params, Timeline timeline, Map externalWires) { - Map logicWiresPerPin = convertWires(getAllPins(viewModel), viewModel.getWiresByName().values(), externalWires, params, - timeline); + Map logicWiresPerPin = convertWires(getAllPins(viewModel), viewModel.getWiresByName().values(), externalWires, + params, timeline); Map logicWiresPerPinUnmodifiable = Collections.unmodifiableMap(logicWiresPerPin); - for (GUIComponent guiComp : viewModel.getComponentsByName().values()) + for (ModelComponent modelComp : viewModel.getComponentsByName().values()) { - if (guiComp instanceof SubmodelComponent) + if (modelComp instanceof SubmodelComponent) { - SubmodelComponent guiCompCasted = (SubmodelComponent) guiComp; - Map supermodelPins = guiCompCasted.getSupermodelPins(); - Map externalWiresForSubmodel = supermodelPins.entrySet().stream() - .collect(Collectors.toMap(e -> guiCompCasted.getSubmodelPin(e.getKey()), e -> logicWiresPerPin.get(e.getValue()))); - convert(guiCompCasted.submodel, params, timeline, externalWiresForSubmodel); - } else if (guiComp instanceof WireCrossPoint) + SubmodelComponent modelCompCasted = (SubmodelComponent) modelComp; + Map supermodelPins = modelCompCasted.getSupermodelPins(); + Map externalWiresForSubmodel = supermodelPins.entrySet().stream().collect( + Collectors.toMap(e -> modelCompCasted.getSubmodelPin(e.getKey()), e -> logicWiresPerPin.get(e.getValue()))); + convert(modelCompCasted.submodel, params, timeline, externalWiresForSubmodel); + } else if (modelComp instanceof ModelWireCrossPoint) { - WireCrossPoint guiCompCasted = (WireCrossPoint) guiComp; - guiCompCasted.setLogicModelBinding(logicWiresPerPin.get(guiCompCasted.getPin()).createReadOnlyEnd()); - } else if (!(guiComp instanceof SubmodelInterface))// nothing to do for SubmodelInterfaces - createAndLinkComponent(timeline, params, guiComp, logicWiresPerPinUnmodifiable); + ModelWireCrossPoint modelCompCasted = (ModelWireCrossPoint) modelComp; + modelCompCasted.setLogicModelBinding(logicWiresPerPin.get(modelCompCasted.getPin()).createReadOnlyEnd()); + } else if (!(modelComp instanceof SubmodelInterface))// nothing to do for SubmodelInterfaces + createAndLinkComponent(timeline, params, modelComp, logicWiresPerPinUnmodifiable); } } @@ -71,17 +71,17 @@ public class ViewLogicModelAdapter .collect(Collectors.toSet()); } - private static Map convertWires(Set allPins, Collection wires, Map externalWires, + private static Map convertWires(Set allPins, Collection wires, Map externalWires, LogicModelParameters params, Timeline timeline) { Map> connectedPinGroups = getConnectedPinGroups(allPins, wires); Map logicWiresPerPin = createLogicWires(params, timeline, connectedPinGroups, externalWires); - setGUIWiresLogicModelBinding(wires, logicWiresPerPin); + setModelWiresLogicModelBinding(wires, logicWiresPerPin); return logicWiresPerPin; } - private static Map createLogicWires(LogicModelParameters params, Timeline timeline, Map> connectedPinGroups, - Map externalWires) + private static Map createLogicWires(LogicModelParameters params, Timeline timeline, + Map> connectedPinGroups, Map externalWires) { Map logicWiresPerPin = new HashMap<>(); Map, CoreWire> logicWiresPerPinGroup = new HashMap<>(); @@ -106,15 +106,15 @@ public class ViewLogicModelAdapter return logicWiresPerPin; } - private static void setGUIWiresLogicModelBinding(Collection wires, Map logicWiresPerPin) + private static void setModelWiresLogicModelBinding(Collection wires, Map logicWiresPerPin) { - Map guiWireSharedReadEnd = logicWiresPerPin.values().stream().distinct() + Map modelWireSharedReadEnd = logicWiresPerPin.values().stream().distinct() .collect(Collectors.toMap(Function.identity(), CoreWire::createReadOnlyEnd)); - for (GUIWire guiWire : wires) - guiWire.setLogicModelBinding(guiWireSharedReadEnd.get(logicWiresPerPin.get(guiWire.getPin1()))); + for (ModelWire modelWire : wires) + modelWire.setLogicModelBinding(modelWireSharedReadEnd.get(logicWiresPerPin.get(modelWire.getPin1()))); } - private static Map> getConnectedPinGroups(Set allPins, Collection wires) + private static Map> getConnectedPinGroups(Set allPins, Collection wires) { Map> connectedPinsPerPin = new HashMap<>(); @@ -143,19 +143,19 @@ public class ViewLogicModelAdapter } @SuppressWarnings("unchecked") - private static void createAndLinkComponent(Timeline timeline, LogicModelParameters params, - GUIComponent guiComponent, Map logicWiresPerPin) + private static void createAndLinkComponent(Timeline timeline, LogicModelParameters params, + ModelComponent modelComponent, Map logicWiresPerPin) { - Class cls = guiComponent.getClass(); + Class cls = modelComponent.getClass(); ComponentAdapter adapter = null; - while (cls != GUIComponent.class && adapter == null) + while (cls != ModelComponent.class && adapter == null) { adapter = (ComponentAdapter) componentAdapters.get(cls); cls = cls.getSuperclass(); } if (adapter == null) - throw new IllegalArgumentException("Unknown component class: " + guiComponent.getClass()); - adapter.createAndLinkComponent(timeline, params, (G) guiComponent, logicWiresPerPin); + throw new IllegalArgumentException("Unknown component class: " + modelComponent.getClass()); + adapter.createAndLinkComponent(timeline, params, (G) modelComponent, logicWiresPerPin); } private ViewLogicModelAdapter() diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/BitDisplayAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/BitDisplayAdapter.java index 2303679b..db24aff5 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/BitDisplayAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/BitDisplayAdapter.java @@ -6,24 +6,24 @@ import net.mograsim.logic.core.components.CoreBitDisplay; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; +import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class BitDisplayAdapter implements ComponentAdapter +public class BitDisplayAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUIBitDisplay.class; + return ModelBitDisplay.class; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIBitDisplay guiComponent, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelBitDisplay modelComponent, Map logicWiresPerPin) { - ReadEnd end = logicWiresPerPin.get(guiComponent.getInputPin()).createReadOnlyEnd(); + ReadEnd end = logicWiresPerPin.get(modelComponent.getInputPin()).createReadOnlyEnd(); CoreBitDisplay bitDisplay = new CoreBitDisplay(timeline, end); - guiComponent.setLogicModelBinding(bitDisplay); + modelComponent.setLogicModelBinding(bitDisplay); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java index 3066d35c..10560f08 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java @@ -6,25 +6,26 @@ import net.mograsim.logic.core.components.CoreClock; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.components.atomic.GUIClock; +import net.mograsim.logic.model.model.components.atomic.ModelClock; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class ClockAdapter implements ComponentAdapter +public class ClockAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUIClock.class; + return ModelClock.class; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIClock guiClock, Map logicWiresPerPin) + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelClock modelClock, + Map logicWiresPerPin) { - ReadWriteEnd out = logicWiresPerPin.get(guiClock.getOutputPin()).createReadWriteEnd(); - CoreClock c = new CoreClock(timeline, out, guiClock.getDelta()); - guiClock.setLogicModelBinding(c); + ReadWriteEnd out = logicWiresPerPin.get(modelClock.getOutputPin()).createReadWriteEnd(); + CoreClock c = new CoreClock(timeline, out, modelClock.getDelta()); + modelClock.setLogicModelBinding(c); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ComponentAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ComponentAdapter.java index 5ebe01b2..7849d4d0 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ComponentAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ComponentAdapter.java @@ -4,13 +4,14 @@ import java.util.Map; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public interface ComponentAdapter +public interface ComponentAdapter { public Class getSupportedClass(); - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, G guiComponent, Map logicWiresPerPin); + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, G modelComponent, + Map logicWiresPerPin); } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/FixedOutputAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/FixedOutputAdapter.java index 618bbfc5..f6a3c0e5 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/FixedOutputAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/FixedOutputAdapter.java @@ -4,22 +4,22 @@ import java.util.Map; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; -import net.mograsim.logic.model.model.components.atomic.GUIFixedOutput; +import net.mograsim.logic.model.model.components.atomic.ModelFixedOutput; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class FixedOutputAdapter implements ComponentAdapter +public class FixedOutputAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUIFixedOutput.class; + return ModelFixedOutput.class; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIFixedOutput guiComponent, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelFixedOutput modelComponent, Map logicWiresPerPin) { - logicWiresPerPin.get(guiComponent.getPin("out")).createReadWriteEnd().feedSignals(guiComponent.bits); + logicWiresPerPin.get(modelComponent.getPin("out")).createReadWriteEnd().feedSignals(modelComponent.bits); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ManualSwitchAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ManualSwitchAdapter.java index 0350ad6b..ac00c5b6 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ManualSwitchAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ManualSwitchAdapter.java @@ -6,24 +6,24 @@ import net.mograsim.logic.core.components.CoreManualSwitch; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class ManualSwitchAdapter implements ComponentAdapter +public class ManualSwitchAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUIManualSwitch.class; + return ModelManualSwitch.class; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIManualSwitch guiComponent, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelManualSwitch modelComponent, Map logicWiresPerPin) { - ReadWriteEnd end = logicWiresPerPin.get(guiComponent.getOutputPin()).createReadWriteEnd(); + ReadWriteEnd end = logicWiresPerPin.get(modelComponent.getOutputPin()).createReadWriteEnd(); CoreManualSwitch manualSwitch = new CoreManualSwitch(timeline, end); - guiComponent.setLogicModelBinding(manualSwitch); + modelComponent.setLogicModelBinding(manualSwitch); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java index fcbd615c..4b2834d1 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java @@ -5,30 +5,30 @@ import java.util.Map; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.components.atomic.GUIMerger; +import net.mograsim.logic.model.model.components.atomic.ModelMerger; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class MergerAdapter implements ComponentAdapter +public class MergerAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUIMerger.class; + return ModelMerger.class; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIMerger guiComponent, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelMerger modelComponent, Map logicWiresPerPin) { - CoreWire output = logicWiresPerPin.get(guiComponent.getPin("O")); - ReadEnd[] inputEnds = new ReadEnd[guiComponent.logicWidth]; - for (int i = 0; i < guiComponent.logicWidth; i++) + CoreWire output = logicWiresPerPin.get(modelComponent.getPin("O")); + ReadEnd[] inputEnds = new ReadEnd[modelComponent.logicWidth]; + for (int i = 0; i < modelComponent.logicWidth; i++) { - CoreWire input = logicWiresPerPin.get(guiComponent.getPin("I" + (guiComponent.logicWidth - 1 - i))); + CoreWire input = logicWiresPerPin.get(modelComponent.getPin("I" + (modelComponent.logicWidth - 1 - i))); CoreWire.fuse(input, output, 0, i); inputEnds[i] = input.createReadOnlyEnd(); } - guiComponent.setLogicModelBinding(inputEnds, output.createReadOnlyEnd()); + modelComponent.setLogicModelBinding(inputEnds, output.createReadOnlyEnd()); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/NoLogicAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/NoLogicAdapter.java index ef2375c6..20c1aef2 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/NoLogicAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/NoLogicAdapter.java @@ -4,32 +4,33 @@ import java.util.Map; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; /** - * For GUIComponents that do not have any simulation logic behaviour + * For ModelComponents that do not have any simulation logic behaviour * * @author Christian Femers */ -public class NoLogicAdapter implements ComponentAdapter +public class NoLogicAdapter implements ComponentAdapter { - private final Class guiComponentClass; + private final Class modelComponentClass; - public NoLogicAdapter(Class guiComponentClass) + public NoLogicAdapter(Class modelComponentClass) { - this.guiComponentClass = guiComponentClass; + this.modelComponentClass = modelComponentClass; } @Override public Class getSupportedClass() { - return guiComponentClass; + return modelComponentClass; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, T guiComponent, Map logicWiresPerPin) + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, T modelComponent, + Map logicWiresPerPin) { // do nothing } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleGateAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleGateAdapter.java index fc981cac..80830bdd 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleGateAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleGateAdapter.java @@ -7,11 +7,11 @@ import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularGUIGate; +import net.mograsim.logic.model.model.components.atomic.SimpleRectangularModelGate; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class SimpleGateAdapter implements ComponentAdapter +public class SimpleGateAdapter implements ComponentAdapter { private final Class supportedClass; private final ComponentConstructor constructor; @@ -29,15 +29,16 @@ public class SimpleGateAdapter implements Co } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, G guiComponent, Map logicWiresPerPin) + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, G modelComponent, + Map logicWiresPerPin) { - ReadWriteEnd out = logicWiresPerPin.get(guiComponent.getPin("Y")).createReadWriteEnd(); + ReadWriteEnd out = logicWiresPerPin.get(modelComponent.getPin("Y")).createReadWriteEnd(); // TODO can we do this prettier? - int inputPinCount = guiComponent.getPins().size() - 1; + int inputPinCount = modelComponent.getPins().size() - 1; ReadEnd[] ins = new ReadEnd[inputPinCount]; for (int i = 0; i < inputPinCount; i++) - ins[i] = logicWiresPerPin.get(guiComponent.getPin(String.valueOf((char) ('A' + i)))).createReadOnlyEnd(); + ins[i] = logicWiresPerPin.get(modelComponent.getPin(String.valueOf((char) ('A' + i)))).createReadOnlyEnd(); constructor.newComponent(timeline, params.gateProcessTime, out, ins); } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedGUIComponentAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedGUIComponentAdapter.java deleted file mode 100644 index 8634c0c2..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedGUIComponentAdapter.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.mograsim.logic.model.modeladapter.componentadapters; - -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; - -import net.mograsim.logic.core.LogicObserver; -import net.mograsim.logic.core.timeline.Timeline; -import net.mograsim.logic.core.wires.CoreWire; -import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.LogicModelParameters; - -public class SimpleRectangularHardcodedGUIComponentAdapter implements ComponentAdapter -{ - @Override - public Class getSupportedClass() - { - return SimpleRectangularHardcodedGUIComponent.class; - } - - @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, SimpleRectangularHardcodedGUIComponent guiComponent, - Map logicWiresPerPin) - { - Map readEnds = new HashMap<>(); - Map readWriteEnds = new HashMap<>(); - - AtomicReference state = new AtomicReference<>(); - - Runnable recalculate = () -> state.updateAndGet(s -> guiComponent.recalculate(s, readEnds, readWriteEnds)); - LogicObserver logicObs = c -> timeline.addEvent(e -> recalculate.run(), params.gateProcessTime); - - guiComponent.setLogicModelBindingAndResetState(state, recalculate); - - for (Pin pin : guiComponent.getPins().values()) - { - CoreWire wire = logicWiresPerPin.get(pin); - ReadEnd end; - if (pin.usage != PinUsage.INPUT) - { - ReadWriteEnd rwEnd = wire.createReadWriteEnd(); - readWriteEnds.put(pin.name, rwEnd); - end = rwEnd; - } else - end = wire.createReadOnlyEnd(); - readEnds.put(pin.name, end); - if (pin.usage != PinUsage.OUTPUT) - end.registerObserver(logicObs); - } - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedModelComponentAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedModelComponentAdapter.java new file mode 100644 index 00000000..1dab1d35 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedModelComponentAdapter.java @@ -0,0 +1,55 @@ +package net.mograsim.logic.model.modeladapter.componentadapters; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; + +import net.mograsim.logic.core.LogicObserver; +import net.mograsim.logic.core.timeline.Timeline; +import net.mograsim.logic.core.wires.CoreWire; +import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; +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.modeladapter.LogicModelParameters; + +public class SimpleRectangularHardcodedModelComponentAdapter implements ComponentAdapter +{ + @Override + public Class getSupportedClass() + { + return SimpleRectangularHardcodedModelComponent.class; + } + + @Override + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, + SimpleRectangularHardcodedModelComponent modelComponent, Map logicWiresPerPin) + { + Map readEnds = new HashMap<>(); + Map readWriteEnds = new HashMap<>(); + + AtomicReference state = new AtomicReference<>(); + + Runnable recalculate = () -> state.updateAndGet(s -> modelComponent.recalculate(s, readEnds, readWriteEnds)); + LogicObserver logicObs = c -> timeline.addEvent(e -> recalculate.run(), params.gateProcessTime); + + modelComponent.setLogicModelBindingAndResetState(state, recalculate); + + for (Pin pin : modelComponent.getPins().values()) + { + CoreWire wire = logicWiresPerPin.get(pin); + ReadEnd end; + if (pin.usage != PinUsage.INPUT) + { + ReadWriteEnd rwEnd = wire.createReadWriteEnd(); + readWriteEnds.put(pin.name, rwEnd); + end = rwEnd; + } else + end = wire.createReadOnlyEnd(); + readEnds.put(pin.name, end); + if (pin.usage != PinUsage.OUTPUT) + end.registerObserver(logicObs); + } + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java index ab371958..bfe8308c 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java @@ -5,30 +5,30 @@ import java.util.Map; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; -import net.mograsim.logic.model.model.components.atomic.GUISplitter; +import net.mograsim.logic.model.model.components.atomic.ModelSplitter; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class SplitterAdapter implements ComponentAdapter +public class SplitterAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUISplitter.class; + return ModelSplitter.class; } @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUISplitter guiComponent, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelSplitter modelComponent, Map logicWiresPerPin) { - CoreWire input = logicWiresPerPin.get(guiComponent.getPin("I")); - ReadEnd[] outputEnds = new ReadEnd[guiComponent.logicWidth]; - for (int i = 0; i < guiComponent.logicWidth; i++) + CoreWire input = logicWiresPerPin.get(modelComponent.getPin("I")); + ReadEnd[] outputEnds = new ReadEnd[modelComponent.logicWidth]; + for (int i = 0; i < modelComponent.logicWidth; i++) { - CoreWire output = logicWiresPerPin.get(guiComponent.getPin("O" + (guiComponent.logicWidth - 1 - i))); + CoreWire output = logicWiresPerPin.get(modelComponent.getPin("O" + (modelComponent.logicWidth - 1 - i))); CoreWire.fuse(input, output, i, 0); outputEnds[i] = output.createReadOnlyEnd(); } - guiComponent.setLogicModelBinding(input.createReadOnlyEnd(), outputEnds); + modelComponent.setLogicModelBinding(input.createReadOnlyEnd(), outputEnds); } } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java index fce74726..1263e0ad 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java @@ -7,26 +7,26 @@ import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd; -import net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer; +import net.mograsim.logic.model.model.components.atomic.ModelTriStateBuffer; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; -public class TriStateBufferAdapter implements ComponentAdapter +public class TriStateBufferAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUITriStateBuffer.class; + return ModelTriStateBuffer.class; } @SuppressWarnings("unused") @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUITriStateBuffer guiTsb, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelTriStateBuffer modelTsb, Map logicWiresPerPin) { - ReadEnd in = logicWiresPerPin.get(guiTsb.getPin("IN")).createReadOnlyEnd(); - ReadEnd enable = logicWiresPerPin.get(guiTsb.getPin("EN")).createReadOnlyEnd(); - ReadWriteEnd out = logicWiresPerPin.get(guiTsb.getPin("OUT")).createReadWriteEnd(); + ReadEnd in = logicWiresPerPin.get(modelTsb.getPin("IN")).createReadOnlyEnd(); + ReadEnd enable = logicWiresPerPin.get(modelTsb.getPin("EN")).createReadOnlyEnd(); + ReadWriteEnd out = logicWiresPerPin.get(modelTsb.getPin("OUT")).createReadWriteEnd(); new CoreTriStateBuffer(timeline, params.gateProcessTime, in, out, enable); } } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java deleted file mode 100644 index c6d1529f..00000000 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java +++ /dev/null @@ -1,222 +0,0 @@ -package net.mograsim.logic.model.serializing; - -import java.io.IOException; -import java.io.InputStream; -import java.io.UncheckedIOException; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -import com.google.gson.JsonElement; -import com.google.gson.JsonNull; -import com.google.gson.JsonObject; - -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.util.JsonHandler; - -public class IndirectGUIComponentCreator -{ - private static final Map standardComponentIDs = new HashMap<>(); - private static final Map standardComponentIDsUnmodifiable = Collections.unmodifiableMap(standardComponentIDs); - - private static final Map componentSuppliers = new HashMap<>(); - private static final Map resourceLoaders = new HashMap<>(); - private static final Map componentCache = new HashMap<>(); - - private static final ResourceLoader defaultResourceLoader; - static - { - defaultResourceLoader = ClassLoaderBasedResourceLoader.create(IndirectGUIComponentCreator.class.getClassLoader()); - loadStandardComponentIDs(IndirectGUIComponentCreator.class.getResourceAsStream("standardComponentIDMapping.json")); - } - - public static void loadStandardComponentIDs(InputStream standardComponentIdMappingStream) - { - try (InputStream s = standardComponentIdMappingStream) - { - if (s == null) - throw new IOException("Resource not found"); - Map tmp = JsonHandler.readJson(s, Map.class); - // don't use putAll to apply sanity checks - tmp.forEach((st, id) -> - { - try - { - addStandardComponentID(st, id); - } - catch (IllegalArgumentException e) - { - System.err.println("Component ID mapping contained illegal entry: " + e.getMessage()); - } - }); - } - catch (IOException e) - { - System.err.println("Failed to initialize standard snippet ID mapping: " + e.getMessage()); - } - } - - public static void addStandardComponentID(String standardComponentID, String associatedComponentID) - { - if (!checkIDIsValidResolvedID(associatedComponentID)) - throw new IllegalArgumentException("Unrecognized component ID format: " + associatedComponentID); - standardComponentIDs.put(standardComponentID, associatedComponentID); - } - - public static Map getStandardComponentIDs() - { - return standardComponentIDsUnmodifiable; - } - - public static void setComponentSupplier(String id, ComponentSupplier componentSupplier) - { - componentSuppliers.put(id, componentSupplier); - } - - public static GUIComponent createComponent(ViewModelModifiable model, String id) - { - return createComponent(model, id, (String) null); - } - - public static GUIComponent createComponent(ViewModelModifiable model, String id, String name) - { - return createComponent(model, id, JsonNull.INSTANCE, name); - } - - public static GUIComponent createComponent(ViewModelModifiable model, String id, JsonElement params) - { - return createComponent(model, id, params, null); - } - - public static GUIComponent createComponent(ViewModelModifiable model, String id, JsonElement params, String name) - { - if (id == null) - throw new NullPointerException("Component ID is null"); - if (componentCache.containsKey(id)) - return loadComponentFromJsonObject(model, id, name, componentCache.get(id)); - String resolvedID = resolveID(id); - if (resolvedID == null) - throw new IllegalArgumentException("Unknown standard ID or illegal resolved ID: " + id); - String[] parts = resolvedID.split(":"); - String firstPart = parts[0]; - if (firstPart.equals("jsonfile")) - { - JsonObject jsonContents; - try - { - // don't use parts[1], because the path could contain ':' - jsonContents = JsonHandler.readJson(resolvedID.substring("jsonfile:".length()), JsonObject.class); - } - catch (IOException e) - { - throw new UncheckedIOException("Error loading JSON file", e); - } - return loadComponentFromJsonObject(model, id, name, jsonContents); - } - ResourceLoader loader; - String resTypeID; - String resID; - if (firstPart.equals("resloader")) - { - String loaderID = parts[1]; - loader = resourceLoaders.get(loaderID); - if (loader == null) - tryLoadResourceLoader(loaderID); - loader = resourceLoaders.get(loaderID); - if (loader == null) - throw new IllegalArgumentException( - "Unknown resource loader: " + loaderID + " (but class was found. Probably the static initializer is missing)"); - resTypeID = parts[2]; - resID = parts[3]; - } else - { - loader = defaultResourceLoader; - resTypeID = parts[0]; - resID = parts[1]; - } - if (resTypeID.equals("jsonres")) - { - JsonObject jsonContents; - try - { - @SuppressWarnings("resource") // jsonStream is closed in JsonHandler - InputStream jsonStream = Objects.requireNonNull(loader.loadResource(resID), "Error loading JSON resource: Not found"); - jsonContents = JsonHandler.readJson(jsonStream, JsonObject.class); - } - catch (IOException e) - { - throw new UncheckedIOException("Error loading JSON resource", e); - } - return loadComponentFromJsonObject(model, id, name, jsonContents); - } else if (resTypeID.equals("class")) - { - ComponentSupplier componentSupplier = componentSuppliers.get(resID); - if (componentSupplier == null) - try - { - loader.loadClass(resID); - } - catch (@SuppressWarnings("unused") ClassNotFoundException e) - { - throw new IllegalArgumentException("Unknown component supplier: " + resID); - } - componentSupplier = componentSuppliers.get(resID); - if (componentSupplier == null) - throw new IllegalArgumentException( - "Unknown component supplier: " + resID + " (but class was found. Probably the static initializer is missing)"); - return componentSupplier.create(model, params, name); - } else - throw new IllegalStateException("Unknown resource type ID: " + resTypeID); - } - - public static String resolveID(String id) - { - if (checkIDIsValidResolvedID(id)) - return id; - return standardComponentIDs.get(id); - } - - private static boolean checkIDIsValidResolvedID(String id) - { - return id.matches("jsonfile:(.+)|(resloader:([^:]+):)?(jsonres|class):[^:]+"); - } - - private static SubmodelComponent loadComponentFromJsonObject(ViewModelModifiable model, String id, String name, JsonObject jsonContents) - { - componentCache.putIfAbsent(id, jsonContents); - SerializablePojo jsonContentsAsSerializablePojo = JsonHandler.parser.fromJson(jsonContents, SerializablePojo.class); - if (jsonContentsAsSerializablePojo.version == null) - return LegacySubmodelComponentSerializer.deserialize(model, - JsonHandler.parser.fromJson(jsonContents, LegacySubmodelComponentParams.class), name, id, null); - return SubmodelComponentSerializer.deserialize(model, JsonHandler.parser.fromJson(jsonContents, SubmodelComponentParams.class), - name, id, null); - } - - public static void registerResourceLoader(ResourceLoader resourceLoader) - { - registerResourceLoader(resourceLoader, resourceLoader.getClass()); - } - - public static void registerResourceLoader(ResourceLoader resourceLoader, Class reference) - { - resourceLoaders.put(reference.getName(), Objects.requireNonNull(resourceLoader)); - } - - public static void registerResourceLoader(ResourceLoader resourceLoader, String reference) - { - resourceLoaders.put(reference, Objects.requireNonNull(resourceLoader)); - } - - private static void tryLoadResourceLoader(String loaderClassName) - { - ReflectionHelper.tryInvokeStaticInitializer(loaderClassName, "Error loading resoruce loader %s: %s\n"); - } - - public static interface ComponentSupplier - { - public GUIComponent create(ViewModelModifiable model, JsonElement params, String name); - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectModelComponentCreator.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectModelComponentCreator.java new file mode 100644 index 00000000..b6585742 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectModelComponentCreator.java @@ -0,0 +1,222 @@ +package net.mograsim.logic.model.serializing; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import com.google.gson.JsonElement; +import com.google.gson.JsonNull; +import com.google.gson.JsonObject; + +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; +import net.mograsim.logic.model.util.JsonHandler; + +public class IndirectModelComponentCreator +{ + private static final Map standardComponentIDs = new HashMap<>(); + private static final Map standardComponentIDsUnmodifiable = Collections.unmodifiableMap(standardComponentIDs); + + private static final Map componentSuppliers = new HashMap<>(); + private static final Map resourceLoaders = new HashMap<>(); + private static final Map componentCache = new HashMap<>(); + + private static final ResourceLoader defaultResourceLoader; + static + { + defaultResourceLoader = ClassLoaderBasedResourceLoader.create(IndirectModelComponentCreator.class.getClassLoader()); + loadStandardComponentIDs(IndirectModelComponentCreator.class.getResourceAsStream("standardComponentIDMapping.json")); + } + + public static void loadStandardComponentIDs(InputStream standardComponentIdMappingStream) + { + try (InputStream s = standardComponentIdMappingStream) + { + if (s == null) + throw new IOException("Resource not found"); + Map tmp = JsonHandler.readJson(s, Map.class); + // don't use putAll to apply sanity checks + tmp.forEach((st, id) -> + { + try + { + addStandardComponentID(st, id); + } + catch (IllegalArgumentException e) + { + System.err.println("Component ID mapping contained illegal entry: " + e.getMessage()); + } + }); + } + catch (IOException e) + { + System.err.println("Failed to initialize standard snippet ID mapping: " + e.getMessage()); + } + } + + public static void addStandardComponentID(String standardComponentID, String associatedComponentID) + { + if (!checkIDIsValidResolvedID(associatedComponentID)) + throw new IllegalArgumentException("Unrecognized component ID format: " + associatedComponentID); + standardComponentIDs.put(standardComponentID, associatedComponentID); + } + + public static Map getStandardComponentIDs() + { + return standardComponentIDsUnmodifiable; + } + + public static void setComponentSupplier(String id, ComponentSupplier componentSupplier) + { + componentSuppliers.put(id, componentSupplier); + } + + public static ModelComponent createComponent(ViewModelModifiable model, String id) + { + return createComponent(model, id, (String) null); + } + + public static ModelComponent createComponent(ViewModelModifiable model, String id, String name) + { + return createComponent(model, id, JsonNull.INSTANCE, name); + } + + public static ModelComponent createComponent(ViewModelModifiable model, String id, JsonElement params) + { + return createComponent(model, id, params, null); + } + + public static ModelComponent createComponent(ViewModelModifiable model, String id, JsonElement params, String name) + { + if (id == null) + throw new NullPointerException("Component ID is null"); + if (componentCache.containsKey(id)) + return loadComponentFromJsonObject(model, id, name, componentCache.get(id)); + String resolvedID = resolveID(id); + if (resolvedID == null) + throw new IllegalArgumentException("Unknown standard ID or illegal resolved ID: " + id); + String[] parts = resolvedID.split(":"); + String firstPart = parts[0]; + if (firstPart.equals("jsonfile")) + { + JsonObject jsonContents; + try + { + // don't use parts[1], because the path could contain ':' + jsonContents = JsonHandler.readJson(resolvedID.substring("jsonfile:".length()), JsonObject.class); + } + catch (IOException e) + { + throw new UncheckedIOException("Error loading JSON file", e); + } + return loadComponentFromJsonObject(model, id, name, jsonContents); + } + ResourceLoader loader; + String resTypeID; + String resID; + if (firstPart.equals("resloader")) + { + String loaderID = parts[1]; + loader = resourceLoaders.get(loaderID); + if (loader == null) + tryLoadResourceLoader(loaderID); + loader = resourceLoaders.get(loaderID); + if (loader == null) + throw new IllegalArgumentException( + "Unknown resource loader: " + loaderID + " (but class was found. Probably the static initializer is missing)"); + resTypeID = parts[2]; + resID = parts[3]; + } else + { + loader = defaultResourceLoader; + resTypeID = parts[0]; + resID = parts[1]; + } + if (resTypeID.equals("jsonres")) + { + JsonObject jsonContents; + try + { + @SuppressWarnings("resource") // jsonStream is closed in JsonHandler + InputStream jsonStream = Objects.requireNonNull(loader.loadResource(resID), "Error loading JSON resource: Not found"); + jsonContents = JsonHandler.readJson(jsonStream, JsonObject.class); + } + catch (IOException e) + { + throw new UncheckedIOException("Error loading JSON resource", e); + } + return loadComponentFromJsonObject(model, id, name, jsonContents); + } else if (resTypeID.equals("class")) + { + ComponentSupplier componentSupplier = componentSuppliers.get(resID); + if (componentSupplier == null) + try + { + loader.loadClass(resID); + } + catch (@SuppressWarnings("unused") ClassNotFoundException e) + { + throw new IllegalArgumentException("Unknown component supplier: " + resID); + } + componentSupplier = componentSuppliers.get(resID); + if (componentSupplier == null) + throw new IllegalArgumentException( + "Unknown component supplier: " + resID + " (but class was found. Probably the static initializer is missing)"); + return componentSupplier.create(model, params, name); + } else + throw new IllegalStateException("Unknown resource type ID: " + resTypeID); + } + + public static String resolveID(String id) + { + if (checkIDIsValidResolvedID(id)) + return id; + return standardComponentIDs.get(id); + } + + private static boolean checkIDIsValidResolvedID(String id) + { + return id.matches("jsonfile:(.+)|(resloader:([^:]+):)?(jsonres|class):[^:]+"); + } + + private static SubmodelComponent loadComponentFromJsonObject(ViewModelModifiable model, String id, String name, JsonObject jsonContents) + { + componentCache.putIfAbsent(id, jsonContents); + SerializablePojo jsonContentsAsSerializablePojo = JsonHandler.parser.fromJson(jsonContents, SerializablePojo.class); + if (jsonContentsAsSerializablePojo.version == null) + return LegacySubmodelComponentSerializer.deserialize(model, + JsonHandler.parser.fromJson(jsonContents, LegacySubmodelComponentParams.class), name, id, null); + return SubmodelComponentSerializer.deserialize(model, JsonHandler.parser.fromJson(jsonContents, SubmodelComponentParams.class), + name, id, null); + } + + public static void registerResourceLoader(ResourceLoader resourceLoader) + { + registerResourceLoader(resourceLoader, resourceLoader.getClass()); + } + + public static void registerResourceLoader(ResourceLoader resourceLoader, Class reference) + { + resourceLoaders.put(reference.getName(), Objects.requireNonNull(resourceLoader)); + } + + public static void registerResourceLoader(ResourceLoader resourceLoader, String reference) + { + resourceLoaders.put(reference, Objects.requireNonNull(resourceLoader)); + } + + private static void tryLoadResourceLoader(String loaderClassName) + { + ReflectionHelper.tryInvokeStaticInitializer(loaderClassName, "Error loading resoruce loader %s: %s\n"); + } + + public static interface ComponentSupplier + { + public ModelComponent create(ViewModelModifiable model, JsonElement params, String name); + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java index dc5d4207..f456aad2 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java @@ -10,9 +10,9 @@ import com.google.gson.JsonElement; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.MovablePin; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.model.wires.PinUsage; @@ -163,7 +163,7 @@ public final class LegacySubmodelComponentSerializer * @author Fabian Stemmler * @author Daniel Kirschten */ - @SuppressWarnings("unused") // for GUIWire being created + @SuppressWarnings("unused") // for ModelWire being created public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params, String name, String idForSerializingOverride, JsonElement paramsForSerializingOverride) { @@ -177,19 +177,19 @@ public final class LegacySubmodelComponentSerializer iPinParams.location.y)); LegacySubmodelParameters submodelParams = params.submodel; ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable(); - Map componentsByName = submodelModifiable.getComponentsByName(); - GUIComponent[] components = new GUIComponent[submodelParams.subComps.length]; + Map componentsByName = submodelModifiable.getComponentsByName(); + ModelComponent[] components = new ModelComponent[submodelParams.subComps.length]; for (int i = 0; i < components.length; i++) { LegacyInnerComponentParams cParams = submodelParams.subComps[i]; - components[i] = IndirectGUIComponentCreator.createComponent(submodelModifiable, cParams.id, cParams.params, cParams.name); + components[i] = IndirectModelComponentCreator.createComponent(submodelModifiable, cParams.id, cParams.params, cParams.name); components[i].moveTo(cParams.pos.x, cParams.pos.y); } for (int i = 0; i < submodelParams.innerWires.length; i++) { LegacyInnerWireParams innerWire = submodelParams.innerWires[i]; - new GUIWire(submodelModifiable, innerWire.name, componentsByName.get(innerWire.pin1.compName).getPin(innerWire.pin1.pinName), + new ModelWire(submodelModifiable, innerWire.name, componentsByName.get(innerWire.pin1.compName).getPin(innerWire.pin1.pinName), componentsByName.get(innerWire.pin2.compName).getPin(innerWire.pin2.pinName), innerWire.path); } comp.setSymbolRenderer(SubmodelComponentSnippetSuppliers.symbolRendererSupplier.getSnippetSupplier(params.symbolRendererSnippetID) @@ -211,7 +211,7 @@ public final class LegacySubmodelComponentSerializer * If this case doesn't apply (e.g. if the subcomponent is not a SubmodelComponent; or it is a * SubmodelComponent, but hasn't been deserialized; or it has no * {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride} set), the ID defined by idGetter - * and the params obtained by {@link GUIComponent#getParamsForSerializing() getParams()} are written.
+ * and the params obtained by {@link ModelComponent#getParamsForSerializing() getParams()} are written.
* CodeSnippets are serialized using the ID defined by idGetter and the params obtained by the respective * getParamsForSerializing methods ({@link Renderer#getParamsForSerializing()}). * @@ -223,11 +223,11 @@ public final class LegacySubmodelComponentSerializer LegacySubmodelParameters submodelParams = new LegacySubmodelParameters(); submodelParams.innerScale = comp.getSubmodelScale(); - Map components = new HashMap<>(comp.submodel.getComponentsByName()); + Map components = new HashMap<>(comp.submodel.getComponentsByName()); components.remove(SubmodelComponent.SUBMODEL_INTERFACE_NAME); LegacyInnerComponentParams[] componentParams = new LegacyInnerComponentParams[components.size()]; int i1 = 0; - for (GUIComponent innerComponent : components.values()) + for (ModelComponent innerComponent : components.values()) { LegacyInnerComponentParams innerComponentParams = new LegacyInnerComponentParams(); componentParams[i1] = innerComponentParams; @@ -248,10 +248,10 @@ public final class LegacySubmodelComponentSerializer } submodelParams.subComps = componentParams; - Collection wires = comp.submodel.getWiresByName().values(); + Collection wires = comp.submodel.getWiresByName().values(); LegacyInnerWireParams wireParams[] = new LegacyInnerWireParams[wires.size()]; i1 = 0; - for (GUIWire innerWire : wires) + for (ModelWire innerWire : wires) { LegacyInnerWireParams innerWireParams = new LegacyInnerWireParams(); wireParams[i1] = innerWireParams; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ResourceLoader.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ResourceLoader.java index ff7fd07f..f15b475e 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ResourceLoader.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ResourceLoader.java @@ -3,10 +3,10 @@ package net.mograsim.logic.model.serializing; import java.io.IOException; import java.io.InputStream; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; /** - * For loading JSON {@link GUIComponent}s from other OSGI-Modules or jar-Files. + * For loading JSON {@link ModelComponent}s from other OSGI-Modules or jar-Files. */ public interface ResourceLoader { diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java index 84e9fdb0..d09ed4a4 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java @@ -158,7 +158,7 @@ public final class SubmodelComponentSerializer * @author Fabian Stemmler * @author Daniel Kirschten */ - @SuppressWarnings("unused") // for GUIWire being created + @SuppressWarnings("unused") // for ModelWire being created public static SubmodelComponent deserialize(ViewModelModifiable model, SubmodelComponentParams params, String name, String idForSerializingOverride, JsonElement paramsForSerializingOverride) { diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java index 61d4915e..443fe050 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java @@ -14,9 +14,9 @@ import com.google.gson.JsonElement; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.mograsim.logic.model.model.ViewModel; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.serializing.ViewModelParams.ComponentParams; import net.mograsim.logic.model.serializing.ViewModelParams.WireParams; import net.mograsim.logic.model.serializing.ViewModelParams.WireParams.PinParams; @@ -101,22 +101,22 @@ public class ViewModelSerializer * @author Fabian Stemmler * @author Daniel Kirschten */ - @SuppressWarnings("unused") // for GUIWire being created + @SuppressWarnings("unused") // for ModelWire being created public static void deserialize(ViewModelModifiable model, ViewModelParams params) { - Map componentsByName = model.getComponentsByName(); - GUIComponent[] components = new GUIComponent[params.components.length]; + Map componentsByName = model.getComponentsByName(); + ModelComponent[] components = new ModelComponent[params.components.length]; for (int i = 0; i < components.length; i++) { ComponentParams compParams = params.components[i]; - components[i] = IndirectGUIComponentCreator.createComponent(model, compParams.id, compParams.params, compParams.name); + components[i] = IndirectModelComponentCreator.createComponent(model, compParams.id, compParams.params, compParams.name); components[i].moveTo(compParams.pos.x, compParams.pos.y); } for (int i = 0; i < params.wires.length; i++) { WireParams wire = params.wires[i]; - new GUIWire(model, wire.name, componentsByName.get(wire.pin1.compName).getPin(wire.pin1.pinName), + new ModelWire(model, wire.name, componentsByName.get(wire.pin1.compName).getPin(wire.pin1.pinName), componentsByName.get(wire.pin2.compName).getPin(wire.pin2.pinName), wire.path); } } @@ -131,7 +131,7 @@ public class ViewModelSerializer * {@link DeserializedSubmodelComponent#paramsForSerializingOverride paramsForSerializingOverride} are written.
* If this case doesn't apply (e.g. if the component is not a SubmodelComponent; or it is a SubmodelComponent, * but hasn't been deserialized; or it has no {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride} - * set), the ID defined by idGetter and the params obtained by {@link GUIComponent#getParamsForSerializing() getParams()} + * set), the ID defined by idGetter and the params obtained by {@link ModelComponent#getParamsForSerializing() getParams()} * are written. * * @author Fabian Stemmler @@ -141,10 +141,10 @@ public class ViewModelSerializer { ViewModelParams modelParams = new ViewModelParams(CURRENT_JSON_VERSION); - Map components = new HashMap<>(model.getComponentsByName()); + Map components = new HashMap<>(model.getComponentsByName()); components.remove(SubmodelComponent.SUBMODEL_INTERFACE_NAME); Set componentsParams = new HashSet<>(); - for (GUIComponent component : components.values()) + for (ModelComponent component : components.values()) { ComponentParams compParams = new ComponentParams(); componentsParams.add(compParams); @@ -165,9 +165,9 @@ public class ViewModelSerializer modelParams.components = componentsParams.toArray(ComponentParams[]::new); Arrays.sort(modelParams.components, Comparator.comparing(c -> c.name)); - Collection wires = model.getWiresByName().values(); + Collection wires = model.getWiresByName().values(); Set wiresParams = new HashSet<>(); - for (GUIWire innerWire : wires) + for (ModelWire innerWire : wires) { WireParams innerWireParams = new WireParams(); wiresParams.add(innerWireParams); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json index 8fa63b0f..aadc0b20 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json @@ -1,15 +1,15 @@ mograsim version: 0.1.3 { - "GUIAndGate": "class:net.mograsim.logic.model.model.components.atomic.GUIAndGate", - "GUIBitDisplay": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", - "GUIClock": "class:net.mograsim.logic.model.model.components.atomic.GUIClock", - "GUIFixedOutput": "class:net.mograsim.logic.model.model.components.atomic.GUIFixedOutput", - "GUIManualSwitch": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch", - "GUIMerger": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", - "GUINandGate": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", - "GUIOrGate": "class:net.mograsim.logic.model.model.components.atomic.GUIOrGate", - "GUISplitter": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", - "GUITriStateBuffer": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer", - "TextComponent": "class:net.mograsim.logic.model.model.components.atomic.TextComponent", - "WireCrossPoint": "class:net.mograsim.logic.model.model.wires.WireCrossPoint" + "AndGate": "class:net.mograsim.logic.model.model.components.atomic.ModelAndGate", + "BitDisplay": "class:net.mograsim.logic.model.model.components.atomic.ModelBitDisplay", + "Clock": "class:net.mograsim.logic.model.model.components.atomic.ModelClock", + "FixedOutput": "class:net.mograsim.logic.model.model.components.atomic.ModelFixedOutput", + "ManualSwitch": "class:net.mograsim.logic.model.model.components.atomic.ModelManualSwitch", + "Merger": "class:net.mograsim.logic.model.model.components.atomic.ModelMerger", + "NandGate": "class:net.mograsim.logic.model.model.components.atomic.ModelNandGate", + "OrGate": "class:net.mograsim.logic.model.model.components.atomic.ModelOrGate", + "Splitter": "class:net.mograsim.logic.model.model.components.atomic.ModelSplitter", + "TriStateBuffer": "class:net.mograsim.logic.model.model.components.atomic.ModelTriStateBuffer", + "TextComponent": "class:net.mograsim.logic.model.model.components.atomic.ModelTextComponent", + "WireCrossPoint": "class:net.mograsim.logic.model.model.wires.ModelWireCrossPoint" } \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/HighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/HighLevelStateHandler.java index cbe58eb1..622df00b 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/HighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/HighLevelStateHandler.java @@ -1,6 +1,6 @@ package net.mograsim.logic.model.snippets; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.serializing.JSONSerializable; /** @@ -21,7 +21,7 @@ public interface HighLevelStateHandler extends JSONSerializable * See {@link HighLevelStateHandler} for an explanation of high-level state IDs. * * @see #setHighLevelState(String, Object) - * @see GUIComponent#getHighLevelState(String) + * @see ModelComponent#getHighLevelState(String) * * @author Daniel Kirschten */ @@ -32,7 +32,7 @@ public interface HighLevelStateHandler extends JSONSerializable * See {@link HighLevelStateHandler} for an explanation of high-level state IDs. * * @see #getHighLevelState(String) - * @see GUIComponent#setHighLevelState(String, Object) + * @see ModelComponent#setHighLevelState(String, Object) * * @author Daniel Kirschten */ diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/SubmodelComponentSnippetSuppliers.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/SubmodelComponentSnippetSuppliers.java index 394eec0c..860557fd 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/SubmodelComponentSnippetSuppliers.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/SubmodelComponentSnippetSuppliers.java @@ -4,7 +4,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Map; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler; import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer; @@ -13,8 +13,8 @@ import net.mograsim.logic.model.util.JsonHandler; public class SubmodelComponentSnippetSuppliers { - public static final CodeSnippetSupplier symbolRendererSupplier; - public static final CodeSnippetSupplier outlineRendererSupplier; + public static final CodeSnippetSupplier symbolRendererSupplier; + public static final CodeSnippetSupplier outlineRendererSupplier; public static final CodeSnippetSupplier highLevelStateHandlerSupplier; static diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/DelegatingAtomicHighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/DelegatingAtomicHighLevelStateHandler.java index 25291797..7a568827 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/DelegatingAtomicHighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/DelegatingAtomicHighLevelStateHandler.java @@ -1,6 +1,6 @@ package net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.SnippetDefinintion; @@ -10,7 +10,7 @@ import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.Standar public class DelegatingAtomicHighLevelStateHandler implements AtomicHighLevelStateHandler { private final SubmodelComponent parentComponent; - private GUIComponent delegateTarget; + private ModelComponent delegateTarget; private String subStateID; public DelegatingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context) @@ -32,13 +32,13 @@ public class DelegatingAtomicHighLevelStateHandler implements AtomicHighLevelSta } } - public void set(GUIComponent delegateTarget, String subStateID) + public void set(ModelComponent delegateTarget, String subStateID) { setDelegateTarget(delegateTarget); setSubStateID(subStateID); } - public void setDelegateTarget(GUIComponent delegateTarget) + public void setDelegateTarget(ModelComponent delegateTarget) { if (delegateTarget == null) this.delegateTarget = parentComponent; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java index c1e8faf1..cd09bd8e 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/WireForcingAtomicHighLevelStateHandler.java @@ -9,7 +9,7 @@ import java.util.stream.Collectors; import net.mograsim.logic.core.types.Bit; import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.SnippetDefinintion; import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.HighLevelStateHandlerContext; @@ -19,8 +19,8 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt { private SubmodelComponent component; private int logicWidth; - private final List wiresToForce; - private final List wiresToForceInverted; + private final List wiresToForce; + private final List wiresToForceInverted; public WireForcingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context) { @@ -34,27 +34,27 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt this.wiresToForceInverted = new ArrayList<>(); if (params != null) { - Map wiresByName = component.submodel.getWiresByName(); - setWiresToForce(params.wiresToForce.stream().map((Function) wiresByName::get).collect(Collectors.toList()), - params.wiresToForceInverted.stream().map((Function) wiresByName::get).collect(Collectors.toList())); + Map wiresByName = component.submodel.getWiresByName(); + setWiresToForce(params.wiresToForce.stream().map((Function) wiresByName::get).collect(Collectors.toList()), + params.wiresToForceInverted.stream().map((Function) wiresByName::get).collect(Collectors.toList())); } } - public void set(List wiresToForce, List wiresToForceInverted) + public void set(List wiresToForce, List wiresToForceInverted) { setWiresToForce(wiresToForce, wiresToForceInverted); } - public void setWiresToForce(List wiresToForce, List wiresToForceInverted) + public void setWiresToForce(List wiresToForce, List wiresToForceInverted) { clearWiresToForce(); - for (GUIWire wire : wiresToForce) + for (ModelWire wire : wiresToForce) addWireToForce(wire, false); - for (GUIWire wire : wiresToForceInverted) + for (ModelWire wire : wiresToForceInverted) addWireToForce(wire, true); } - public void addWireToForce(GUIWire wire, boolean inverted) + public void addWireToForce(ModelWire wire, boolean inverted) { if (component.submodel.getWiresByName().get(wire.name) != wire) throw new IllegalArgumentException("Can only force wires belonging to the parent component of this handler"); @@ -79,11 +79,11 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt public Object getHighLevelState() { BitVector result = BitVector.of(Bit.ZERO, logicWidth); - for (GUIWire wire : wiresToForceInverted) + for (ModelWire wire : wiresToForceInverted) if (wire.hasLogicModelBinding()) result = result.or(wire.getWireValues()); result = result.not(); - for (GUIWire wire : wiresToForce) + for (ModelWire wire : wiresToForce) if (wire.hasLogicModelBinding()) result = result.and(wire.getWireValues()); return result; @@ -97,11 +97,11 @@ public class WireForcingAtomicHighLevelStateHandler implements AtomicHighLevelSt vector = BitVector.of((Bit) newState); else vector = (BitVector) newState; - for (GUIWire wire : wiresToForce) + for (ModelWire wire : wiresToForce) if (wire.hasLogicModelBinding()) wire.forceWireValues(vector); vector = vector.not(); - for (GUIWire wire : wiresToForceInverted) + for (ModelWire wire : wiresToForceInverted) if (wire.hasLogicModelBinding()) wire.forceWireValues(vector); } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/subcomponent/DelegatingSubcomponentHighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/subcomponent/DelegatingSubcomponentHighLevelStateHandler.java index 80e76b07..0d1fd655 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/subcomponent/DelegatingSubcomponentHighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/subcomponent/DelegatingSubcomponentHighLevelStateHandler.java @@ -1,6 +1,6 @@ package net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.SnippetDefinintion; @@ -10,7 +10,7 @@ import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.Standar public class DelegatingSubcomponentHighLevelStateHandler implements SubcomponentHighLevelStateHandler { private final SubmodelComponent parentComponent; - private GUIComponent delegateTarget; + private ModelComponent delegateTarget; private String prefix; public DelegatingSubcomponentHighLevelStateHandler(HighLevelStateHandlerContext context) @@ -33,13 +33,13 @@ public class DelegatingSubcomponentHighLevelStateHandler implements Subcomponent } } - public void set(GUIComponent delegateTarget, String prefix) + public void set(ModelComponent delegateTarget, String prefix) { setDelegateTarget(delegateTarget); setPrefix(prefix); } - public void setDelegateTarget(GUIComponent delegateTarget) + public void setDelegateTarget(ModelComponent delegateTarget) { if (delegateTarget == null) this.delegateTarget = parentComponent; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/outlinerenderers/DefaultOutlineRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/outlinerenderers/DefaultOutlineRenderer.java index 5207bc93..90f25a41 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/outlinerenderers/DefaultOutlineRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/outlinerenderers/DefaultOutlineRenderer.java @@ -2,7 +2,7 @@ package net.mograsim.logic.model.snippets.outlinerenderers; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.Renderer; import net.mograsim.logic.model.snippets.SnippetDefinintion; @@ -13,14 +13,14 @@ import net.mograsim.preferences.Preferences; public class DefaultOutlineRenderer implements Renderer { - private final GUIComponent component; + private final ModelComponent component; - public DefaultOutlineRenderer(GUIComponent component) + public DefaultOutlineRenderer(ModelComponent component) { this(component, null); } - public DefaultOutlineRenderer(GUIComponent component, @SuppressWarnings("unused") Void params) + public DefaultOutlineRenderer(ModelComponent component, @SuppressWarnings("unused") Void params) { this.component = component; } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/CenteredTextSymbolRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/CenteredTextSymbolRenderer.java index 196400dd..9a6599a6 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/CenteredTextSymbolRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/CenteredTextSymbolRenderer.java @@ -4,7 +4,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Font; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.Renderer; import net.mograsim.logic.model.snippets.SnippetDefinintion; @@ -20,11 +20,11 @@ import net.mograsim.preferences.Preferences; */ public class CenteredTextSymbolRenderer implements Renderer { - private final GUIComponent component; + private final ModelComponent component; private final String text; private final double fontHeight; - public CenteredTextSymbolRenderer(GUIComponent component, CenteredTextParams params) + public CenteredTextSymbolRenderer(ModelComponent component, CenteredTextParams params) { this.component = component; this.text = params.text; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/DefaultSymbolRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/DefaultSymbolRenderer.java index 0ff502ec..28ad8a86 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/DefaultSymbolRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/DefaultSymbolRenderer.java @@ -3,7 +3,7 @@ package net.mograsim.logic.model.snippets.symbolrenderers; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.Renderer; import net.mograsim.logic.model.snippets.SnippetDefinintion; @@ -16,14 +16,14 @@ public class DefaultSymbolRenderer implements Renderer { private static final String id = ""; - private final GUIComponent component; + private final ModelComponent component; - public DefaultSymbolRenderer(GUIComponent component) + public DefaultSymbolRenderer(ModelComponent component) { this(component, null); } - public DefaultSymbolRenderer(GUIComponent component, @SuppressWarnings("unused") Void params) + public DefaultSymbolRenderer(ModelComponent component, @SuppressWarnings("unused") Void params) { this.component = component; } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/PinNamesSymbolRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/PinNamesSymbolRenderer.java index eff5fb66..a6380135 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/PinNamesSymbolRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/PinNamesSymbolRenderer.java @@ -7,7 +7,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Font; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.Renderer; @@ -17,12 +17,12 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer. public class PinNamesSymbolRenderer implements Renderer { - private final GUIComponent component; + private final ModelComponent component; private final Map pinPositions; private final double pinLabelHeight; private final double pinLabelMargin; - public PinNamesSymbolRenderer(GUIComponent component, PinNamesParams params) + public PinNamesSymbolRenderer(ModelComponent component, PinNamesParams params) { this.component = component; this.pinPositions = new HashMap<>(); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java index f72375e5..d57203ab 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java @@ -8,7 +8,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Font; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.snippets.Renderer; @@ -26,14 +26,14 @@ import net.mograsim.preferences.Preferences; */ public class SimpleRectangularLikeSymbolRenderer implements Renderer { - private final GUIComponent component; + private final ModelComponent component; private final String centerText; private final double centerTextHeight; private final double horizontalComponentCenter; private final double pinLabelHeight; private final double pinLabelMargin; - public SimpleRectangularLikeSymbolRenderer(GUIComponent component, SimpleRectangularLikeParams params) + public SimpleRectangularLikeSymbolRenderer(ModelComponent component, SimpleRectangularLikeParams params) { this.component = component; this.centerText = params.centerText; diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/util/ModellingTool.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/util/ModellingTool.java index 1f19edb7..06ce3ca6 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/util/ModellingTool.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/util/ModellingTool.java @@ -1,10 +1,10 @@ package net.mograsim.logic.model.util; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; public class ModellingTool { @@ -15,94 +15,94 @@ public class ModellingTool this.model = model; } - public GUIWire connect(GUIComponent a, GUIComponent b, String pinA, String pinB) + public ModelWire connect(ModelComponent a, ModelComponent b, String pinA, String pinB) { return connect(null, a, b, pinA, pinB); } - public GUIWire connect(WireCrossPoint a, GUIComponent b, String pinB) + public ModelWire connect(ModelWireCrossPoint a, ModelComponent b, String pinB) { return connect(null, a, b, pinB); } - public GUIWire connect(Pin a, GUIComponent b, String pinB) + public ModelWire connect(Pin a, ModelComponent b, String pinB) { return connect(null, a, b, pinB); } - public GUIWire connect(GUIComponent a, WireCrossPoint b, String pinA) + public ModelWire connect(ModelComponent a, ModelWireCrossPoint b, String pinA) { return connect(null, a, b, pinA); } - public GUIWire connect(WireCrossPoint a, WireCrossPoint b) + public ModelWire connect(ModelWireCrossPoint a, ModelWireCrossPoint b) { return connect(null, a, b); } - public GUIWire connect(Pin a, WireCrossPoint b) + public ModelWire connect(Pin a, ModelWireCrossPoint b) { return connect(null, a, b); } - public GUIWire connect(GUIComponent a, Pin b, String pinA) + public ModelWire connect(ModelComponent a, Pin b, String pinA) { return connect(null, a, b, pinA); } - public GUIWire connect(WireCrossPoint a, Pin b) + public ModelWire connect(ModelWireCrossPoint a, Pin b) { return connect(null, a, b); } - public GUIWire connect(Pin a, Pin b) + public ModelWire connect(Pin a, Pin b) { return connect(null, a, b); } - public GUIWire connect(String name, GUIComponent a, GUIComponent b, String pinA, String pinB) + public ModelWire connect(String name, ModelComponent a, ModelComponent b, String pinA, String pinB) { return connect(name, a.getPin(pinA), b.getPin(pinB)); } - public GUIWire connect(String name, WireCrossPoint a, GUIComponent b, String pinB) + public ModelWire connect(String name, ModelWireCrossPoint a, ModelComponent b, String pinB) { return connect(name, a.getPin(), b.getPin(pinB)); } - public GUIWire connect(String name, Pin a, GUIComponent b, String pinB) + public ModelWire connect(String name, Pin a, ModelComponent b, String pinB) { return connect(name, a, b.getPin(pinB)); } - public GUIWire connect(String name, GUIComponent a, WireCrossPoint b, String pinA) + public ModelWire connect(String name, ModelComponent a, ModelWireCrossPoint b, String pinA) { return connect(name, a.getPin(pinA), b.getPin()); } - public GUIWire connect(String name, WireCrossPoint a, WireCrossPoint b) + public ModelWire connect(String name, ModelWireCrossPoint a, ModelWireCrossPoint b) { return connect(name, a.getPin(), b.getPin()); } - public GUIWire connect(String name, Pin a, WireCrossPoint b) + public ModelWire connect(String name, Pin a, ModelWireCrossPoint b) { return connect(name, a, b.getPin()); } - public GUIWire connect(String name, GUIComponent a, Pin b, String pinA) + public ModelWire connect(String name, ModelComponent a, Pin b, String pinA) { return connect(name, a.getPin(pinA), b); } - public GUIWire connect(String name, WireCrossPoint a, Pin b) + public ModelWire connect(String name, ModelWireCrossPoint a, Pin b) { return connect(name, a.getPin(), b); } - public GUIWire connect(String name, Pin a, Pin b) + public ModelWire connect(String name, Pin a, Pin b) { - return new GUIWire(model, name, a, b); + return new ModelWire(model, name, a, b); } public static ModellingTool createFor(ViewModelModifiable model) diff --git a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/GUIMemoryWA.java b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/GUIMemoryWA.java deleted file mode 100644 index bd5eba89..00000000 --- a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/GUIMemoryWA.java +++ /dev/null @@ -1,118 +0,0 @@ -package net.mograsim.machine.standard.memory; - -import net.haspamelodica.swt.helper.gcs.GeneralGC; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.GUIComponent; -import net.mograsim.logic.model.model.components.atomic.GUIAndGate; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; -import net.mograsim.logic.model.serializing.IdentifyParams; -import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; -import net.mograsim.logic.model.snippets.Renderer; -import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer; -import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer; -import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer.CenteredTextParams; -import net.mograsim.logic.model.util.JsonHandler; -import net.mograsim.machine.MainMemoryDefinition; - -public class GUIMemoryWA extends GUIComponent -{ - private final MainMemoryDefinition definition; - private final Pin addrPin, dataPin, rWPin; - private WordAddressableMemoryComponent memory; - private final static int width = 100, height = 300; - private Renderer symbolRenderer; - private Renderer outlineRenderer; - - public GUIMemoryWA(ViewModelModifiable model, MainMemoryDefinition definition, String name) - { - super(model, name); - this.definition = definition; - - CenteredTextParams renderer1Params = new CenteredTextParams(); - renderer1Params.text = "RAM"; - renderer1Params.fontHeight = 24; - this.symbolRenderer = new CenteredTextSymbolRenderer(this, renderer1Params); - this.outlineRenderer = new DefaultOutlineRenderer(this); - - setSize(width, height); - //TODO check the usages - addPin(addrPin = new Pin(this, "A", definition.getMemoryAddressBits(), PinUsage.INPUT, 0, 10)); - addPin(dataPin = new Pin(this, "D", definition.getCellWidth(), PinUsage.TRISTATE, 0, 30)); - addPin(rWPin = new Pin(this, "RW", 1, PinUsage.INPUT, 0, 50)); - } - - public Pin getAddressPin() - { - return addrPin; - } - - public Pin getDataPin() - { - return dataPin; - } - - public Pin getReadWritePin() - { - return rWPin; - } - - public void setLogicModelBinding(WordAddressableMemoryComponent memory) - { - this.memory = memory; - } - - public MainMemoryDefinition getDefinition() - { - return definition; - } - - public WordAddressableMemoryComponent getMemory() - { - return memory; - } - - @Override - public void render(GeneralGC gc, Rectangle visibleRegion) - { - symbolRenderer.render(gc, visibleRegion); - outlineRenderer.render(gc, visibleRegion); - } - - @Override - public String getIDForSerializing(IdentifyParams idParams) - { - return "GUIMemoryWA";//TODO - } - - @Override - public GUIMemoryWAParams getParamsForSerializing(IdentifyParams idParams) - { - GUIMemoryWAParams params = new GUIMemoryWAParams(); - params.addrBits = definition.getMemoryAddressBits(); - params.cellWidth = definition.getCellWidth(); - params.minAddr = definition.getMinimalAddress(); - params.maxAddr = definition.getMaximalAddress(); - return params; - } - - static - { - ViewLogicModelAdapter.addComponentAdapter(new WordAddressableMemoryAdapter()); - IndirectGUIComponentCreator.setComponentSupplier(GUIAndGate.class.getCanonicalName(), (m, p, n) -> - { - GUIMemoryWAParams params = JsonHandler.fromJsonTree(p, GUIMemoryWAParams.class); - return new GUIMemoryWA(m, MainMemoryDefinition.create(params.addrBits, params.cellWidth, params.minAddr, params.maxAddr), n); - }); - } - - public static class GUIMemoryWAParams - { - public int addrBits; - public int cellWidth; - public long minAddr; - public long maxAddr; - } -} diff --git a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java new file mode 100644 index 00000000..8da1dbb2 --- /dev/null +++ b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java @@ -0,0 +1,118 @@ +package net.mograsim.machine.standard.memory; + +import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.model.components.atomic.ModelAndGate; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.serializing.IdentifyParams; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.Renderer; +import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer; +import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer; +import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer.CenteredTextParams; +import net.mograsim.logic.model.util.JsonHandler; +import net.mograsim.machine.MainMemoryDefinition; + +public class ModelMemoryWA extends ModelComponent +{ + private final MainMemoryDefinition definition; + private final Pin addrPin, dataPin, rWPin; + private WordAddressableMemoryComponent memory; + private final static int width = 100, height = 300; + private Renderer symbolRenderer; + private Renderer outlineRenderer; + + public ModelMemoryWA(ViewModelModifiable model, MainMemoryDefinition definition, String name) + { + super(model, name); + this.definition = definition; + + CenteredTextParams renderer1Params = new CenteredTextParams(); + renderer1Params.text = "RAM"; + renderer1Params.fontHeight = 24; + this.symbolRenderer = new CenteredTextSymbolRenderer(this, renderer1Params); + this.outlineRenderer = new DefaultOutlineRenderer(this); + + setSize(width, height); + //TODO check the usages + addPin(addrPin = new Pin(this, "A", definition.getMemoryAddressBits(), PinUsage.INPUT, 0, 10)); + addPin(dataPin = new Pin(this, "D", definition.getCellWidth(), PinUsage.TRISTATE, 0, 30)); + addPin(rWPin = new Pin(this, "RW", 1, PinUsage.INPUT, 0, 50)); + } + + public Pin getAddressPin() + { + return addrPin; + } + + public Pin getDataPin() + { + return dataPin; + } + + public Pin getReadWritePin() + { + return rWPin; + } + + public void setLogicModelBinding(WordAddressableMemoryComponent memory) + { + this.memory = memory; + } + + public MainMemoryDefinition getDefinition() + { + return definition; + } + + public WordAddressableMemoryComponent getMemory() + { + return memory; + } + + @Override + public void render(GeneralGC gc, Rectangle visibleRegion) + { + symbolRenderer.render(gc, visibleRegion); + outlineRenderer.render(gc, visibleRegion); + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return "MemoryWA"; + } + + @Override + public ModelMemoryWAParams getParamsForSerializing(IdentifyParams idParams) + { + ModelMemoryWAParams params = new ModelMemoryWAParams(); + params.addrBits = definition.getMemoryAddressBits(); + params.cellWidth = definition.getCellWidth(); + params.minAddr = definition.getMinimalAddress(); + params.maxAddr = definition.getMaximalAddress(); + return params; + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new WordAddressableMemoryAdapter()); + IndirectModelComponentCreator.setComponentSupplier(ModelAndGate.class.getCanonicalName(), (m, p, n) -> + { + ModelMemoryWAParams params = JsonHandler.fromJsonTree(p, ModelMemoryWAParams.class); + return new ModelMemoryWA(m, MainMemoryDefinition.create(params.addrBits, params.cellWidth, params.minAddr, params.maxAddr), n); + }); + } + + public static class ModelMemoryWAParams + { + public int addrBits; + public int cellWidth; + public long minAddr; + public long maxAddr; + } +} diff --git a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java index bf6cb4f9..8d76f93a 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java +++ b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryAdapter.java @@ -10,24 +10,24 @@ import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.LogicModelParameters; import net.mograsim.logic.model.modeladapter.componentadapters.ComponentAdapter; -public class WordAddressableMemoryAdapter implements ComponentAdapter +public class WordAddressableMemoryAdapter implements ComponentAdapter { @Override - public Class getSupportedClass() + public Class getSupportedClass() { - return GUIMemoryWA.class; + return ModelMemoryWA.class; } @SuppressWarnings("unused") @Override - public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIMemoryWA guiComponent, + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, ModelMemoryWA modelComponent, Map logicWiresPerPin) { - ReadWriteEnd data = logicWiresPerPin.get(guiComponent.getDataPin()).createReadWriteEnd(); - ReadEnd address = logicWiresPerPin.get(guiComponent.getAddressPin()).createReadOnlyEnd(); - ReadEnd mode = logicWiresPerPin.get(guiComponent.getReadWritePin()).createReadOnlyEnd(); - new WordAddressableMemoryComponent(timeline, 2, guiComponent.getDefinition(), data, mode, address); + ReadWriteEnd data = logicWiresPerPin.get(modelComponent.getDataPin()).createReadWriteEnd(); + ReadEnd address = logicWiresPerPin.get(modelComponent.getAddressPin()).createReadOnlyEnd(); + ReadEnd mode = logicWiresPerPin.get(modelComponent.getReadWritePin()).createReadOnlyEnd(); + new WordAddressableMemoryComponent(timeline, 2, modelComponent.getDefinition(), data, mode, address); } } diff --git a/net.mograsim.plugin.core/src/net/mograsim/plugin/SimulationPreview.java b/net.mograsim.plugin.core/src/net/mograsim/plugin/SimulationPreview.java index 42fada84..f669a49a 100644 --- a/net.mograsim.plugin.core/src/net/mograsim/plugin/SimulationPreview.java +++ b/net.mograsim.plugin.core/src/net/mograsim/plugin/SimulationPreview.java @@ -10,11 +10,11 @@ import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.model.LogicExecuter; import net.mograsim.logic.model.LogicUICanvas; import net.mograsim.logic.model.model.ViewModelModifiable; -import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; -import net.mograsim.logic.model.model.components.atomic.GUINotGate; -import net.mograsim.logic.model.model.components.atomic.GUIOrGate; -import net.mograsim.logic.model.model.wires.GUIWire; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch; +import net.mograsim.logic.model.model.components.atomic.ModelNotGate; +import net.mograsim.logic.model.model.components.atomic.ModelOrGate; +import net.mograsim.logic.model.model.wires.ModelWire; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; import net.mograsim.logic.model.modeladapter.LogicModelParameters; import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; import net.mograsim.preferences.Preferences; @@ -41,44 +41,44 @@ public class SimulationPreview implements IThemePreview params.gateProcessTime = 50; params.wireTravelTime = 10; - GUIManualSwitch rIn = new GUIManualSwitch(model, 1); + ModelManualSwitch rIn = new ModelManualSwitch(model, 1); rIn.moveTo(10, 10); - GUIManualSwitch sIn = new GUIManualSwitch(model, 1); + ModelManualSwitch sIn = new ModelManualSwitch(model, 1); sIn.moveTo(10, 70); - GUIOrGate or1 = new GUIOrGate(model, 1); + ModelOrGate or1 = new ModelOrGate(model, 1); or1.moveTo(70, 12.5); - new GUIWire(model, rIn.getOutputPin(), or1.getPin("A")); + new ModelWire(model, rIn.getOutputPin(), or1.getPin("A")); - GUIOrGate or2 = new GUIOrGate(model, 1); + ModelOrGate or2 = new ModelOrGate(model, 1); or2.moveTo(70, 62.5); - new GUIWire(model, sIn.getOutputPin(), or2.getPin("B")); + new ModelWire(model, sIn.getOutputPin(), or2.getPin("B")); - GUINotGate not1 = new GUINotGate(model, 1); + ModelNotGate not1 = new ModelNotGate(model, 1); not1.moveTo(110, 17.5); - new GUIWire(model, or1.getPin("Y"), not1.getPin("A")); + new ModelWire(model, or1.getPin("Y"), not1.getPin("A")); - GUINotGate not2 = new GUINotGate(model, 1); + ModelNotGate not2 = new ModelNotGate(model, 1); not2.moveTo(110, 67.5); - new GUIWire(model, or2.getPin("Y"), not2.getPin("A")); + new ModelWire(model, or2.getPin("Y"), not2.getPin("A")); - WireCrossPoint p1 = new WireCrossPoint(model, 1); + ModelWireCrossPoint p1 = new ModelWireCrossPoint(model, 1); p1.moveCenterTo(140, 22.5); - new GUIWire(model, not1.getPin("Y"), p1); - new GUIWire(model, p1, or2.getPin("A"), new Point(140, 35), new Point(50, 60), new Point(50, 67.5)); + new ModelWire(model, not1.getPin("Y"), p1); + new ModelWire(model, p1, or2.getPin("A"), new Point(140, 35), new Point(50, 60), new Point(50, 67.5)); - WireCrossPoint p2 = new WireCrossPoint(model, 1); + ModelWireCrossPoint p2 = new ModelWireCrossPoint(model, 1); p2.moveCenterTo(140, 72.5); - new GUIWire(model, not2.getPin("Y"), p2); - new GUIWire(model, p2, or1.getPin("B"), new Point(140, 60), new Point(50, 35), new Point(50, 27.5)); + new ModelWire(model, not2.getPin("Y"), p2); + new ModelWire(model, p2, or1.getPin("B"), new Point(140, 60), new Point(50, 35), new Point(50, 27.5)); - WireCrossPoint o1 = new WireCrossPoint(model, 1); + ModelWireCrossPoint o1 = new ModelWireCrossPoint(model, 1); o1.moveCenterTo(150, 22.5); - new GUIWire(model, p1, o1); + new ModelWire(model, p1, o1); - WireCrossPoint o2 = new WireCrossPoint(model, 1); + ModelWireCrossPoint o2 = new ModelWireCrossPoint(model, 1); o2.moveCenterTo(150, 72.5); - new GUIWire(model, p2, o2); + new ModelWire(model, p2, o2); Timeline t = ViewLogicModelAdapter.convert(model, params); exec = new LogicExecuter(t);