From d1bac6997196c2921e33307d9061908b938b80f8 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Mon, 4 May 2020 20:24:53 +0200 Subject: [PATCH] Implemented the Am2904ShiftInstrDecode gate-based --- .../am2904/Am2904ShiftInstrDecode.json | 4322 +++++++++++++++++ .../am2904/ModelAm2904ShiftInstrDecode.java | 323 -- .../am2900/standardComponentIDMapping.json | 2 +- 3 files changed, 4323 insertions(+), 324 deletions(-) create mode 100644 plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904ShiftInstrDecode.json delete mode 100644 plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java diff --git a/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904ShiftInstrDecode.json b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904ShiftInstrDecode.json new file mode 100644 index 00000000..66b33461 --- /dev/null +++ b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/am2904/Am2904ShiftInstrDecode.json @@ -0,0 +1,4322 @@ +{ + "width": 60.0, + "height": 80.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I", + "logicWidth": 5, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 75.0 + }, + "name": "MC_EN", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 65.0 + }, + "name": "MC_MUX", + "logicWidth": 2, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 55.0 + }, + "name": "OE0", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 45.0 + }, + "name": "OEn", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 25.0 + }, + "name": "QIO0_MUX", + "logicWidth": 3, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 35.0 + }, + "name": "QIOn_MUX", + "logicWidth": 3, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 5.0 + }, + "name": "SIO0_MUX", + "logicWidth": 3, + "usage": "OUTPUT" + }, + { + "location": { + "x": 60.0, + "y": 15.0 + }, + "name": "SIOn_MUX", + "logicWidth": 3, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "_SE", + "logicWidth": 1, + "usage": "OUTPUT" + } + ], + "innerScale": 0.1, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#0", + "pos": { + "x": 50.0, + "y": 225.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#1", + "pos": { + "x": 50.0, + "y": 250.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#2", + "pos": { + "x": 50.0, + "y": 275.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#3", + "pos": { + "x": 50.0, + "y": 300.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#4", + "pos": { + "x": 45.0, + "y": 535.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#5", + "pos": { + "x": 50.0, + "y": 350.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#6", + "pos": { + "x": 50.0, + "y": 375.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 555.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#8", + "pos": { + "x": 525.0, + "y": 25.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#9", + "pos": { + "x": 500.0, + "y": 170.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#10", + "pos": { + "x": 470.0, + "y": 160.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#11", + "pos": { + "x": 450.0, + "y": 185.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#12", + "pos": { + "x": 440.0, + "y": 150.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#13", + "pos": { + "x": 415.0, + "y": 180.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#14", + "pos": { + "x": 515.0, + "y": 115.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#15", + "pos": { + "x": 485.0, + "y": 125.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#16", + "pos": { + "x": 295.0, + "y": 65.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#17", + "pos": { + "x": 265.0, + "y": 85.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#18", + "pos": { + "x": 265.0, + "y": 60.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#19", + "pos": { + "x": 225.0, + "y": 60.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#20", + "pos": { + "x": 195.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#21", + "pos": { + "x": 190.0, + "y": 75.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#22", + "pos": { + "x": 555.0, + "y": 205.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#23", + "pos": { + "x": 525.0, + "y": 200.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#24", + "pos": { + "x": 525.0, + "y": 225.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#25", + "pos": { + "x": 495.0, + "y": 220.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#26", + "pos": { + "x": 555.0, + "y": 340.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#27", + "pos": { + "x": 525.0, + "y": 340.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#28", + "pos": { + "x": 490.0, + "y": 345.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#29", + "pos": { + "x": 520.0, + "y": 315.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#30", + "pos": { + "x": 490.0, + "y": 285.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#31", + "pos": { + "x": 490.0, + "y": 315.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#32", + "pos": { + "x": 505.0, + "y": 760.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#33", + "pos": { + "x": 505.0, + "y": 735.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#34", + "pos": { + "x": 470.0, + "y": 715.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#35", + "pos": { + "x": 410.0, + "y": 745.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#36", + "pos": { + "x": 440.0, + "y": 750.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#37", + "pos": { + "x": 435.0, + "y": 725.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#38", + "pos": { + "x": 535.0, + "y": 755.0 + }, + "params": 1 + }, + { + "id": "NandGate", + "name": "NandGate#39", + "pos": { + "x": 515.0, + "y": 270.0 + }, + "params": 1 + }, + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 230.0 + }, + "params": { + "logicWidth": 5, + "orientation": "RIGHT" + } + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 580.0, + "y": 645.0 + }, + "params": { + "logicWidth": 2, + "orientation": "LEFT" + } + }, + { + "id": "Splitter", + "name": "Splitter#2", + "pos": { + "x": 585.0, + "y": 340.0 + }, + "params": { + "logicWidth": 3, + "orientation": "LEFT" + } + }, + { + "id": "Splitter", + "name": "Splitter#3", + "pos": { + "x": 585.0, + "y": 240.0 + }, + "params": { + "logicWidth": 3, + "orientation": "LEFT" + } + }, + { + "id": "Splitter", + "name": "Splitter#4", + "pos": { + "x": 585.0, + "y": 140.0 + }, + "params": { + "logicWidth": 3, + "orientation": "LEFT" + } + }, + { + "id": "Splitter", + "name": "Splitter#5", + "pos": { + "x": 585.0, + "y": 40.0 + }, + "params": { + "logicWidth": 3, + "orientation": "LEFT" + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 434.0, + "y": 764.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 544.0, + "y": 559.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 29.0, + "y": 254.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 34.0, + "y": 279.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 39.0, + "y": 304.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 39.0, + "y": 549.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 474.0, + "y": 289.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 29.0, + "y": 264.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 479.0, + "y": 239.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 39.0, + "y": 314.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 29.0, + "y": 339.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 84.0, + "y": 259.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 429.0, + "y": 164.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 29.0, + "y": 249.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 24.0, + "y": 239.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 519.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 469.0, + "y": 309.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#17", + "pos": { + "x": 539.0, + "y": 549.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#18", + "pos": { + "x": 539.0, + "y": 544.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#19", + "pos": { + "x": 29.0, + "y": 354.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#20", + "pos": { + "x": 479.0, + "y": 329.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#21", + "pos": { + "x": 339.0, + "y": 259.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#22", + "pos": { + "x": 179.0, + "y": 209.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#23", + "pos": { + "x": 484.0, + "y": 319.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#24", + "pos": { + "x": 214.0, + "y": 224.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#25", + "pos": { + "x": 104.0, + "y": 359.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#26", + "pos": { + "x": 19.0, + "y": 389.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#27", + "pos": { + "x": 19.0, + "y": 379.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#28", + "pos": { + "x": 379.0, + "y": 254.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#29", + "pos": { + "x": 94.0, + "y": 309.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#30", + "pos": { + "x": 399.0, + "y": 459.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#31", + "pos": { + "x": 434.0, + "y": 754.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#32", + "pos": { + "x": 509.0, + "y": 279.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#33", + "pos": { + "x": 24.0, + "y": 229.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#34", + "pos": { + "x": 34.0, + "y": 259.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#35", + "pos": { + "x": 39.0, + "y": 269.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#36", + "pos": { + "x": 109.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#37", + "pos": { + "x": 34.0, + "y": 289.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#38", + "pos": { + "x": 89.0, + "y": 284.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#39", + "pos": { + "x": 79.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#40", + "pos": { + "x": 84.0, + "y": 269.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#41", + "pos": { + "x": 184.0, + "y": 239.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#42", + "pos": { + "x": 219.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#43", + "pos": { + "x": 169.0, + "y": 229.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#44", + "pos": { + "x": 174.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#45", + "pos": { + "x": 179.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#46", + "pos": { + "x": 259.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#47", + "pos": { + "x": 329.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#48", + "pos": { + "x": 344.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#49", + "pos": { + "x": 354.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#50", + "pos": { + "x": 514.0, + "y": 89.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#51", + "pos": { + "x": 344.0, + "y": 209.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#52", + "pos": { + "x": 354.0, + "y": 229.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#53", + "pos": { + "x": 359.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#54", + "pos": { + "x": 429.0, + "y": 134.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#55", + "pos": { + "x": 339.0, + "y": 214.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#56", + "pos": { + "x": 434.0, + "y": 154.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#57", + "pos": { + "x": 364.0, + "y": 239.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#58", + "pos": { + "x": 369.0, + "y": 244.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#59", + "pos": { + "x": 369.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#60", + "pos": { + "x": 344.0, + "y": 264.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#61", + "pos": { + "x": 489.0, + "y": 264.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#62", + "pos": { + "x": 474.0, + "y": 279.0 + }, + "params": 1 + }, + { + "id": "and", + "name": "and#0", + "pos": { + "x": 50.0, + "y": 325.0 + } + }, + { + "id": "and", + "name": "and#1", + "pos": { + "x": 115.0, + "y": 255.0 + } + }, + { + "id": "and", + "name": "and#2", + "pos": { + "x": 550.0, + "y": 545.0 + } + }, + { + "id": "and", + "name": "and#3", + "pos": { + "x": 550.0, + "y": 445.0 + } + }, + { + "id": "and", + "name": "and#4", + "pos": { + "x": 415.0, + "y": 205.0 + } + }, + { + "id": "and", + "name": "and#5", + "pos": { + "x": 545.0, + "y": 110.0 + } + }, + { + "id": "and", + "name": "and#6", + "pos": { + "x": 480.0, + "y": 100.0 + } + }, + { + "id": "and", + "name": "and#7", + "pos": { + "x": 225.0, + "y": 85.0 + } + }, + { + "id": "and", + "name": "and#8", + "pos": { + "x": 550.0, + "y": 315.0 + } + }, + { + "id": "and", + "name": "and#9", + "pos": { + "x": 470.0, + "y": 745.0 + } + }, + { + "id": "and", + "name": "and#10", + "pos": { + "x": 565.0, + "y": 745.0 + } + }, + { + "id": "and", + "name": "and#11", + "pos": { + "x": 550.0, + "y": 270.0 + } + }, + { + "id": "and", + "name": "and#12", + "pos": { + "x": 450.0, + "y": 120.0 + } + } + ], + "wires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "and#2", + "pinName": "B" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "MC_MUX" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QIOn_MUX" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#3", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "QIO0_MUX" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#4", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SIOn_MUX" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#5", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "SIO0_MUX" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 30.0, + "y": 210.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#34", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#35", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#32", + "pinName": "B" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 435.0, + "y": 775.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#37", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_SE" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 40.0, + "y": 540.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "and#0", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 25.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#35", + "pinName": "" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#48", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#51", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 40.0, + "y": 365.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "and#0", + "pinName": "B" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#40", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#38", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "and#12", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#15", + "pinName": "A" + }, + "name": "unnamedWire#38", + "path": [ + { + "x": 480.0, + "y": 125.0 + }, + { + "x": 480.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#43", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 85.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#36", + "pinName": "" + }, + "pin2": { + "compName": "and#1", + "pinName": "A" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 110.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O2" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#49", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 550.0, + "y": 45.0 + }, + { + "x": 550.0, + "y": 50.0 + }, + { + "x": 355.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#35", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#39", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [ + { + "x": 405.0, + "y": 760.0 + }, + { + "x": 405.0, + "y": 465.0 + }, + { + "x": 80.0, + "y": 465.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#50", + "pinName": "" + }, + "pin2": { + "compName": "and#5", + "pinName": "A" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 540.0, + "y": 90.0 + }, + { + "x": 540.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O0" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "B" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 520.0, + "y": 40.0 + } + ] + }, + { + "pin1": { + "compName": "and#12", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#49", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "and#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "OEn" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "and#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "OE0" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#4", + "pinName": "Y" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "pin2": { + "compName": "and#2", + "pinName": "A" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [ + { + "x": 75.0, + "y": 385.0 + }, + { + "x": 75.0, + "y": 460.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#36", + "pinName": "B" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "name": "unnamedWire#58", + "path": [ + { + "x": 545.0, + "y": 645.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#19", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#60", + "path": [ + { + "x": 30.0, + "y": 450.0 + }, + { + "x": 390.0, + "y": 450.0 + }, + { + "x": 390.0, + "y": 655.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O0" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 575.0, + "y": 180.0 + }, + { + "x": 575.0, + "y": 160.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "A" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 495.0, + "y": 170.0 + }, + { + "x": 495.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#11", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 475.0, + "y": 195.0 + }, + { + "x": 475.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#12", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#64", + "path": [ + { + "x": 465.0, + "y": 160.0 + }, + { + "x": 465.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#12", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#56", + "pinName": "" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#12", + "pinName": "B" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "and#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#58", + "pinName": "" + }, + "name": "unnamedWire#68", + "path": [ + { + "x": 100.0, + "y": 330.0 + }, + { + "x": 100.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#58", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#59", + "pinName": "" + }, + "name": "unnamedWire#69", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#13", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "A" + }, + "name": "unnamedWire#70", + "path": [] + }, + { + "pin1": { + "compName": "and#4", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#11", + "pinName": "B" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 445.0, + "y": 210.0 + }, + { + "x": 445.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#34", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#55", + "pinName": "" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 35.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 20.0, + "y": 445.0 + }, + { + "x": 385.0, + "y": 445.0 + }, + { + "x": 385.0, + "y": 560.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#34", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#13", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#55", + "pinName": "" + }, + "name": "unnamedWire#75", + "path": [ + { + "x": 340.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#51", + "pinName": "" + }, + "pin2": { + "compName": "and#4", + "pinName": "A" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#39", + "pinName": "" + }, + "name": "unnamedWire#77", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "pin2": { + "compName": "and#4", + "pinName": "B" + }, + "name": "unnamedWire#78", + "path": [ + { + "x": 350.0, + "y": 225.0 + }, + { + "x": 350.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "and#5", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O1" + }, + "name": "unnamedWire#79", + "path": [ + { + "x": 575.0, + "y": 115.0 + }, + { + "x": 575.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#14", + "pinName": "Y" + }, + "pin2": { + "compName": "and#5", + "pinName": "B" + }, + "name": "unnamedWire#80", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#15", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#14", + "pinName": "B" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 510.0, + "y": 135.0 + }, + { + "x": 510.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "and#6", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#14", + "pinName": "A" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 510.0, + "y": 105.0 + }, + { + "x": 510.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#15", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#56", + "pinName": "" + }, + "name": "unnamedWire#83", + "path": [ + { + "x": 480.0, + "y": 140.0 + }, + { + "x": 480.0, + "y": 145.0 + }, + { + "x": 435.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#5", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "name": "unnamedWire#84", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "and#6", + "pinName": "B" + }, + "name": "unnamedWire#85", + "path": [ + { + "x": 105.0, + "y": 250.0 + }, + { + "x": 375.0, + "y": 250.0 + }, + { + "x": 375.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#18", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "A" + }, + "name": "unnamedWire#86", + "path": [ + { + "x": 540.0, + "y": 450.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#13", + "pinName": "A" + }, + "name": "unnamedWire#87", + "path": [ + { + "x": 335.0, + "y": 210.0 + }, + { + "x": 335.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "and#7", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#17", + "pinName": "A" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#36", + "pinName": "Y" + }, + "pin2": { + "compName": "and#9", + "pinName": "B" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#27", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "name": "unnamedWire#90", + "path": [ + { + "x": 20.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#54", + "pinName": "" + }, + "pin2": { + "compName": "and#6", + "pinName": "A" + }, + "name": "unnamedWire#91", + "path": [ + { + "x": 430.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#54", + "pinName": "" + }, + "pin2": { + "compName": "and#12", + "pinName": "B" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#33", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#36", + "pinName": "" + }, + "name": "unnamedWire#93", + "path": [ + { + "x": 25.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#16", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#4", + "pinName": "O2" + }, + "name": "unnamedWire#94", + "path": [ + { + "x": 580.0, + "y": 75.0 + }, + { + "x": 580.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#16", + "pinName": "B" + }, + "pin2": { + "compName": "NandGate#17", + "pinName": "Y" + }, + "name": "unnamedWire#95", + "path": [ + { + "x": 290.0, + "y": 80.0 + }, + { + "x": 290.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#18", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#16", + "pinName": "A" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#26", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#18", + "pinName": "A" + }, + "name": "unnamedWire#98", + "path": [ + { + "x": 260.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "and#9", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#37", + "pinName": "" + }, + "name": "unnamedWire#99", + "path": [ + { + "x": 465.0, + "y": 750.0 + }, + { + "x": 465.0, + "y": 715.0 + }, + { + "x": 395.0, + "y": 715.0 + }, + { + "x": 395.0, + "y": 455.0 + }, + { + "x": 35.0, + "y": 455.0 + } + ] + }, + { + "pin1": { + "compName": "and#7", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#100", + "path": [ + { + "x": 215.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "and#7", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "name": "unnamedWire#101", + "path": [ + { + "x": 220.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#19", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#18", + "pinName": "B" + }, + "name": "unnamedWire#102", + "path": [ + { + "x": 255.0, + "y": 70.0 + }, + { + "x": 255.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#20", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#19", + "pinName": "A" + }, + "name": "unnamedWire#103", + "path": [ + { + "x": 220.0, + "y": 60.0 + }, + { + "x": 220.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#21", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#19", + "pinName": "B" + }, + "name": "unnamedWire#104", + "path": [ + { + "x": 220.0, + "y": 85.0 + }, + { + "x": 220.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#20", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#43", + "pinName": "" + }, + "name": "unnamedWire#105", + "path": [ + { + "x": 170.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#20", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "name": "unnamedWire#106", + "path": [ + { + "x": 175.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#22", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "name": "unnamedWire#107", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#21", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#41", + "pinName": "" + }, + "name": "unnamedWire#108", + "path": [ + { + "x": 185.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#39", + "pinName": "Y" + }, + "pin2": { + "compName": "and#11", + "pinName": "A" + }, + "name": "unnamedWire#109", + "path": [ + { + "x": 540.0, + "y": 280.0 + }, + { + "x": 540.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#58", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O1" + }, + "name": "unnamedWire#110", + "path": [ + { + "x": 390.0, + "y": 245.0 + }, + { + "x": 390.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#5", + "pinName": "O1" + }, + "name": "unnamedWire#111", + "path": [ + { + "x": 380.0, + "y": 55.0 + }, + { + "x": 580.0, + "y": 55.0 + }, + { + "x": 580.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#22", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#112", + "path": [ + { + "x": 580.0, + "y": 215.0 + }, + { + "x": 580.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#23", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#22", + "pinName": "A" + }, + "name": "unnamedWire#113", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#24", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#22", + "pinName": "B" + }, + "name": "unnamedWire#114", + "path": [ + { + "x": 550.0, + "y": 235.0 + }, + { + "x": 550.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#25", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#24", + "pinName": "A" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#59", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#23", + "pinName": "A" + }, + "name": "unnamedWire#116", + "path": [ + { + "x": 475.0, + "y": 235.0 + }, + { + "x": 475.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#23", + "pinName": "B" + }, + "name": "unnamedWire#117", + "path": [ + { + "x": 480.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#24", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "name": "unnamedWire#118", + "path": [ + { + "x": 520.0, + "y": 240.0 + }, + { + "x": 520.0, + "y": 255.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#25", + "pinName": "A" + }, + "name": "unnamedWire#119", + "path": [ + { + "x": 485.0, + "y": 260.0 + }, + { + "x": 485.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#60", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#61", + "pinName": "" + }, + "name": "unnamedWire#120", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#60", + "pinName": "" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "O0" + }, + "name": "unnamedWire#121", + "path": [ + { + "x": 345.0, + "y": 375.0 + }, + { + "x": 580.0, + "y": 375.0 + }, + { + "x": 580.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#26", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#2", + "pinName": "O1" + }, + "name": "unnamedWire#122", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#26", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#123", + "path": [ + { + "x": 550.0, + "y": 355.0 + }, + { + "x": 550.0, + "y": 370.0 + }, + { + "x": 470.0, + "y": 370.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#27", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#26", + "pinName": "A" + }, + "name": "unnamedWire#124", + "path": [ + { + "x": 550.0, + "y": 350.0 + }, + { + "x": 550.0, + "y": 345.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#27", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#125", + "path": [ + { + "x": 520.0, + "y": 355.0 + }, + { + "x": 520.0, + "y": 340.0 + }, + { + "x": 485.0, + "y": 340.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#28", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#126", + "path": [ + { + "x": 475.0, + "y": 360.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#28", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#127", + "path": [ + { + "x": 480.0, + "y": 350.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#2", + "pinName": "O2" + }, + "pin2": { + "compName": "and#8", + "pinName": "Y" + }, + "name": "unnamedWire#128", + "path": [ + { + "x": 580.0, + "y": 340.0 + }, + { + "x": 580.0, + "y": 320.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#17", + "pinName": "B" + }, + "name": "unnamedWire#129", + "path": [ + { + "x": 255.0, + "y": 110.0 + }, + { + "x": 255.0, + "y": 100.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#29", + "pinName": "Y" + }, + "pin2": { + "compName": "and#8", + "pinName": "B" + }, + "name": "unnamedWire#130", + "path": [ + { + "x": 545.0, + "y": 325.0 + }, + { + "x": 545.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#30", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#29", + "pinName": "A" + }, + "name": "unnamedWire#131", + "path": [ + { + "x": 515.0, + "y": 295.0 + }, + { + "x": 515.0, + "y": 320.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#31", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#29", + "pinName": "B" + }, + "name": "unnamedWire#132", + "path": [ + { + "x": 515.0, + "y": 325.0 + }, + { + "x": 515.0, + "y": 330.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#30", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#133", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#30", + "pinName": "B" + }, + "name": "unnamedWire#134", + "path": [ + { + "x": 360.0, + "y": 300.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#31", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#135", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#31", + "pinName": "B" + }, + "name": "unnamedWire#136", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#33", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#38", + "pinName": "A" + }, + "name": "unnamedWire#137", + "path": [ + { + "x": 530.0, + "y": 745.0 + }, + { + "x": 530.0, + "y": 760.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#38", + "pinName": "B" + }, + "pin2": { + "compName": "NandGate#32", + "pinName": "Y" + }, + "name": "unnamedWire#138", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#37", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#34", + "pinName": "B" + }, + "name": "unnamedWire#139", + "path": [ + { + "x": 460.0, + "y": 735.0 + }, + { + "x": 460.0, + "y": 730.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#32", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#38", + "pinName": "" + }, + "name": "unnamedWire#140", + "path": [ + { + "x": 500.0, + "y": 765.0 + }, + { + "x": 500.0, + "y": 710.0 + }, + { + "x": 415.0, + "y": 710.0 + }, + { + "x": 415.0, + "y": 475.0 + }, + { + "x": 90.0, + "y": 475.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#38", + "pinName": "Y" + }, + "pin2": { + "compName": "and#10", + "pinName": "B" + }, + "name": "unnamedWire#141", + "path": [ + { + "x": 560.0, + "y": 765.0 + }, + { + "x": 560.0, + "y": 760.0 + } + ] + }, + { + "pin1": { + "compName": "and#9", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#33", + "pinName": "B" + }, + "name": "unnamedWire#142", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#25", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#34", + "pinName": "A" + }, + "name": "unnamedWire#143", + "path": [ + { + "x": 105.0, + "y": 485.0 + }, + { + "x": 425.0, + "y": 485.0 + }, + { + "x": 425.0, + "y": 720.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#34", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#33", + "pinName": "A" + }, + "name": "unnamedWire#144", + "path": [ + { + "x": 495.0, + "y": 725.0 + }, + { + "x": 495.0, + "y": 740.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "and#8", + "pinName": "A" + }, + "name": "unnamedWire#145", + "path": [ + { + "x": 545.0, + "y": 310.0 + }, + { + "x": 545.0, + "y": 320.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "B" + }, + "name": "unnamedWire#146", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#35", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#30", + "pinName": "" + }, + "name": "unnamedWire#147", + "path": [ + { + "x": 400.0, + "y": 750.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#35", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "name": "unnamedWire#148", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#31", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#36", + "pinName": "A" + }, + "name": "unnamedWire#149", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#41", + "pinName": "" + }, + "name": "unnamedWire#150", + "path": [ + { + "x": 95.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "and#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#28", + "pinName": "" + }, + "name": "unnamedWire#151", + "path": [ + { + "x": 145.0, + "y": 260.0 + }, + { + "x": 145.0, + "y": 255.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#37", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#29", + "pinName": "" + }, + "name": "unnamedWire#152", + "path": [ + { + "x": 420.0, + "y": 740.0 + }, + { + "x": 420.0, + "y": 480.0 + }, + { + "x": 95.0, + "y": 480.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#37", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#153", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#37", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#40", + "pinName": "" + }, + "name": "unnamedWire#154", + "path": [ + { + "x": 410.0, + "y": 730.0 + }, + { + "x": 410.0, + "y": 470.0 + }, + { + "x": 85.0, + "y": 470.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#38", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "name": "unnamedWire#155", + "path": [ + { + "x": 90.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "NandGate#28", + "pinName": "Y" + }, + "pin2": { + "compName": "NandGate#27", + "pinName": "A" + }, + "name": "unnamedWire#156", + "path": [ + { + "x": 515.0, + "y": 355.0 + }, + { + "x": 515.0, + "y": 345.0 + } + ] + }, + { + "pin1": { + "compName": "and#10", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "MC_EN" + }, + "name": "unnamedWire#157", + "path": [] + }, + { + "pin1": { + "compName": "and#10", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#17", + "pinName": "" + }, + "name": "unnamedWire#158", + "path": [ + { + "x": 540.0, + "y": 750.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#61", + "pinName": "" + }, + "pin2": { + "compName": "and#11", + "pinName": "B" + }, + "name": "unnamedWire#159", + "path": [ + { + "x": 545.0, + "y": 265.0 + }, + { + "x": 545.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "and#11", + "pinName": "Y" + }, + "pin2": { + "compName": "Splitter#3", + "pinName": "O0" + }, + "name": "unnamedWire#160", + "path": [ + { + "x": 580.0, + "y": 275.0 + }, + { + "x": 580.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#39", + "pinName": "A" + }, + "name": "unnamedWire#161", + "path": [ + { + "x": 510.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#39", + "pinName": "B" + }, + "name": "unnamedWire#162", + "path": [ + { + "x": 510.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#62", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#32", + "pinName": "" + }, + "name": "unnamedWire#163", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#50", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#164", + "path": [ + { + "x": 515.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#165", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#48", + "pinName": "" + }, + "name": "unnamedWire#166", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#36", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "name": "unnamedWire#167", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#39", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#24", + "pinName": "" + }, + "name": "unnamedWire#168", + "path": [ + { + "x": 80.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#40", + "pinName": "" + }, + "pin2": { + "compName": "and#1", + "pinName": "B" + }, + "name": "unnamedWire#169", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#41", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#57", + "pinName": "" + }, + "name": "unnamedWire#170", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "name": "unnamedWire#171", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#43", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#52", + "pinName": "" + }, + "name": "unnamedWire#172", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#35", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "name": "unnamedWire#173", + "path": [ + { + "x": 40.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#21", + "pinName": "A" + }, + "name": "unnamedWire#174", + "path": [ + { + "x": 180.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#47", + "pinName": "" + }, + "name": "unnamedWire#175", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#47", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#62", + "pinName": "" + }, + "name": "unnamedWire#176", + "path": [ + { + "x": 330.0, + "y": 280.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#48", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#60", + "pinName": "" + }, + "name": "unnamedWire#177", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#52", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#178", + "path": [ + { + "x": 470.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#47", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#50", + "pinName": "" + }, + "name": "unnamedWire#179", + "path": [ + { + "x": 330.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#51", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#180", + "path": [ + { + "x": 345.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#52", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#49", + "pinName": "" + }, + "name": "unnamedWire#181", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#182", + "path": [ + { + "x": 360.0, + "y": 165.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#54", + "pinName": "" + }, + "name": "unnamedWire#183", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#55", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "name": "unnamedWire#184", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#57", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#185", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#56", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#57", + "pinName": "" + }, + "name": "unnamedWire#186", + "path": [ + { + "x": 365.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#21", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#23", + "pinName": "" + }, + "name": "unnamedWire#187", + "path": [ + { + "x": 340.0, + "y": 320.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#59", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#10", + "pinName": "B" + }, + "name": "unnamedWire#188", + "path": [ + { + "x": 370.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#20", + "pinName": "" + }, + "name": "unnamedWire#189", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#61", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#25", + "pinName": "B" + }, + "name": "unnamedWire#190", + "path": [ + { + "x": 490.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#62", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#191", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Shift\nInstruction\ndecode", + "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/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java deleted file mode 100644 index e2329f56..00000000 --- a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java +++ /dev/null @@ -1,323 +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.LogicModelModifiable; -import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent; -import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.PinUsage; -import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; -import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; - -public class ModelAm2904ShiftInstrDecode extends SimpleRectangularHardcodedModelComponent -{ - public ModelAm2904ShiftInstrDecode(LogicModelModifiable model, String name) - { - super(model, "Am2904ShiftInstrDecode", name, "Shift \ninstruction\ndecode", false); - setSize(60, 80); - addPin(new Pin(model, this, "I", 5, PinUsage.INPUT, 0, 25), Position.RIGHT); - addPin(new Pin(model, this, "_SE", 1, PinUsage.INPUT, 0, 55), Position.RIGHT); - // SIO0 MUX: - // 000: 0 - // 001: 1 - // 01x: SIOn - // 10x: QIOn - // 11x: MC - addPin(new Pin(model, 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(model, 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(model, 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(model, this, "QIOn_MUX", 3, PinUsage.OUTPUT, 60, 35), Position.LEFT); - addPin(new Pin(model, this, "OEn", 1, PinUsage.OUTPUT, 60, 45), Position.LEFT); - addPin(new Pin(model, this, "OE0", 1, PinUsage.OUTPUT, 60, 55), Position.LEFT); - // 00: SIO0 - // 01: QIO0 - // 1x: SIOn - addPin(new Pin(model, this, "MC_MUX", 2, PinUsage.OUTPUT, 60, 65), Position.LEFT); - addPin(new Pin(model, this, "MC_EN", 1, PinUsage.OUTPUT, 60, 75), Position.LEFT); - - init(); - } - - @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(ZERO, ONE, X); - break; - case 25: - case 27: - readWriteEnds.get("SIO0_MUX").feedSignals(ONE, 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("QIO0_MUX").feedSignals(ONE, ZERO, X); - break; - case 28: - case 30: - readWriteEnds.get("QIO0_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/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json index 3b94540b..a3c0728f 100644 --- a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json +++ b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json @@ -1,7 +1,6 @@ { "Am2900MainMemory": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.ModelAm2900MainMemory", "Am2900MicroInstructionMemory": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.ModelAm2900MicroInstructionMemory", - "Am2904ShiftInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.ModelAm2904ShiftInstrDecode", "ram5_12": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.Modelram5_12", "Am2900": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/Am2900.json", @@ -17,6 +16,7 @@ "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", "Am2904RegCTInstrDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904RegCTInstrDecode.json", + "Am2904ShiftInstrDecode": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904ShiftInstrDecode.json", "Am2904TestLogic": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2904/Am2904TestLogic.json", "Am2910": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2910/Am2910.json", "Am2910InstrPLA": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/am2910/Am2910InstrPLA.json", -- 2.17.1