From ae74a6a022756a4cc7ee5b453ad7a68e13832788 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Wed, 19 Jun 2019 12:56:26 +0200 Subject: [PATCH] SimpleRectangularSubmodelComponent now supports pin names --- .../logic/ui/examples/JsonExample.java | 2 +- .../components/GUICustomComponentCreator.java | 16 ++++- .../SimpleRectangularSubmodelComponent.java | 58 +++++++++++++++---- .../components/mi/nandbased/GUI_rsLatch.java | 4 +- .../model/components/mi/nandbased/GUIand.java | 4 +- .../components/mi/nandbased/GUIand41.java | 4 +- .../components/mi/nandbased/GUIandor414.java | 4 +- .../components/mi/nandbased/GUIdemux2.java | 4 +- .../model/components/mi/nandbased/GUIdff.java | 4 +- .../components/mi/nandbased/GUIdlatch.java | 4 +- .../components/mi/nandbased/GUIdlatch4.java | 4 +- .../components/mi/nandbased/GUIfulladder.java | 4 +- .../components/mi/nandbased/GUIhalfadder.java | 4 +- .../components/mi/nandbased/GUImux1.java | 4 +- .../components/mi/nandbased/GUImux1_4.java | 4 +- .../components/mi/nandbased/GUInand3.java | 4 +- .../components/mi/nandbased/GUInot4.java | 4 +- .../model/components/mi/nandbased/GUIor4.java | 4 +- .../components/mi/nandbased/GUIor_4.java | 4 +- .../components/mi/nandbased/GUIram2.java | 4 +- .../components/mi/nandbased/GUIram4.java | 4 +- .../components/mi/nandbased/GUIsel2_4.java | 4 +- .../components/mi/nandbased/GUIsel3_4.java | 4 +- .../model/components/mi/nandbased/GUIxor.java | 4 +- .../am2901/GUIAm2901ALUFuncDecode.java | 4 +- .../am2901/GUIAm2901ALUInclDecode.java | 4 +- .../nandbased/am2901/GUIAm2901ALUOneBit.java | 4 +- .../nandbased/am2901/GUIAm2901DestDecode.java | 4 +- .../mi/nandbased/am2901/GUIAm2901QReg.java | 4 +- .../am2901/GUIAm2901SourceDecode.java | 4 +- 30 files changed, 115 insertions(+), 69 deletions(-) diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/examples/JsonExample.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/examples/JsonExample.java index 9cc65b32..793f0f7f 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/examples/JsonExample.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/examples/JsonExample.java @@ -26,8 +26,8 @@ public class JsonExample protected TestComponent(ViewModelModifiable model) { super(model, 1, "Test"); - setInputCount(1); setSubmodelScale(.4); + setInputPins("Test input pin"); GUICustomComponentCreator.create(submodelModifiable, "HalfAdder.json"); } } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUICustomComponentCreator.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUICustomComponentCreator.java index 2f3e405e..0f6fc1bc 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUICustomComponentCreator.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUICustomComponentCreator.java @@ -80,8 +80,20 @@ public final class GUICustomComponentCreator (String) m.get(SimpleRectangularSubmodelComponent.kLabel)); rect.setSubmodelScale(params.composition.innerScale); rect.setSize(params.width, params.height); - rect.setInputCount(((Number) m.get(SimpleRectangularSubmodelComponent.kInCount)).intValue()); - rect.setOutputCount(((Number) m.get(SimpleRectangularSubmodelComponent.kOutCount)).intValue()); + + // TODO names + int inputCount = ((Number) m.get(SimpleRectangularSubmodelComponent.kInCount)).intValue(); + String[] inputNames = new String[inputCount]; + for (int i = 0; i < inputCount; i++) + inputNames[i] = "Input pin #" + i; + rect.setInputPins(inputNames); + + int outputCount = ((Number) m.get(SimpleRectangularSubmodelComponent.kOutCount)).intValue(); + String[] outputPins = new String[outputCount]; + for (int i = 0; i < outputCount; i++) + outputPins[i] = "Output pin #" + i; + rect.setOutputPins(outputPins); + return rect; } catch (ClassCastException | NullPointerException e) diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java index 44b402d3..558df249 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java @@ -19,7 +19,9 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent private static final double width = 35; private static final double pinDistance = 10; - private static final double fontHeight = 5; + private static final double pinNameMargin = .5; + private static final double labelFontHeight = 5; + private static final double pinNameFontHeight = 3.5; private final String label; protected final int logicWidth; @@ -48,8 +50,9 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent this.outputSubmodelPinsUnmodifiable = Collections.unmodifiableList(outputSubmodelPins); } - protected void setInputCount(int inputCount) + protected void setInputPins(String... pinNames) { + int inputCount = pinNames.length; int oldInputCount = inputSupermodelPins.size(); double height = Math.max(inputCount, outputSupermodelPins.size()) * pinDistance; setSize(width, height); @@ -57,36 +60,55 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent while (inputSupermodelPins.size() > inputCount) { inputSubmodelPins.remove(inputCount); - removePin(inputSupermodelPins.remove(inputCount)); + removeSubmodelInterface(inputSupermodelPins.remove(inputCount)); } else if (oldInputCount < inputCount) for (int i = oldInputCount; i < inputCount; i++) { - // TODO pin names - Pin submodelPin = addSubmodelInterface("Input pin #" + i, logicWidth, 0, pinDistance / 2 + i * pinDistance); + Pin submodelPin = addSubmodelInterface(pinNames[i], logicWidth, 0, pinDistance / 2 + i * pinDistance); inputSubmodelPins.add(submodelPin); inputSupermodelPins.add(getSupermodelPin(submodelPin)); } + for (int i = 0; i < Math.min(oldInputCount, inputCount); i++) + { + if (!inputSubmodelPins.get(i).name.equals(pinNames[i])) + { + removeSubmodelInterface(inputSupermodelPins.get(i)); + Pin submodelPin = addSubmodelInterface(pinNames[i], logicWidth, 0, pinDistance / 2 + i * pinDistance); + inputSubmodelPins.set(i, submodelPin); + inputSupermodelPins.set(i, getSupermodelPin(submodelPin)); + } + } } - protected void setOutputCount(int outputCount) + protected void setOutputPins(String... pinNames) { + int outputCount = pinNames.length; int oldOutputCount = outputSupermodelPins.size(); setSize(width, Math.max(inputSupermodelPins.size(), outputCount) * pinDistance); if (oldOutputCount > outputCount) while (outputSupermodelPins.size() > outputCount) { outputSubmodelPins.remove(outputCount); - removePin(outputSupermodelPins.get(outputCount)); + removeSubmodelInterface(outputSupermodelPins.get(outputCount)); } else if (oldOutputCount < outputCount) for (int i = oldOutputCount; i < outputCount; i++) { - // TODO pin names - Pin submodelPin = addSubmodelInterface("Output pin #" + i, logicWidth, width, pinDistance / 2 + i * pinDistance); + Pin submodelPin = addSubmodelInterface(pinNames[i], logicWidth, width, pinDistance / 2 + i * pinDistance); outputSubmodelPins.add(submodelPin); outputSupermodelPins.add(getSupermodelPin(submodelPin)); } + for (int i = 0; i < Math.min(oldOutputCount, outputCount); i++) + { + if (!outputSubmodelPins.get(i).name.equals(pinNames[i])) + { + removeSubmodelInterface(outputSupermodelPins.get(i)); + Pin submodelPin = addSubmodelInterface(pinNames[i], logicWidth, width, pinDistance / 2 + i * pinDistance); + outputSubmodelPins.set(i, submodelPin); + outputSupermodelPins.set(i, getSupermodelPin(submodelPin)); + } + } } public List getInputPins() @@ -116,12 +138,24 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent double posY = getBounds().y; Font oldFont = gc.getFont(); - Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); - gc.setFont(labelFont); + gc.setFont(new Font(oldFont.getName(), labelFontHeight, oldFont.getStyle())); Point textExtent = gc.textExtent(label); gc.drawText(label, posX + (getBounds().width - textExtent.x) / 2, posY + (getBounds().height - textExtent.y) / 2, true); + gc.setFont(new Font(oldFont.getName(), pinNameFontHeight, oldFont.getStyle())); + for (int i = 0; i < inputSupermodelPins.size(); i++) + { + String pinName = inputSupermodelPins.get(i).name; + textExtent = gc.textExtent(pinName); + gc.drawText(pinName, posX + pinNameMargin, posY + i * pinDistance + (pinDistance - textExtent.y) / 2, true); + } + for (int i = 0; i < outputSupermodelPins.size(); i++) + { + String pinName = outputSupermodelPins.get(i).name; + textExtent = gc.textExtent(pinName); + gc.drawText(pinName, posX + width - textExtent.x - pinNameMargin, posY + i * pinDistance + (pinDistance - textExtent.y) / 2, + true); + } gc.setFont(oldFont); - // TODO draw pin names } @Override diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUI_rsLatch.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUI_rsLatch.java index ce56eb83..e3818476 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUI_rsLatch.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUI_rsLatch.java @@ -14,8 +14,8 @@ public class GUI_rsLatch extends SimpleRectangularSubmodelComponent { super(model, 1, "_rsLatch"); setSubmodelScale(.4); - setInputCount(2); - setOutputCount(2); + setInputPins("_S", "_R"); + setOutputPins("Q", "_Q"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand.java index d41228b1..cb7f6b68 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand.java @@ -14,8 +14,8 @@ public class GUIand extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIand"); setSubmodelScale(.4); - setInputCount(2); - setOutputCount(1); + setInputPins("A", "B"); + setOutputPins("Y"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand41.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand41.java index 7ec4b49d..45ba337a 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand41.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand41.java @@ -13,8 +13,8 @@ public class GUIand41 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIand41"); setSubmodelScale(.4); - setInputCount(5); - setOutputCount(4); + setInputPins("A1", "A2", "A3", "A4", "B"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIandor414.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIandor414.java index e8a6415d..aa2c0768 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIandor414.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIandor414.java @@ -12,8 +12,8 @@ public class GUIandor414 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIandor414"); setSubmodelScale(.4); - setInputCount(9); - setOutputCount(4); + setInputPins("C1", "C2", "C3", "C4", "A1", "A2", "A3", "A4", "B"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdemux2.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdemux2.java index e7d7e21c..172ca3a7 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdemux2.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdemux2.java @@ -14,8 +14,8 @@ public class GUIdemux2 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIdemux2"); setSubmodelScale(.4); - setInputCount(2); - setOutputCount(4); + setInputPins("S0", "S1"); + setOutputPins("Y00", "Y01", "Y10", "Y11"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdff.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdff.java index 1464b3aa..33419069 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdff.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdff.java @@ -14,8 +14,8 @@ public class GUIdff extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIdff"); setSubmodelScale(.2); - setInputCount(2); - setOutputCount(2); + setInputPins("C", "D"); + setOutputPins("Q", "_Q"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch.java index 5fae3354..c8591943 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch.java @@ -14,8 +14,8 @@ public class GUIdlatch extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIdlatch"); setSubmodelScale(.4); - setInputCount(2); - setOutputCount(2); + setInputPins("D", "E"); + setOutputPins("Q", "_Q"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch4.java index 672b0ec0..9ad80c43 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch4.java @@ -13,8 +13,8 @@ public class GUIdlatch4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIdlatch4"); setSubmodelScale(.4); - setInputCount(5); - setOutputCount(4); + setInputPins("D1", "D2", "D3", "D4", "C"); + setOutputPins("Q1", "Q2", "Q3", "Q4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIfulladder.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIfulladder.java index ef4c54e1..1f424a9d 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIfulladder.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIfulladder.java @@ -13,8 +13,8 @@ public class GUIfulladder extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIfulladder"); setSubmodelScale(.4); - setInputCount(3); - setOutputCount(2); + setInputPins("A", "B", "C"); + setOutputPins("Y", "Z"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIhalfadder.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIhalfadder.java index a75d1624..ed05f89e 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIhalfadder.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIhalfadder.java @@ -14,8 +14,8 @@ public class GUIhalfadder extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIhalfadder"); setSubmodelScale(.4); - setInputCount(2); - setOutputCount(2); + setInputPins("A", "B"); + setOutputPins("Y", "_Z"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1.java index 2c33f44d..0b920d6c 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1.java @@ -14,8 +14,8 @@ public class GUImux1 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUImux1"); setSubmodelScale(.4); - setInputCount(3); - setOutputCount(1); + setInputPins("S0", "I0", "I1"); + setOutputPins("Y"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1_4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1_4.java index 5ec7f88b..e648e1c9 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1_4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1_4.java @@ -13,8 +13,8 @@ public class GUImux1_4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUImux1_4"); setSubmodelScale(.4); - setInputCount(9); - setOutputCount(4); + setInputPins("S0", "I0_1", "I0_2", "I0_3", "I0_4", "I1_1", "I1_2", "I1_3", "I1_4"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInand3.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInand3.java index 73dbe284..10ee1e2f 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInand3.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInand3.java @@ -14,8 +14,8 @@ public class GUInand3 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUInand3"); setSubmodelScale(.4); - setInputCount(3); - setOutputCount(1); + setInputPins("A", "B", "C"); + setOutputPins("Y"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInot4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInot4.java index 6bdeb05c..75e6398e 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInot4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInot4.java @@ -14,8 +14,8 @@ public class GUInot4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUInot4"); setSubmodelScale(.4); - setInputCount(4); - setOutputCount(4); + setInputPins("A1", "A2", "A3", "A4"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor4.java index cda2b32a..5c41b9b6 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor4.java @@ -14,8 +14,8 @@ public class GUIor4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIor4"); setSubmodelScale(.2); - setInputCount(4); - setOutputCount(1); + setInputPins("A1", "A2", "A3", "A4"); + setOutputPins("Y"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor_4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor_4.java index 95d8642d..9da8c8c5 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor_4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor_4.java @@ -14,8 +14,8 @@ public class GUIor_4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIor_4"); setSubmodelScale(.4); - setInputCount(8); - setOutputCount(4); + setInputPins("A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram2.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram2.java index b12a22c3..8517745d 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram2.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram2.java @@ -13,8 +13,8 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIram2"); setSubmodelScale(.1); - setInputCount(9); - setOutputCount(8); + setInputPins("A0", "A1", "B0", "B1", "WE", "D1", "D2", "D3", "D4"); + setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram4.java index 699f13ea..601dffa0 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram4.java @@ -13,8 +13,8 @@ public class GUIram4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIram4"); setSubmodelScale(.1); - setInputCount(13); - setOutputCount(8); + setInputPins("A0", "A1", "A2", "A3", "B0", "B1", "B2", "B3", "WE", "D1", "D2", "D3", "D4"); + setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel2_4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel2_4.java index 39d2e59d..f20bbb11 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel2_4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel2_4.java @@ -14,8 +14,8 @@ public class GUIsel2_4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIsel2_4"); setSubmodelScale(.4); - setInputCount(10); - setOutputCount(4); + setInputPins("SA", "SB", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel3_4.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel3_4.java index 8b3d38cf..5892e046 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel3_4.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel3_4.java @@ -14,8 +14,8 @@ public class GUIsel3_4 extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIsel3_4"); setSubmodelScale(.2); - setInputCount(15); - setOutputCount(4); + setInputPins("SA", "SB", "SC", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4", "C1", "C2", "C3", "C4"); + setOutputPins("Y1", "Y2", "Y3", "Y4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIxor.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIxor.java index f32eee46..c8adf057 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIxor.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIxor.java @@ -14,8 +14,8 @@ public class GUIxor extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIxor"); setSubmodelScale(.4); - setInputCount(2); - setOutputCount(1); + setInputPins("A", "B"); + setOutputPins("Y"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java index 48e2939a..0f5b1393 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java @@ -16,8 +16,8 @@ public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIAm2901ALUFuncDecode"); setSubmodelScale(.25); - setInputCount(3); - setOutputCount(3); + setInputPins("I5", "I4", "I3"); + setOutputPins("CinE", "L", "SBE"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java index cb11ea4a..47dcc8ec 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java @@ -14,8 +14,8 @@ public class GUIAm2901ALUInclDecode extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIAm2901ALUInclDecode"); setSubmodelScale(.25); - setInputCount(12); - setOutputCount(6); + setInputPins("I5", "I4", "I3", "Cn", "R1", "R2", "R3", "R4", "S1", "S2", "S3", "S4"); + setOutputPins("F1", "F2", "F3", "F4", "Cnplus4", "OVR"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java index 7199b7c7..eca9c647 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java @@ -18,8 +18,8 @@ public class GUIAm2901ALUOneBit extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIAm2901ALUOneBit"); setSubmodelScale(.2); - setInputCount(9); - setOutputCount(2); + setInputPins("Cin", "CoutE", "CinE", "R", "RN", "S", "SN", "FN", "L"); + setOutputPins("Cout", "F"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java index 98c57826..0afde14f 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java @@ -14,8 +14,8 @@ public class GUIAm2901DestDecode extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIAm2901DestDecode"); setSubmodelScale(.25); - setInputCount(3); - setOutputCount(6); + setInputPins("I8", "I7", "I6"); + setOutputPins("NSH", "RSH", "RAMWE", "YF", "LSH", "QWE"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901QReg.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901QReg.java index 3d802f86..0ea3f21f 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901QReg.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901QReg.java @@ -15,8 +15,8 @@ public class GUIAm2901QReg extends SimpleRectangularSubmodelComponent { super(model, 1, "GUIAm2901QReg"); setSubmodelScale(.4); - setInputCount(6); - setOutputCount(4); + setInputPins("C", "WE", "D1", "D2", "D3", "D4"); + setOutputPins("Q1", "Q2", "Q3", "Q4"); initSubmodelComponents(); } diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java index b66427e0..374f3e1a 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java @@ -14,8 +14,8 @@ public class GUIAm2901SourceDecode extends SimpleRectangularSubmodelComponent { super(model, 1, "Am2901SourceDecode"); setSubmodelScale(.25); - setInputCount(3); - setOutputCount(5); + setInputPins("I2", "I1", "I0"); + setOutputPins("SQ", "RA", "SB", "SA", "RD"); initSubmodelComponents(); } -- 2.17.1