From 3eef89febd75efd2f41df4ec79d4b8cc2c2ec5b3 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Wed, 25 Sep 2019 20:00:57 +0200 Subject: [PATCH] Made Am2900 memory reads work if Am2901Dest=QREG ... at the expense of U forming shortly in the D bus when the second cycle of a read starts, if the D bus is used in the first cycle; due to the memory controller's TriStateBuffers being en- and disabled earlier than the other TriStateBuffers writing to the buses. U also forms in the D bus when the cycle after the second one of a read starts, but this is due to the RAM chip shortly outputting U due to the address changing to X, because the A bus holds Z in the second cycle of a read. Writes don't have these kind of problems since the memory controller obviously doesn't output anything on the D bus when writing. --- .../logic/model/am2900/components/Am2900.json | 723 ++------ .../components/Am2900MemoryController.json | 930 ++++++++++ .../model/am2900/components/dlatch16.json | 1601 +++++++++++++++++ .../am2900/standardComponentIDMapping.json | 2 + 4 files changed, 2674 insertions(+), 582 deletions(-) create mode 100644 plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900MemoryController.json create mode 100644 plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch16.json diff --git a/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json index 74c0beb8..fe7cde2d 100644 --- a/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json +++ b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900.json @@ -9,8 +9,16 @@ "id": "Am2900MainMemory", "name": "Am2900MainMemory#0", "pos": { - "x": 35.0, - "y": 70.0 + "x": 80.0, + "y": 105.0 + } + }, + { + "id": "Am2900MemoryController", + "name": "Am2900MemoryController#0", + "pos": { + "x": 155.0, + "y": 275.0 } }, { @@ -138,7 +146,7 @@ "id": "FixedOutput", "name": "FixedOutput#2", "pos": { - "x": 365.0, + "x": 370.0, "y": 505.0 }, "params": { @@ -279,8 +287,8 @@ "id": "NandGate", "name": "NandGate#5", "pos": { - "x": 105.0, - "y": 235.0 + "x": 125.0, + "y": 285.0 }, "params": 1 }, @@ -293,15 +301,6 @@ }, "params": 1 }, - { - "id": "NandGate", - "name": "NandGate#7", - "pos": { - "x": 110.0, - "y": 270.0 - }, - "params": 1 - }, { "id": "Splitter", "name": "Splitter#0", @@ -905,30 +904,6 @@ "orientation": "RIGHT_ALT" } }, - { - "id": "TriStateBuffer", - "name": "TriStateBuffer#4", - "pos": { - "x": 185.0, - "y": 175.0 - }, - "params": { - "logicWidth": 16, - "orientation": "RIGHT_ALT" - } - }, - { - "id": "TriStateBuffer", - "name": "TriStateBuffer#5", - "pos": { - "x": 185.0, - "y": 145.0 - }, - "params": { - "logicWidth": 16, - "orientation": "LEFT" - } - }, { "id": "WireCrossPoint", "name": "WireCrossPoint#0", @@ -1284,7 +1259,7 @@ "id": "WireCrossPoint", "name": "WireCrossPoint#39", "pos": { - "x": 174.0, + "x": 179.0, "y": 364.0 }, "params": 1 @@ -1312,7 +1287,7 @@ "name": "WireCrossPoint#42", "pos": { "x": 364.0, - "y": 314.0 + "y": 359.0 }, "params": 1 }, @@ -1327,82 +1302,10 @@ }, { "id": "WireCrossPoint", - "name": "WireCrossPoint#44", - "pos": { - "x": 174.0, - "y": 254.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#45", + "name": "WireCrossPoint#53", "pos": { - "x": 174.0, - "y": 304.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#46", - "pos": { - "x": 174.0, - "y": 279.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#47", - "pos": { - "x": 104.0, - "y": 294.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#48", - "pos": { - "x": 129.0, - "y": 244.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#49", - "pos": { - "x": 104.0, - "y": 274.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#50", - "pos": { - "x": 234.0, - "y": 154.0 - }, - "params": 16 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#51", - "pos": { - "x": 164.0, - "y": 154.0 - }, - "params": 16 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#52", - "pos": { - "x": 104.0, - "y": 284.0 + "x": 169.0, + "y": 359.0 }, "params": 1 }, @@ -1430,22 +1333,6 @@ "y": 595.0 } }, - { - "id": "and", - "name": "and#3", - "pos": { - "x": 135.0, - "y": 240.0 - } - }, - { - "id": "and", - "name": "and#4", - "pos": { - "x": 135.0, - "y": 265.0 - } - }, { "id": "dff16", "name": "dff16#0", @@ -1454,14 +1341,6 @@ "y": 105.0 } }, - { - "id": "dff16", - "name": "dff16#1", - "pos": { - "x": 180.0, - "y": 65.0 - } - }, { "id": "dff16_invwe", "name": "dff16_invwe#0", @@ -1470,30 +1349,6 @@ "y": 165.0 } }, - { - "id": "dff", - "name": "dff#0", - "pos": { - "x": 180.0, - "y": 265.0 - } - }, - { - "id": "dff", - "name": "dff#1", - "pos": { - "x": 180.0, - "y": 240.0 - } - }, - { - "id": "dff", - "name": "dff#2", - "pos": { - "x": 180.0, - "y": 290.0 - } - }, { "id": "dlatch80", "name": "dlatch80#0", @@ -1548,7 +1403,7 @@ "name": "mux1_12#0", "pos": { "x": 365.0, - "y": 420.0 + "y": 415.0 } }, { @@ -1589,16 +1444,16 @@ "y": 355.0 }, { - "x": 470.0, + "x": 490.0, "y": 355.0 }, { - "x": 470.0, - "y": 505.0 + "x": 490.0, + "y": 500.0 }, { "x": 400.0, - "y": 505.0 + "y": 500.0 }, { "x": 400.0, @@ -3302,7 +3157,7 @@ "name": "unnamedWire#102", "path": [ { - "x": 175.0, + "x": 180.0, "y": 480.0 }, { @@ -3641,12 +3496,12 @@ "y": 325.0 }, { - "x": 100.0, + "x": 120.0, "y": 325.0 }, { - "x": 100.0, - "y": 250.0 + "x": 120.0, + "y": 300.0 } ] }, @@ -3698,39 +3553,59 @@ }, { "pin1": { - "compName": "WireCrossPoint#19", - "pinName": "" + "compName": "Am2900MemoryController#0", + "pinName": "Dmach" }, "pin2": { - "compName": "dff16#1", - "pinName": "D" + "compName": "WireCrossPoint#29", + "pinName": "" }, "name": "unnamedWire#125", "path": [ { - "x": 170.0, - "y": 60.0 + "x": 145.0, + "y": 280.0 }, { - "x": 170.0, - "y": 90.0 + "x": 145.0, + "y": 260.0 + }, + { + "x": 225.0, + "y": 260.0 + }, + { + "x": 225.0, + "y": 45.0 } ] }, { "pin1": { - "compName": "Am2900MainMemory#0", - "pinName": "D" + "compName": "WireCrossPoint#19", + "pinName": "" }, "pin2": { - "compName": "WireCrossPoint#51", - "pinName": "" + "compName": "Am2900MemoryController#0", + "pinName": "Amach" }, "name": "unnamedWire#126", "path": [ { - "x": 165.0, - "y": 120.0 + "x": 230.0, + "y": 60.0 + }, + { + "x": 230.0, + "y": 265.0 + }, + { + "x": 150.0, + "y": 265.0 + }, + { + "x": 150.0, + "y": 285.0 } ] }, @@ -3879,18 +3754,22 @@ }, { "pin1": { - "compName": "TriStateBuffer#4", - "pinName": "OUT" + "compName": "Am2900MemoryController#0", + "pinName": "Dmem" }, "pin2": { - "compName": "WireCrossPoint#50", - "pinName": "" + "compName": "Am2900MainMemory#0", + "pinName": "D" }, "name": "unnamedWire#135", "path": [ { - "x": 235.0, - "y": 185.0 + "x": 205.0, + "y": 280.0 + }, + { + "x": 205.0, + "y": 155.0 } ] }, @@ -3915,7 +3794,7 @@ }, { "x": 360.0, - "y": 425.0 + "y": 420.0 } ] }, @@ -4211,7 +4090,7 @@ "path": [ { "x": 435.0, - "y": 450.0 + "y": 445.0 } ] }, @@ -4228,7 +4107,7 @@ "path": [ { "x": 350.0, - "y": 480.0 + "y": 475.0 }, { "x": 350.0, @@ -5327,8 +5206,8 @@ "pinName": "O0" }, "pin2": { - "compName": "WireCrossPoint#47", - "pinName": "" + "compName": "Am2900MemoryController#0", + "pinName": "RWmach" }, "name": "unnamedWire#241", "path": [ @@ -5337,8 +5216,12 @@ "y": 320.0 }, { - "x": 105.0, + "x": 150.0, "y": 320.0 + }, + { + "x": 150.0, + "y": 300.0 } ] }, @@ -6809,12 +6692,20 @@ "name": "unnamedWire#335", "path": [ { - "x": 100.0, + "x": 270.0, "y": 230.0 }, { - "x": 100.0, - "y": 240.0 + "x": 270.0, + "y": 270.0 + }, + { + "x": 120.0, + "y": 270.0 + }, + { + "x": 120.0, + "y": 290.0 } ] }, @@ -6915,21 +6806,30 @@ "path": [ { "x": 260.0, - "y": 440.0 + "y": 435.0 } ] }, { "pin1": { - "compName": "WireCrossPoint#52", - "pinName": "" + "compName": "Am2900MemoryController#0", + "pinName": "Amem" }, "pin2": { - "compName": "NandGate#7", - "pinName": "B" + "compName": "Am2900MainMemory#0", + "pinName": "A" }, "name": "unnamedWire#344", - "path": [] + "path": [ + { + "x": 210.0, + "y": 285.0 + }, + { + "x": 210.0, + "y": 135.0 + } + ] }, { "pin1": { @@ -6958,16 +6858,11 @@ "pinName": "" }, "pin2": { - "compName": "WireCrossPoint#42", + "compName": "WireCrossPoint#53", "pinName": "" }, "name": "unnamedWire#346", - "path": [ - { - "x": 170.0, - "y": 315.0 - } - ] + "path": [] }, { "pin1": { @@ -6999,7 +6894,7 @@ "path": [ { "x": 480.0, - "y": 315.0 + "y": 360.0 }, { "x": 480.0, @@ -7039,40 +6934,32 @@ { "pin1": { "compName": "Am2900MainMemory#0", - "pinName": "A" + "pinName": "RW" }, "pin2": { - "compName": "dff16#1", - "pinName": "Q" + "compName": "Am2900MemoryController#0", + "pinName": "RWmem" }, "name": "unnamedWire#351", "path": [ { - "x": 170.0, - "y": 100.0 - }, - { - "x": 170.0, - "y": 125.0 - }, - { - "x": 230.0, - "y": 125.0 + "x": 215.0, + "y": 175.0 }, { - "x": 230.0, - "y": 90.0 + "x": 215.0, + "y": 300.0 } ] }, { "pin1": { - "compName": "WireCrossPoint#46", - "pinName": "" + "compName": "NandGate#5", + "pinName": "Y" }, "pin2": { - "compName": "WireCrossPoint#44", - "pinName": "" + "compName": "Am2900MemoryController#0", + "pinName": "EN" }, "name": "unnamedWire#352", "path": [] @@ -7083,364 +6970,24 @@ "pinName": "" }, "pin2": { - "compName": "WireCrossPoint#45", - "pinName": "" + "compName": "Am2900MemoryController#0", + "pinName": "C" }, "name": "unnamedWire#353", "path": [] }, { "pin1": { - "compName": "WireCrossPoint#44", + "compName": "WireCrossPoint#53", "pinName": "" }, "pin2": { - "compName": "dff16#1", - "pinName": "C" + "compName": "Am2900MemoryController#0", + "pinName": "_C" }, "name": "unnamedWire#354", - "path": [ - { - "x": 175.0, - "y": 70.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#44", - "pinName": "" - }, - "pin2": { - "compName": "dff#1", - "pinName": "C" - }, - "name": "unnamedWire#355", "path": [] }, - { - "pin1": { - "compName": "WireCrossPoint#45", - "pinName": "" - }, - "pin2": { - "compName": "dff#2", - "pinName": "C" - }, - "name": "unnamedWire#356", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#45", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#46", - "pinName": "" - }, - "name": "unnamedWire#357", - "path": [] - }, - { - "pin1": { - "compName": "dff#1", - "pinName": "Q" - }, - "pin2": { - "compName": "TriStateBuffer#4", - "pinName": "EN" - }, - "name": "unnamedWire#358", - "path": [ - { - "x": 220.0, - "y": 245.0 - }, - { - "x": 220.0, - "y": 200.0 - }, - { - "x": 195.0, - "y": 200.0 - } - ] - }, - { - "pin1": { - "compName": "dff#0", - "pinName": "Q" - }, - "pin2": { - "compName": "TriStateBuffer#5", - "pinName": "EN" - }, - "name": "unnamedWire#359", - "path": [ - { - "x": 225.0, - "y": 270.0 - }, - { - "x": 225.0, - "y": 170.0 - }, - { - "x": 195.0, - "y": 170.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#47", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#52", - "pinName": "" - }, - "name": "unnamedWire#360", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#49", - "pinName": "" - }, - "pin2": { - "compName": "NandGate#7", - "pinName": "A" - }, - "name": "unnamedWire#361", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#48", - "pinName": "" - }, - "pin2": { - "compName": "and#3", - "pinName": "A" - }, - "name": "unnamedWire#362", - "path": [] - }, - { - "pin1": { - "compName": "and#4", - "pinName": "Y" - }, - "pin2": { - "compName": "dff#0", - "pinName": "D" - }, - "name": "unnamedWire#363", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#49", - "pinName": "" - }, - "pin2": { - "compName": "and#3", - "pinName": "B" - }, - "name": "unnamedWire#364", - "path": [ - { - "x": 105.0, - "y": 260.0 - }, - { - "x": 125.0, - "y": 260.0 - }, - { - "x": 125.0, - "y": 255.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#48", - "pinName": "" - }, - "pin2": { - "compName": "and#4", - "pinName": "A" - }, - "name": "unnamedWire#365", - "path": [ - { - "x": 130.0, - "y": 270.0 - } - ] - }, - { - "pin1": { - "compName": "NandGate#5", - "pinName": "Y" - }, - "pin2": { - "compName": "WireCrossPoint#48", - "pinName": "" - }, - "name": "unnamedWire#366", - "path": [] - }, - { - "pin1": { - "compName": "and#3", - "pinName": "Y" - }, - "pin2": { - "compName": "dff#1", - "pinName": "D" - }, - "name": "unnamedWire#367", - "path": [] - }, - { - "pin1": { - "compName": "NandGate#7", - "pinName": "Y" - }, - "pin2": { - "compName": "and#4", - "pinName": "B" - }, - "name": "unnamedWire#368", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#50", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#29", - "pinName": "" - }, - "name": "unnamedWire#369", - "path": [ - { - "x": 235.0, - "y": 45.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#51", - "pinName": "" - }, - "pin2": { - "compName": "TriStateBuffer#5", - "pinName": "OUT" - }, - "name": "unnamedWire#370", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#51", - "pinName": "" - }, - "pin2": { - "compName": "TriStateBuffer#4", - "pinName": "IN" - }, - "name": "unnamedWire#371", - "path": [ - { - "x": 165.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "TriStateBuffer#5", - "pinName": "IN" - }, - "pin2": { - "compName": "WireCrossPoint#50", - "pinName": "" - }, - "name": "unnamedWire#372", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#52", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#49", - "pinName": "" - }, - "name": "unnamedWire#373", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#47", - "pinName": "" - }, - "pin2": { - "compName": "dff#2", - "pinName": "D" - }, - "name": "unnamedWire#374", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#46", - "pinName": "" - }, - "pin2": { - "compName": "dff#0", - "pinName": "C" - }, - "name": "unnamedWire#375", - "path": [] - }, - { - "pin1": { - "compName": "dff#2", - "pinName": "Q" - }, - "pin2": { - "compName": "Am2900MainMemory#0", - "pinName": "RW" - }, - "name": "unnamedWire#376", - "path": [ - { - "x": 230.0, - "y": 295.0 - }, - { - "x": 230.0, - "y": 210.0 - }, - { - "x": 160.0, - "y": 210.0 - }, - { - "x": 160.0, - "y": 140.0 - } - ] - }, { "pin1": { "compName": "ManualSwitch#0", @@ -7450,7 +6997,7 @@ "compName": "mux1#0", "pinName": "S0" }, - "name": "unnamedWire#377", + "name": "unnamedWire#355", "path": [ { "x": 95.0, @@ -7471,7 +7018,7 @@ "compName": "mux1#0", "pinName": "I1" }, - "name": "unnamedWire#378", + "name": "unnamedWire#356", "path": [ { "x": 95.0, @@ -7492,7 +7039,19 @@ "compName": "mux1#0", "pinName": "I0" }, - "name": "unnamedWire#379", + "name": "unnamedWire#357", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#42", + "pinName": "" + }, + "name": "unnamedWire#358", "path": [] } ], diff --git a/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900MemoryController.json b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900MemoryController.json new file mode 100644 index 00000000..cfc5955a --- /dev/null +++ b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/Am2900MemoryController.json @@ -0,0 +1,930 @@ +{ + "width": 45.0, + "height": 35.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "Amach", + "logicWidth": 16, + "usage": "INPUT" + }, + { + "location": { + "x": 45.0, + "y": 10.0 + }, + "name": "Amem", + "logicWidth": 16, + "usage": "OUTPUT" + }, + { + "location": { + "x": 25.0, + "y": 35.0 + }, + "name": "C", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "Dmach", + "logicWidth": 16, + "usage": "TRISTATE" + }, + { + "location": { + "x": 45.0, + "y": 5.0 + }, + "name": "Dmem", + "logicWidth": 16, + "usage": "OUTPUT" + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "EN", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "RWmach", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 45.0, + "y": 25.0 + }, + "name": "RWmem", + "logicWidth": 1, + "usage": "OUTPUT" + }, + { + "location": { + "x": 15.0, + "y": 35.0 + }, + "name": "_C", + "logicWidth": 1, + "usage": "INPUT" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "NandGate", + "name": "NandGate#7", + "pos": { + "x": 10.0, + "y": 125.0 + }, + "params": 1 + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#4", + "pos": { + "x": 190.0, + "y": 35.0 + }, + "params": { + "logicWidth": 16, + "orientation": "RIGHT_ALT" + } + }, + { + "id": "TriStateBuffer", + "name": "TriStateBuffer#5", + "pos": { + "x": 190.0, + "y": 5.0 + }, + "params": { + "logicWidth": 16, + "orientation": "LEFT" + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 129.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 4.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#44", + "pos": { + "x": 124.0, + "y": 159.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#45", + "pos": { + "x": 74.0, + "y": 159.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#46", + "pos": { + "x": 74.0, + "y": 134.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#48", + "pos": { + "x": 29.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#49", + "pos": { + "x": 4.0, + "y": 129.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#50", + "pos": { + "x": 219.0, + "y": 24.0 + }, + "params": 16 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#51", + "pos": { + "x": 184.0, + "y": 14.0 + }, + "params": 16 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#52", + "pos": { + "x": 4.0, + "y": 139.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#53", + "pos": { + "x": 74.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#54", + "pos": { + "x": 124.0, + "y": 134.0 + }, + "params": 1 + }, + { + "id": "and", + "name": "and#3", + "pos": { + "x": 35.0, + "y": 95.0 + } + }, + { + "id": "and", + "name": "and#4", + "pos": { + "x": 35.0, + "y": 120.0 + } + }, + { + "id": "dff16", + "name": "dff16#1", + "pos": { + "x": 80.0, + "y": 35.0 + } + }, + { + "id": "dff", + "name": "dff#0", + "pos": { + "x": 80.0, + "y": 120.0 + } + }, + { + "id": "dff", + "name": "dff#1", + "pos": { + "x": 80.0, + "y": 95.0 + } + }, + { + "id": "dff", + "name": "dff#2", + "pos": { + "x": 80.0, + "y": 145.0 + } + }, + { + "id": "dlatch16", + "name": "dlatch16#0", + "pos": { + "x": 135.0, + "y": 35.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#0", + "pos": { + "x": 135.0, + "y": 95.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#1", + "pos": { + "x": 135.0, + "y": 120.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#2", + "pos": { + "x": 135.0, + "y": 145.0 + } + } + ], + "wires": [ + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Dmach" + }, + "pin2": { + "compName": "WireCrossPoint#51", + "pinName": "" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 35.0, + "y": 25.0 + }, + { + "x": 35.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Amach" + }, + "pin2": { + "compName": "dff16#1", + "pinName": "D" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 35.0, + "y": 50.0 + }, + { + "x": 35.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "dff16#1", + "pinName": "Q" + }, + "pin2": { + "compName": "dlatch16#0", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#50", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Dmem" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#52", + "pinName": "" + }, + "pin2": { + "compName": "dff#2", + "pinName": "D" + }, + "name": "unnamedWire#6", + "path": [ + { + "x": 5.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "EN" + }, + "pin2": { + "compName": "WireCrossPoint#48", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#0", + "pinName": "Q" + }, + "pin2": { + "compName": "TriStateBuffer#5", + "pinName": "EN" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 215.0, + "y": 100.0 + }, + { + "x": 215.0, + "y": 30.0 + }, + { + "x": 200.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#1", + "pinName": "Q" + }, + "pin2": { + "compName": "TriStateBuffer#4", + "pinName": "EN" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 200.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#2", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "RWmem" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 215.0, + "y": 150.0 + }, + { + "x": 215.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_C" + }, + "pin2": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "pin2": { + "compName": "dff#1", + "pinName": "C" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#53", + "pinName": "" + }, + "pin2": { + "compName": "dff16#1", + "pinName": "C" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 75.0, + "y": 40.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "RWmach" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "dlatch16#0", + "pinName": "Q" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Amem" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 220.0, + "y": 60.0 + }, + { + "x": 220.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#54", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 125.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "E" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dlatch16#0", + "pinName": "E" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 130.0, + "y": 40.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#49", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "B" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 5.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "TriStateBuffer#4", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#50", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 220.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#52", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "dff#1", + "pinName": "Q" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "D" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "dff#2", + "pinName": "C" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#45", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "dff#0", + "pinName": "Q" + }, + "pin2": { + "compName": "dlatch#1", + "pinName": "D" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#49", + "pinName": "" + }, + "pin2": { + "compName": "NandGate#7", + "pinName": "A" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#48", + "pinName": "" + }, + "pin2": { + "compName": "and#3", + "pinName": "A" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "and#4", + "pinName": "Y" + }, + "pin2": { + "compName": "dff#0", + "pinName": "D" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#48", + "pinName": "" + }, + "pin2": { + "compName": "and#4", + "pinName": "A" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 30.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "and#3", + "pinName": "Y" + }, + "pin2": { + "compName": "dff#1", + "pinName": "D" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "NandGate#7", + "pinName": "Y" + }, + "pin2": { + "compName": "and#4", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#51", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#5", + "pinName": "OUT" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#51", + "pinName": "" + }, + "pin2": { + "compName": "TriStateBuffer#4", + "pinName": "IN" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 185.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "TriStateBuffer#5", + "pinName": "IN" + }, + "pin2": { + "compName": "WireCrossPoint#50", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [ + { + "x": 220.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#52", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#49", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#46", + "pinName": "" + }, + "pin2": { + "compName": "dff#0", + "pinName": "C" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "dff#2", + "pinName": "Q" + }, + "pin2": { + "compName": "dlatch#2", + "pinName": "D" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#2", + "pinName": "E" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#44", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#54", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#54", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#1", + "pinName": "E" + }, + "name": "unnamedWire#41", + "path": [] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "Memory\ncontroller", + "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/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch16.json b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch16.json new file mode 100644 index 00000000..802c8382 --- /dev/null +++ b/plugins/net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dlatch16.json @@ -0,0 +1,1601 @@ +{ + "width": 45.0, + "height": 55.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "D", + "logicWidth": 16, + "usage": "INPUT" + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "E", + "logicWidth": 1, + "usage": "INPUT" + }, + { + "location": { + "x": 45.0, + "y": 25.0 + }, + "name": "Q", + "logicWidth": 16, + "usage": "TRISTATE" + } + ], + "innerScale": 0.2, + "submodel": { + "components": [ + { + "id": "Splitter", + "name": "Splitter#0", + "pos": { + "x": 5.0, + "y": 50.0 + }, + "params": { + "logicWidth": 16, + "orientation": "RIGHT" + } + }, + { + "id": "Splitter", + "name": "Splitter#1", + "pos": { + "x": 210.0, + "y": 50.0 + }, + "params": { + "logicWidth": 16, + "orientation": "LEFT" + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 64.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 64.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 64.0, + "y": 89.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 64.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 64.0, + "y": 179.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 64.0, + "y": 209.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 64.0, + "y": 149.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 114.0, + "y": 79.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 114.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 114.0, + "y": 139.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 114.0, + "y": 229.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 114.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 114.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 114.0, + "y": 199.0 + }, + "params": 1 + }, + { + "id": "dlatch", + "name": "dlatch#0", + "pos": { + "x": 70.0, + "y": 15.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#1", + "pos": { + "x": 120.0, + "y": 35.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#2", + "pos": { + "x": 120.0, + "y": 65.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#3", + "pos": { + "x": 70.0, + "y": 45.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#4", + "pos": { + "x": 120.0, + "y": 95.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#5", + "pos": { + "x": 120.0, + "y": 125.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#6", + "pos": { + "x": 70.0, + "y": 75.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#7", + "pos": { + "x": 70.0, + "y": 105.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#8", + "pos": { + "x": 70.0, + "y": 135.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#9", + "pos": { + "x": 120.0, + "y": 215.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#10", + "pos": { + "x": 120.0, + "y": 245.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#11", + "pos": { + "x": 70.0, + "y": 225.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#12", + "pos": { + "x": 70.0, + "y": 195.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#13", + "pos": { + "x": 120.0, + "y": 155.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#14", + "pos": { + "x": 120.0, + "y": 185.0 + } + }, + { + "id": "dlatch", + "name": "dlatch#15", + "pos": { + "x": 70.0, + "y": 165.0 + } + } + ], + "wires": [ + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O15" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "D" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 20.0, + "y": 50.0 + }, + { + "x": 20.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#1", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O14" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 25.0, + "y": 40.0 + }, + { + "x": 25.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O13" + }, + "pin2": { + "compName": "dlatch#3", + "pinName": "D" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 30.0, + "y": 70.0 + }, + { + "x": 30.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#2", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O12" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 35.0, + "y": 70.0 + }, + { + "x": 35.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O11" + }, + "pin2": { + "compName": "dlatch#6", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 40.0, + "y": 90.0 + }, + { + "x": 40.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#4", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O10" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#7", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "dlatch#5", + "pinName": "D" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 60.0, + "y": 120.0 + }, + { + "x": 60.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#8", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O7" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 55.0, + "y": 140.0 + }, + { + "x": 55.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "dlatch#13", + "pinName": "D" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 50.0, + "y": 140.0 + }, + { + "x": 50.0, + "y": 160.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#15", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O5" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 45.0, + "y": 170.0 + }, + { + "x": 45.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "dlatch#14", + "pinName": "D" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 40.0, + "y": 160.0 + }, + { + "x": 40.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#12", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 35.0, + "y": 200.0 + }, + { + "x": 35.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "dlatch#9", + "pinName": "D" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 30.0, + "y": 180.0 + }, + { + "x": 30.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#11", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 25.0, + "y": 230.0 + }, + { + "x": 25.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "dlatch#10", + "pinName": "D" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 20.0, + "y": 200.0 + }, + { + "x": 20.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "Splitter#0", + "pinName": "I" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "E" + }, + "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": "dlatch#3", + "pinName": "E" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#6", + "pinName": "E" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#7", + "pinName": "E" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#8", + "pinName": "E" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#15", + "pinName": "E" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#12", + "pinName": "E" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#11", + "pinName": "E" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 65.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#10", + "pinName": "E" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 115.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#9", + "pinName": "E" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "dlatch#14", + "pinName": "E" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#13", + "pinName": "E" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#5", + "pinName": "E" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#4", + "pinName": "E" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#2", + "pinName": "E" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "dlatch#1", + "pinName": "E" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 65.0, + "y": 10.0 + }, + { + "x": 115.0, + "y": 10.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "E" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 10.0, + "y": 30.0 + }, + { + "x": 10.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O15" + }, + "pin2": { + "compName": "dlatch#0", + "pinName": "Q" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 200.0, + "y": 50.0 + }, + { + "x": 200.0, + "y": 30.0 + }, + { + "x": 110.0, + "y": 30.0 + }, + { + "x": 110.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#1", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O14" + }, + "name": "unnamedWire#49", + "path": [ + { + "x": 195.0, + "y": 40.0 + }, + { + "x": 195.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O13" + }, + "pin2": { + "compName": "dlatch#3", + "pinName": "Q" + }, + "name": "unnamedWire#50", + "path": [ + { + "x": 190.0, + "y": 70.0 + }, + { + "x": 190.0, + "y": 60.0 + }, + { + "x": 110.0, + "y": 60.0 + }, + { + "x": 110.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O12" + }, + "pin2": { + "compName": "dlatch#2", + "pinName": "Q" + }, + "name": "unnamedWire#51", + "path": [ + { + "x": 185.0, + "y": 80.0 + }, + { + "x": 185.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O11" + }, + "pin2": { + "compName": "dlatch#6", + "pinName": "Q" + }, + "name": "unnamedWire#52", + "path": [ + { + "x": 110.0, + "y": 90.0 + }, + { + "x": 110.0, + "y": 80.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#4", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O10" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O9" + }, + "pin2": { + "compName": "dlatch#7", + "pinName": "Q" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 160.0, + "y": 110.0 + }, + { + "x": 160.0, + "y": 120.0 + }, + { + "x": 110.0, + "y": 120.0 + }, + { + "x": 110.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#5", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O8" + }, + "name": "unnamedWire#55", + "path": [ + { + "x": 165.0, + "y": 130.0 + }, + { + "x": 165.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O7" + }, + "pin2": { + "compName": "dlatch#8", + "pinName": "Q" + }, + "name": "unnamedWire#56", + "path": [ + { + "x": 170.0, + "y": 130.0 + }, + { + "x": 170.0, + "y": 150.0 + }, + { + "x": 110.0, + "y": 150.0 + }, + { + "x": 110.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#13", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O6" + }, + "name": "unnamedWire#57", + "path": [ + { + "x": 175.0, + "y": 160.0 + }, + { + "x": 175.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O5" + }, + "pin2": { + "compName": "dlatch#15", + "pinName": "Q" + }, + "name": "unnamedWire#58", + "path": [ + { + "x": 180.0, + "y": 150.0 + }, + { + "x": 180.0, + "y": 180.0 + }, + { + "x": 110.0, + "y": 180.0 + }, + { + "x": 110.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O4" + }, + "pin2": { + "compName": "dlatch#14", + "pinName": "Q" + }, + "name": "unnamedWire#59", + "path": [ + { + "x": 185.0, + "y": 160.0 + }, + { + "x": 185.0, + "y": 190.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "dlatch#12", + "pinName": "Q" + }, + "name": "unnamedWire#60", + "path": [ + { + "x": 190.0, + "y": 170.0 + }, + { + "x": 190.0, + "y": 210.0 + }, + { + "x": 110.0, + "y": 210.0 + }, + { + "x": 110.0, + "y": 200.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#9", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O2" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 195.0, + "y": 220.0 + }, + { + "x": 195.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "Splitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "dlatch#11", + "pinName": "Q" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 200.0, + "y": 190.0 + }, + { + "x": 200.0, + "y": 240.0 + }, + { + "x": 110.0, + "y": 240.0 + }, + { + "x": 110.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "dlatch#10", + "pinName": "Q" + }, + "pin2": { + "compName": "Splitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#63", + "path": [ + { + "x": 205.0, + "y": 250.0 + }, + { + "x": 205.0, + "y": 200.0 + } + ] + } + ], + "version": "0.1.1" + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "D latch\n16 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 30.0, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q": { + "id": "bitVectorSplitting", + "params": { + "vectorPartTargets": [ + "q16", + "q15", + "q14", + "q13", + "q12", + "q11", + "q10", + "q9", + "q8", + "q7", + "q6", + "q5", + "q4", + "q3", + "q2", + "q1" + ], + "vectorPartLengthes": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + } + }, + "q1": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#10", + "subStateID": "q" + } + }, + "q2": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#11", + "subStateID": "q" + } + }, + "q3": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#9", + "subStateID": "q" + } + }, + "q4": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#12", + "subStateID": "q" + } + }, + "q5": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#14", + "subStateID": "q" + } + }, + "q6": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#15", + "subStateID": "q" + } + }, + "q7": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#13", + "subStateID": "q" + } + }, + "q8": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#8", + "subStateID": "q" + } + }, + "q9": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#5", + "subStateID": "q" + } + }, + "q10": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#7", + "subStateID": "q" + } + }, + "q11": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#4", + "subStateID": "q" + } + }, + "q12": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#6", + "subStateID": "q" + } + }, + "q13": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#2", + "subStateID": "q" + } + }, + "q14": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#3", + "subStateID": "q" + } + }, + "q15": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#1", + "subStateID": "q" + } + }, + "q16": { + "id": "delegating", + "params": { + "delegateTarget": "dlatch#0", + "subStateID": "q" + } + } + } + }, + "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/standardComponentIDMapping.json b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/standardComponentIDMapping.json index d67ee2a6..df563105 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,5 +1,6 @@ { "Am2900MainMemory": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.ModelAm2900MainMemory", + "Am2900MemoryController": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/Am2900MemoryController.json", "Am2900MicroInstructionMemory": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.ModelAm2900MicroInstructionMemory", "Am2904RegCTInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.ModelAm2904RegCTInstrDecode", "Am2904ShiftInstrDecode": "resloader:Am2900Loader:class:net.mograsim.logic.model.am2900.components.am2904.ModelAm2904ShiftInstrDecode", @@ -42,6 +43,7 @@ "dlatch": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch.json", "dlatch4": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch4.json", "dlatch8": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch8.json", + "dlatch16": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch16.json", "dlatch80": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/dlatch80.json", "fulladder": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/fulladder.json", "halfadder": "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/halfadder.json", -- 2.17.1