From: Fabian Stemmler Date: Mon, 26 Aug 2019 11:14:36 +0000 (+0200) Subject: Merge branch 'development' of https://gitlab.lrz.de/lrr-tum/students/eragp-misim... X-Git-Url: https://mograsim.net/gitweb/?a=commitdiff_plain;h=f37f1f93f2c1ceb780f1c7ecab888bcb8f4f8b89;hp=7d47064f8673a2ba642118750fa93612d8e63ea7;p=Mograsim.git Merge branch 'development' of https://gitlab.lrz.de/lrr-tum/students/eragp-misim-2019 into development --- diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java index 7315e135..528852ed 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java @@ -17,8 +17,8 @@ public class Connector extends Component implements LogicObserver public Connector(Timeline timeline, ReadWriteEnd a, ReadWriteEnd b) { super(timeline); - if (a.length() != b.length()) - throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.length(), b.length())); + if (a.width() != b.width()) + throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.width(), b.width())); this.a = a; this.b = b; a.registerObserver(this); diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Demux.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Demux.java index 704fa9bd..5cf80747 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Demux.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Demux.java @@ -22,33 +22,33 @@ public class Demux extends BasicComponent private int selected = -1; /** - * Output {@link Wire}s and in must be of uniform length + * Output {@link Wire}s and in must be of uniform width * - * @param in Must be of uniform length with all outputs. + * @param in Must be of uniform width with all outputs. * @param select Indexes the output array to which the input is mapped. Must have enough bits to index all outputs. * @param outputs One of these outputs receives the input signal, depending on the select bits */ public Demux(Timeline timeline, int processTime, ReadEnd in, ReadEnd select, ReadWriteEnd... outputs) { super(timeline, processTime); - outputSize = in.length(); + outputSize = in.width(); this.in = in; this.outputs = outputs; for (int i = 0; i < this.outputs.length; i++) { - if (outputs[i].length() != outputSize) - throw new IllegalArgumentException("All DEMUX wire arrays must be of uniform length!"); + if (outputs[i].width() != outputSize) + throw new IllegalArgumentException("All DEMUX wire arrays must be of uniform width!"); this.outputs[i] = outputs[i]; } this.select = select; select.registerObserver(this); - int maxInputs = 1 << select.length(); + int maxInputs = 1 << select.width(); if (this.outputs.length > maxInputs) throw new IllegalArgumentException("There are more outputs (" + this.outputs.length + ") to the DEMUX than supported by " - + select.length() + " select bits (" + maxInputs + ")."); + + select.width() + " select bits (" + maxInputs + ")."); in.registerObserver(this); } diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/ManualSwitch.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/ManualSwitch.java index 26238fe6..25445ee1 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/ManualSwitch.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/ManualSwitch.java @@ -32,12 +32,12 @@ public class ManualSwitch extends Component implements LogicObservable public void switchFullOn() { - setState(BitVector.of(Bit.ONE, output.length())); + setState(BitVector.of(Bit.ONE, output.width())); } public void switchFullOff() { - setState(BitVector.of(Bit.ZERO, output.length())); + setState(BitVector.of(Bit.ZERO, output.width())); } public void toggle() @@ -55,8 +55,8 @@ public class ManualSwitch extends Component implements LogicObservable public void setState(BitVector bits) { - if (bits.length() != output.length()) - throw new IllegalArgumentException("Incorrect bit vector length"); + if (bits.width() != output.width()) + throw new IllegalArgumentException("Incorrect bit vector width"); if (bits.equals(output.getInputValues())) return; output.feedSignals(bits); @@ -65,7 +65,7 @@ public class ManualSwitch extends Component implements LogicObservable public boolean isFullOn() { - return BitVector.of(Bit.ONE, output.length()).equals(output.getInputValues()); + return BitVector.of(Bit.ONE, output.width()).equals(output.getInputValues()); } public BitVector getValues() diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Merger.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Merger.java index 6fa5b93c..acc05d3c 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Merger.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Merger.java @@ -17,7 +17,7 @@ public class Merger extends Component implements LogicObserver /** * - * @param union The output of merging n {@link Wire}s into one. Must have length = a1.length() + a2.length() + ... + an.length(). + * @param union The output of merging n {@link Wire}s into one. Must have width = a1.width() + a2.width() + ... + an.width(). * @param inputs The inputs to be merged into the union */ public Merger(Timeline timeline, ReadWriteEnd union, ReadEnd... inputs) @@ -27,17 +27,17 @@ public class Merger extends Component implements LogicObserver this.out = union; this.beginningIndex = new int[inputs.length]; - int length = 0; + int width = 0; for (int i = 0; i < inputs.length; i++) { - beginningIndex[i] = length; - length += inputs[i].length(); + beginningIndex[i] = width; + width += inputs[i].width(); inputs[i].registerObserver(this); } - if (length != union.length()) + if (width != union.width()) throw new IllegalArgumentException( - "The output of merging n WireArrays into one must have length = a1.length() + a2.length() + ... + an.length()."); + "The output of merging n WireArrays into one must have width = a1.width() + a2.width() + ... + an.width()."); } public ReadEnd getInput(int index) diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Mux.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Mux.java index 47fe164a..3776bde9 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Mux.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Mux.java @@ -25,32 +25,32 @@ public class Mux extends BasicComponent private final int outputSize; /** - * Input {@link Wire}s and out must be of uniform length + * Input {@link Wire}s and out must be of uniform width * - * @param out Must be of uniform length with all inputs. + * @param out Must be of uniform width with all inputs. * @param select Indexes the input array which is to be mapped to the output. Must have enough bits to index all inputs. * @param inputs One of these inputs is mapped to the output, depending on the select bits */ public Mux(Timeline timeline, int processTime, ReadWriteEnd out, ReadEnd select, ReadEnd... inputs) { super(timeline, processTime); - outputSize = out.length(); + outputSize = out.width(); this.inputs = inputs.clone(); for (int i = 0; i < this.inputs.length; i++) { - if (inputs[i].length() != outputSize) - throw new IllegalArgumentException("All MUX wire arrays must be of uniform length!"); + if (inputs[i].width() != outputSize) + throw new IllegalArgumentException("All MUX wire arrays must be of uniform width!"); inputs[i].registerObserver(this); } this.select = select; select.registerObserver(this); - int maxInputs = 1 << select.length(); + int maxInputs = 1 << select.width(); if (this.inputs.length > maxInputs) throw new IllegalArgumentException("There are more inputs (" + this.inputs.length + ") to the MUX than supported by " - + select.length() + " select bits (" + maxInputs + ")."); + + select.width() + " select bits (" + maxInputs + ")."); this.out = out; } diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Splitter.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Splitter.java index 8a1ba20a..04658fe4 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Splitter.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Splitter.java @@ -20,13 +20,13 @@ public class Splitter extends Component implements LogicObserver this.input = input; this.outputs = outputs; input.registerObserver(this); - int length = 0; + int width = 0; for (ReadEnd out : outputs) - length += out.length(); + width += out.width(); - if (input.length() != length) + if (input.width() != width) throw new IllegalArgumentException( - "The input of splitting one into n WireArrays must have length = a1.length() + a2.length() + ... + an.length()."); + "The input of splitting one into n WireArrays must have width = a1.width() + a2.width() + ... + an.width()."); } protected void compute() @@ -35,8 +35,8 @@ public class Splitter extends Component implements LogicObserver int startIndex = 0; for (int i = 0; i < outputs.length; i++) { - outputs[i].feedSignals(inputBits.subVector(startIndex, startIndex + outputs[i].length())); - startIndex += outputs[i].length(); + outputs[i].feedSignals(inputBits.subVector(startIndex, startIndex + outputs[i].width())); + startIndex += outputs[i].width(); } } diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/TriStateBuffer.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/TriStateBuffer.java index ac2e4225..057c49e5 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/TriStateBuffer.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/TriStateBuffer.java @@ -15,11 +15,11 @@ public class TriStateBuffer extends BasicComponent public TriStateBuffer(Timeline timeline, int processTime, ReadEnd in, ReadWriteEnd out, ReadEnd enable) { super(timeline, processTime); - if (in.length() != out.length()) + if (in.width() != out.width()) throw new IllegalArgumentException( - "Tri-state output must have the same amount of bits as the input. Input: " + in.length() + " Output: " + out.length()); - if (enable.length() != 1) - throw new IllegalArgumentException("Tri-state enable must have exactly one bit, not " + enable.length() + "."); + "Tri-state output must have the same amount of bits as the input. Input: " + in.width() + " Output: " + out.width()); + if (enable.width() != 1) + throw new IllegalArgumentException("Tri-state enable must have exactly one bit, not " + enable.width() + "."); this.in = in; in.registerObserver(this); this.enable = enable; diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/gates/MultiInputGate.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/gates/MultiInputGate.java index da30281d..d7fecc19 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/gates/MultiInputGate.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/gates/MultiInputGate.java @@ -13,7 +13,7 @@ public abstract class MultiInputGate extends BasicComponent { protected ReadEnd[] in; protected ReadWriteEnd out; - protected final int length; + protected final int width; protected MutationOperation op; protected boolean invert = false; @@ -21,13 +21,13 @@ public abstract class MultiInputGate extends BasicComponent { super(timeline, processTime); this.op = op; - length = out.length(); + width = out.width(); this.in = in.clone(); if (in.length < 1) throw new IllegalArgumentException(String.format("Cannot create gate with %d wires.", in.length)); for (ReadEnd w : in) { - if (w.length() != length) + if (w.width() != width) throw new IllegalArgumentException("All wires connected to the gate must be of uniform length."); w.registerObserver(this); } diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java index 8bff357a..e6278104 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java @@ -18,6 +18,11 @@ public enum Bit implements StrictLogicType this.symbol = symbol; } + /** + * Returns if the Bit is binary, this is only true for ZERO and ONE. + * + * @return true if and only if this == ONE || this == ZERO + */ public boolean isBinary() { return this == ONE || this == ZERO; @@ -64,9 +69,9 @@ public enum Bit implements StrictLogicType return bits; } - public BitVector toVector(int length) + public BitVector toVector(int width) { - return BitVector.of(this, length); + return BitVector.of(this, width); } @Override diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java index e8a40988..aed0288d 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java @@ -50,44 +50,26 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterable, Iterable op) @@ -240,21 +227,32 @@ public final class BitVector implements StrictLogicType, Iterablewith all bits set to null. Use with care! + * Returns a new mutator of the specified width, with all bits set to null. Use with care! */ - public static BitVectorMutator ofLength(int length) + public static BitVectorMutator ofWidth(int width) { - return new BitVectorMutator(new Bit[length]); + return new BitVectorMutator(new Bit[width]); } /** * Returns an empty mutator which has no bits set and will simply copy the values from the first binary operation performed. + *

+ * An empty BitVectorMutator must not be converted to BitVector or used to manipulate single bits until at least one two + * operand logic operation is performed. */ public static BitVectorMutator empty() { return new BitVectorMutator(null); } + /** + * @see #empty() + */ + public boolean isEmpty() + { + return bits == null; + } + /** * Produces the resulting, immutable {@link BitVector}
* @@ -311,6 +309,8 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterable, Iterable, Iterableoffset to the right.
- * Therefore offset + other.length() <= this.length() needs to be true. + * Therefore offset + other.width() <= this.wdith() needs to be true. * - * @throws ArrayIndexOutOfBoundsException if offset + other.length() > this.length() + * @throws ArrayIndexOutOfBoundsException if offset + other.width() > this.width() * * @see Object#equals(Object) */ @@ -387,7 +395,7 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterablefrom MSB to LSB (left to right). */ @@ -455,7 +468,7 @@ public final class BitVector implements StrictLogicType, Iterable attached = new ArrayList<>(); - public final int length; + public final int width; List inputs = new ArrayList<>(); Timeline timeline; - public Wire(Timeline timeline, int length, int travelTime) + public Wire(Timeline timeline, int width, int travelTime) { - this(timeline, length, travelTime, null); + this(timeline, width, travelTime, null); } - public Wire(Timeline timeline, int length, int travelTime, String name) + public Wire(Timeline timeline, int width, int travelTime, String name) { - if (length < 1) + if (width < 1) throw new IllegalArgumentException( - String.format("Tried to create an array of wires with length %d, but a length of less than 1 makes no sense.", length)); + String.format("Tried to create an array of wires with width %d, but a width of less than 1 makes no sense.", width)); this.name = name; this.timeline = timeline; - this.length = length; + this.width = width; this.travelTime = travelTime; initValues(); } private void initValues() { - values = U.toVector(length); + values = U.toVector(width); } private void setNewValues(BitVector newValues) { if (values.equals(newValues)) return; -// BitVector oldValues = values; values = newValues; notifyObservers(); } void recalculate() { - if (inputs.size() == 0) - setNewValues(BitVector.of(Bit.U, length)); + if (inputs.isEmpty()) + setNewValues(U.toVector(width)); else { BitVectorMutator mutator = BitVectorMutator.empty(); @@ -88,18 +87,13 @@ public class Wire * The {@link Wire} is interpreted as an unsigned integer with n bits. * * @return true if all bits are either Bit.ONE or Bit.ZERO (they do not all have to have the same - * value), not Bit.X or Bit.Z. false is returned otherwise. + * value), not Bit.U, Bit.X or Bit.Z. false is returned otherwise. * * @author Fabian Stemmler */ public boolean hasNumericValue() { - for (Bit b : values) - { - if (b != Bit.ZERO && b != Bit.ONE) - return false; - } - return true; + return values.isBinary(); } /** @@ -141,10 +135,10 @@ public class Wire public long getSignedValue() { long val = getUnsignedValue(); - long mask = 1 << (length - 1); + long mask = 1 << (width - 1); if ((mask & val) != 0) { - int shifts = 64 - length; + int shifts = 64 - width; return (val << shifts) >> shifts; } return val; @@ -184,9 +178,9 @@ public class Wire * * @author Fabian Stemmler */ - void attachEnd(ReadEnd end) + boolean attachEnd(ReadEnd end) { - attached.add(end); + return attached.add(end); } void detachEnd(ReadEnd end) @@ -196,7 +190,7 @@ public class Wire private void notifyObservers() { - attached.forEach(r -> r.update()); + attached.forEach(ReadEnd::update); } /** @@ -243,7 +237,7 @@ public class Wire } /** - * Included for convenient use on {@link Wire}s of length 1. + * Included for convenient use on {@link Wire}s of width 1. * * @return The value of bit 0. * @@ -332,9 +326,9 @@ public class Wire recalculate(); } - public int length() + public int width() { - return length; + return width; } public Wire getWire() @@ -363,7 +357,8 @@ public class Wire public class ReadWriteEnd extends ReadEnd { - private boolean open, isWriting; + private boolean open; + private boolean isWriting; private BitVector inputValues; ReadWriteEnd() @@ -377,7 +372,7 @@ public class Wire private void initValues() { - inputValues = U.toVector(length); + inputValues = U.toVector(width); } /** @@ -394,11 +389,11 @@ public class Wire public void feedSignals(BitVector newValues) { - if (newValues.length() != length) + if (newValues.width() != width) throw new IllegalArgumentException( - String.format("Attempted to input %d bits instead of %d bits.", newValues.length(), length)); + String.format("Attempted to input %d bits instead of %d bits.", newValues.width(), width)); if (!open) - throw new RuntimeException("Attempted to write to closed WireArrayEnd."); + throw new IllegalStateException("Attempted to write to closed WireArrayEnd."); timeline.addEvent(e -> setValues(newValues), travelTime); } @@ -413,7 +408,7 @@ public class Wire public void feedSignals(int startingBit, BitVector bitVector) { if (!open) - throw new RuntimeException("Attempted to write to closed WireArrayEnd."); + throw new IllegalStateException("Attempted to write to closed WireArrayEnd."); timeline.addEvent(e -> setValues(startingBit, bitVector), travelTime); } @@ -427,7 +422,7 @@ public class Wire if (!inputValues.equalsWithOffset(newValues, startingBit)) { Bit[] vals = inputValues.getBits(); - System.arraycopy(newValues.getBits(), 0, vals, startingBit, newValues.length()); + System.arraycopy(newValues.getBits(), 0, vals, startingBit, newValues.width()); inputValues = BitVector.of(vals); Wire.this.recalculate(); } @@ -482,7 +477,7 @@ public class Wire */ public void clearSignals() { - feedSignals(Z.toVector(length)); + feedSignals(Z.toVector(width)); } public BitVector wireValuesExcludingMe() @@ -549,20 +544,20 @@ public class Wire * Fuses the selected bits of two wires together. If the bits change in one Wire, the other is changed accordingly immediately. Warning: * The bits are permanently fused together. * - * @param a The {@link Wire} to be (partially) fused with b - * @param b The {@link Wire} to be (partially) fused with a - * @param fromA The first bit of {@link Wire} a to be fused - * @param fromB The first bit of {@link Wire} b to be fused - * @param length The amount of bits to fuse + * @param a The {@link Wire} to be (partially) fused with b + * @param b The {@link Wire} to be (partially) fused with a + * @param fromA The first bit of {@link Wire} a to be fused + * @param fromB The first bit of {@link Wire} b to be fused + * @param width The amount of bits to fuse */ - public static void fuse(Wire a, Wire b, int fromA, int fromB, int length) + public static void fuse(Wire a, Wire b, int fromA, int fromB, int width) { ReadWriteEnd rA = a.createReadWriteEnd(), rB = b.createReadWriteEnd(); rA.setWriting(false); rB.setWriting(false); - rA.setValues(BitVector.of(Bit.Z, a.length)); - rB.setValues(BitVector.of(Bit.Z, b.length)); - Fusion aF = new Fusion(rB, fromA, fromB, length), bF = new Fusion(rA, fromB, fromA, length); + rA.setValues(BitVector.of(Bit.Z, a.width)); + rB.setValues(BitVector.of(Bit.Z, b.width)); + Fusion aF = new Fusion(rB, fromA, fromB, width), bF = new Fusion(rA, fromB, fromA, width); rA.registerObserver(aF); rB.registerObserver(bF); aF.update(rA); @@ -579,20 +574,20 @@ public class Wire */ public static void fuse(Wire a, Wire b) { - fuse(a, b, 0, 0, a.length); + fuse(a, b, 0, 0, a.width); } private static class Fusion implements LogicObserver { private ReadWriteEnd target; - int fromSource, fromTarget, length; + int fromSource, fromTarget, width; - public Fusion(ReadWriteEnd target, int fromSource, int fromTarget, int length) + public Fusion(ReadWriteEnd target, int fromSource, int fromTarget, int width) { this.target = target; this.fromSource = fromSource; this.fromTarget = fromTarget; - this.length = length; + this.width = width; } @Override @@ -604,7 +599,7 @@ public class Wire else { target.setWriting(true); - BitVector targetInput = source.wireValuesExcludingMe().subVector(fromSource, fromSource + length); + BitVector targetInput = source.wireValuesExcludingMe().subVector(fromSource, fromSource + width); target.setValues(fromTarget, targetInput); } } diff --git a/net.mograsim.logic.core/test/net/mograsim/logic/core/tests/ComponentTest.java b/net.mograsim.logic.core/test/net/mograsim/logic/core/tests/ComponentTest.java index d0ae8c58..d69cd009 100644 --- a/net.mograsim.logic.core/test/net/mograsim/logic/core/tests/ComponentTest.java +++ b/net.mograsim.logic.core/test/net/mograsim/logic/core/tests/ComponentTest.java @@ -98,9 +98,9 @@ class ComponentTest void fusionTest1() { Wire a = new Wire(t, 3, 1), b = new Wire(t, 2, 1), c = new Wire(t, 3, 1), out = new Wire(t, 8, 1); - Wire.fuse(a, out, 0, 0, a.length); - Wire.fuse(b, out, 0, a.length, b.length); - Wire.fuse(c, out, 0, a.length + b.length, c.length); + Wire.fuse(a, out, 0, 0, a.width); + Wire.fuse(b, out, 0, a.width, b.width); + Wire.fuse(c, out, 0, a.width + b.width, c.width); ReadWriteEnd rA = a.createReadWriteEnd(); rA.feedSignals(Bit.ZERO, Bit.ONE, Bit.ZERO); ReadWriteEnd rB = b.createReadWriteEnd(); diff --git a/net.mograsim.logic.core/test/net/mograsim/logic/core/types/BitVectorTest.java b/net.mograsim.logic.core/test/net/mograsim/logic/core/types/BitVectorTest.java new file mode 100644 index 00000000..b83a5ff9 --- /dev/null +++ b/net.mograsim.logic.core/test/net/mograsim/logic/core/types/BitVectorTest.java @@ -0,0 +1,288 @@ +package net.mograsim.logic.core.types; + +import static net.mograsim.logic.core.types.BitVector.*; +import static net.mograsim.logic.core.types.Bit.*; +import static org.junit.jupiter.api.Assertions.*; + +import java.math.BigInteger; +import java.util.Iterator; + +import org.junit.jupiter.api.Test; + +class BitVectorTest +{ + + @Test + void testOfBitArray() + { + BitVector.of(); // should be allowed and work + + assertSame(SINGLE_U, BitVector.of(U)); + assertSame(SINGLE_X, BitVector.of(X)); + assertSame(SINGLE_0, BitVector.of(ZERO)); + assertSame(SINGLE_1, BitVector.of(ONE)); + assertSame(SINGLE_Z, BitVector.of(Z)); + } + + @Test + void testOfBitInt() + { + assertEquals(BitVector.of(), BitVector.of(ONE, 0)); + + assertSame(SINGLE_U, BitVector.of(U, 1)); + assertSame(SINGLE_X, BitVector.of(X, 1)); + assertSame(SINGLE_0, BitVector.of(ZERO, 1)); + assertSame(SINGLE_1, BitVector.of(ONE, 1)); + assertSame(SINGLE_Z, BitVector.of(Z, 1)); + + assertEquals(BitVector.of(X, X, X), BitVector.of(X, 3)); + } + + @Test + void testGetUnsignedValue() + { + assertEquals(BigInteger.valueOf(0b101), BitVector.parse("101").getUnsignedValue()); + assertEquals(BigInteger.valueOf(0b01010), BitVector.parse("01010").getUnsignedValue()); + assertEquals(BigInteger.valueOf(0), BitVector.parse("0000").getUnsignedValue()); + + assertThrows(NumberFormatException.class, () -> BitVector.parse("00X1").getUnsignedValue()); + + } + + @Test + void testOfLongInt() + { + assertEquals(BitVector.parse("101"), BitVector.from(0b101L, 3)); + assertEquals(BitVector.parse("01010"), BitVector.from(0b01010L, 5)); + assertEquals(BitVector.parse("10101"), BitVector.from(-11L, 5)); + assertEquals(BitVector.parse("0000"), BitVector.from(0L, 4)); + } + + @Test + void testOfBigIntegerInt() + { + assertEquals(BitVector.parse("101"), BitVector.from(BigInteger.valueOf(0b101), 3)); + assertEquals(BitVector.parse("01010"), BitVector.from(BigInteger.valueOf(0b01010), 5)); + assertEquals(BitVector.parse("10101"), BitVector.from(BigInteger.valueOf(-11), 5)); + assertEquals(BitVector.parse("0000"), BitVector.from(BigInteger.valueOf(0), 4)); + } + + @Test + void testMutator() + { + var bv = BitVector.SINGLE_1; + var bvm = bv.mutator(); + + assertFalse(bvm.isEmpty()); + assertEquals(ONE, bvm.getLSBit(0)); + assertEquals(SINGLE_1, bvm.toBitVector()); + } + + @Test + void testGetMSBit() + { + assertEquals(ONE, SINGLE_1.getMSBit(0)); + assertEquals(ONE, BitVector.of(ONE, X, X, X).getMSBit(0)); + assertEquals(ONE, BitVector.of(X, X, X, X, ONE, X).getMSBit(4)); + } + + @Test + void testGetLSBit() + { + assertEquals(ONE, SINGLE_1.getLSBit(0)); + assertEquals(ONE, BitVector.of(X, X, X, ONE).getLSBit(0)); + assertEquals(ONE, BitVector.of(X, X, X, X, ONE, X).getLSBit(1)); + } + + @Test + void testGetBits() + { + assertArrayEquals(new Bit[] { X, ONE, Z }, BitVector.of(X, ONE, Z).getBits()); + assertArrayEquals(new Bit[] { X, ONE, Z }, BitVector.parse("X1Z").getBits()); + } + + @Test + void testIsBinary() + { + assertTrue(SINGLE_0.isBinary()); + assertTrue(SINGLE_1.isBinary()); + + assertFalse(SINGLE_U.isBinary()); + assertFalse(SINGLE_X.isBinary()); + assertFalse(SINGLE_Z.isBinary()); + + assertTrue(BitVector.of(ONE, ZERO, ONE, ONE, ZERO).isBinary()); + assertFalse(BitVector.of(ONE, ZERO, ZERO, X).isBinary()); + } + + @Test + void testJoin() + { + // binary + assertEquals(SINGLE_0, SINGLE_0.join(SINGLE_0)); + assertEquals(SINGLE_X, SINGLE_0.join(SINGLE_1)); + assertEquals(SINGLE_1, SINGLE_1.join(SINGLE_1)); + + // other + assertEquals(SINGLE_1, SINGLE_Z.join(SINGLE_1)); + assertEquals(SINGLE_U, SINGLE_0.join(SINGLE_U)); + assertEquals(SINGLE_X, SINGLE_X.join(SINGLE_Z)); + + // higher width + var result = BitVector.of(U, X, ZERO, ONE, Z).join(BitVector.of(ONE, ZERO, ZERO, ONE, Z)); + assertEquals(BitVector.of(U, X, ZERO, ONE, Z), result); + } + + @Test + void testAnd() + { + // binary + assertEquals(SINGLE_0, SINGLE_0.and(SINGLE_0)); + assertEquals(SINGLE_0, SINGLE_0.and(SINGLE_1)); + assertEquals(SINGLE_1, SINGLE_1.and(SINGLE_1)); + + // other + assertEquals(SINGLE_X, SINGLE_Z.and(SINGLE_1)); + assertEquals(SINGLE_0, SINGLE_0.and(SINGLE_U)); + assertEquals(SINGLE_X, SINGLE_X.and(SINGLE_Z)); + + // higher width + var result = BitVector.of(U, X, ZERO, ONE, ONE).and(BitVector.of(ONE, ONE, ZERO, ZERO, ONE)); + assertEquals(BitVector.of(U, X, ZERO, ZERO, ONE), result); + } + + @Test + void testOr() + { + // binary + assertEquals(SINGLE_0, SINGLE_0.or(SINGLE_0)); + assertEquals(SINGLE_1, SINGLE_0.or(SINGLE_1)); + assertEquals(SINGLE_1, SINGLE_1.or(SINGLE_1)); + + // other + assertEquals(SINGLE_1, SINGLE_Z.or(SINGLE_1)); + assertEquals(SINGLE_1, SINGLE_1.or(SINGLE_U)); + assertEquals(SINGLE_X, SINGLE_X.or(SINGLE_Z)); + + // higher width + var result = BitVector.of(U, X, ZERO, ONE, ZERO).or(BitVector.of(ZERO, ZERO, ZERO, ONE, ONE)); + assertEquals(BitVector.of(U, X, ZERO, ONE, ONE), result); + } + + @Test + void testXor() + { + // binary + assertEquals(SINGLE_0, SINGLE_0.xor(SINGLE_0)); + assertEquals(SINGLE_1, SINGLE_0.xor(SINGLE_1)); + assertEquals(SINGLE_0, SINGLE_1.xor(SINGLE_1)); + + // other + assertEquals(SINGLE_X, SINGLE_Z.xor(SINGLE_1)); + assertEquals(SINGLE_U, SINGLE_0.xor(SINGLE_U)); + assertEquals(SINGLE_X, SINGLE_X.xor(SINGLE_Z)); + + // higher width + var result = BitVector.of(U, X, ZERO, ONE, ONE).xor(BitVector.of(ONE, ZERO, ZERO, ZERO, ONE)); + assertEquals(BitVector.of(U, X, ZERO, ONE, ZERO), result); + } + + @Test + void testNot() + { + // binary + assertEquals(SINGLE_1, SINGLE_0.not()); + assertEquals(SINGLE_0, SINGLE_1.not()); + + // other + assertEquals(SINGLE_U, SINGLE_U.not()); + assertEquals(SINGLE_X, SINGLE_X.not()); + assertEquals(SINGLE_X, SINGLE_Z.not()); + + // higher width + var result = BitVector.of(U, X, ZERO, ONE, Z).not(); + assertEquals(BitVector.of(U, X, ONE, ZERO, X), result); + } + + @Test + void testWidth() + { + assertEquals(0, BitVector.of().width()); + assertEquals(1, SINGLE_0.width()); + assertEquals(3, BitVector.of(X, X, Z).width()); + } + + @Test + void testConcat() + { + assertEquals(BitVector.of(U, X), SINGLE_U.concat(SINGLE_X)); + assertEquals(BitVector.of(Z, X, U, ONE, X), BitVector.of(Z, X, U).concat(BitVector.of(ONE, X))); + } + + @Test + void testSubVectorInt() + { + assertEquals(SINGLE_0, SINGLE_0.subVector(0)); + assertEquals(BitVector.of(), SINGLE_0.subVector(1)); + assertEquals(SINGLE_0, BitVector.of(ONE, ZERO).subVector(1)); + assertEquals(BitVector.of(X, Z), BitVector.of(ZERO, U, ONE, X, Z).subVector(3)); + } + + @Test + void testSubVectorIntInt() + { + assertEquals(SINGLE_0, SINGLE_0.subVector(0, 1)); + assertEquals(BitVector.of(), SINGLE_0.subVector(0, 0)); + assertEquals(SINGLE_0, BitVector.of(ONE, ZERO).subVector(1, 2)); + assertEquals(BitVector.of(ONE, X), BitVector.of(ZERO, U, ONE, X, Z).subVector(2, 4)); + } + + @Test + void testEqualsObject() + { + assertEquals(SINGLE_X, SINGLE_X); + assertNotEquals(SINGLE_0, SINGLE_1); + + assertEquals(BitVector.of(X, Z, U), BitVector.of(X, Z, U)); + assertNotEquals(BitVector.of(X, Z, U), BitVector.of(X, X, U)); + } + + @Test + void testEqualsWithOffset() + { + assertTrue(SINGLE_X.equalsWithOffset(SINGLE_X, 0)); + assertFalse(SINGLE_0.equalsWithOffset(SINGLE_1, 0)); + + assertTrue(BitVector.of(X, Z, U).equalsWithOffset(BitVector.of(Z, U), 1)); + assertFalse(BitVector.of(X, Z, U).equalsWithOffset(BitVector.of(X, U), 1)); + assertTrue(BitVector.of(X, Z, U).equalsWithOffset(BitVector.of(U), 2)); + } + + @Test + void testParse() + { + assertEquals(SINGLE_U, BitVector.parse("U")); + assertEquals(SINGLE_X, BitVector.parse("X")); + assertEquals(SINGLE_0, BitVector.parse("0")); + assertEquals(SINGLE_1, BitVector.parse("1")); + assertEquals(SINGLE_Z, BitVector.parse("Z")); + + assertEquals(BitVector.of(X, U, Z, ONE, ZERO), BitVector.parse("XUZ10")); + + assertThrows(RuntimeException.class, () -> BitVector.parse("01BX")); + } + + @Test + void testIterator() + { + var bv = BitVector.of(U, Z, ONE, ZERO, X); + Iterator it = bv.iterator(); + + assertEquals(U, it.next()); + assertEquals(Z, it.next()); + assertEquals(ONE, it.next()); + assertEquals(ZERO, it.next()); + assertEquals(X, it.next()); + assertFalse(it.hasNext()); + } +} diff --git a/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF b/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF index bd5fcb59..fb03a1f6 100644 --- a/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF +++ b/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF @@ -4,6 +4,7 @@ Bundle-Name: %Bundle-Name Bundle-SymbolicName: net.mograsim.logic.model.am2900;singleton:=true Bundle-Version: 0.1.0.qualifier Export-Package: net.mograsim.logic.model.am2900.components, + net.mograsim.logic.model.am2900.components.am2904, net.mograsim.logic.model.am2900.components.am2910, net.mograsim.logic.model.examples Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/net.mograsim.logic.model.am2900/components/GUIdff4.json b/net.mograsim.logic.model.am2900/components/GUIdff4.json index 4064f93e..72b7273d 100644 --- a/net.mograsim.logic.model.am2900/components/GUIdff4.json +++ b/net.mograsim.logic.model.am2900/components/GUIdff4.json @@ -689,7 +689,7 @@ mograsim version: 0.1.3 "q3", "q4" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 1, 1, 1, diff --git a/net.mograsim.logic.model.am2900/components/GUIdff4_invwe.json b/net.mograsim.logic.model.am2900/components/GUIdff4_invwe.json index cb697d23..7665a992 100644 --- a/net.mograsim.logic.model.am2900/components/GUIdff4_invwe.json +++ b/net.mograsim.logic.model.am2900/components/GUIdff4_invwe.json @@ -698,7 +698,7 @@ mograsim version: 0.1.3 "q3", "q4" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 1, 1, 1, diff --git a/net.mograsim.logic.model.am2900/components/GUIdlatch4.json b/net.mograsim.logic.model.am2900/components/GUIdlatch4.json index 28021dff..a836450f 100644 --- a/net.mograsim.logic.model.am2900/components/GUIdlatch4.json +++ b/net.mograsim.logic.model.am2900/components/GUIdlatch4.json @@ -368,7 +368,7 @@ mograsim version: 0.1.3 "q3", "q4" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 1, 1, 1, diff --git a/net.mograsim.logic.model.am2900/components/GUImux2.json b/net.mograsim.logic.model.am2900/components/GUImux2.json new file mode 100644 index 00000000..2542ce0a --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/GUImux2.json @@ -0,0 +1,447 @@ +mograsim version: 0.1.3 +{ + "width": 70.0, + "height": 70.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "I00", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I11", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I10", + "logicWidth": 1 + }, + { + "location": { + "x": 70.0, + "y": 10.0 + }, + "name": "Y", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I01", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 30.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 24.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 54.0, + "y": 39.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 24.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "GUIsel1", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 60.0, + "y": 100.0 + } + }, + { + "id": "GUIsel1", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 60.0, + "y": 35.0 + } + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 115.0, + "y": 20.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S2" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 25.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 55.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S1" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 55.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 15.0, + "y": 50.0 + }, + { + "x": 15.0, + "y": 10.0 + }, + { + "x": 85.0, + "y": 10.0 + }, + { + "x": 85.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 105.0 + }, + { + "x": 105.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 105.0, + "y": 40.0 + }, + { + "x": 105.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I2" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 150.0 + }, + { + "x": 20.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I01" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I2" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 40.0, + "y": 100.0 + }, + { + "x": 40.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I00" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 35.0, + "y": 75.0 + }, + { + "x": 35.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S2" + }, + "name": "unnamedWire#11", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "GUImux2", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/GUImux2_4.json b/net.mograsim.logic.model.am2900/components/GUImux2_4.json new file mode 100644 index 00000000..f9648eee --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/GUImux2_4.json @@ -0,0 +1,692 @@ +mograsim version: 0.1.3 +{ + "width": 62.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "I00", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I11", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I10", + "logicWidth": 4 + }, + { + "location": { + "x": 62.0, + "y": 16.0 + }, + "name": "Y", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I01", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 19.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 25.0, + "y": 45.0 + }, + "params": 4 + }, + { + "id": "GUIMerger", + "name": "GUIMerger#0", + "pos": { + "x": 140.0, + "y": 25.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#3", + "pos": { + "x": 25.0, + "y": 180.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#2", + "pos": { + "x": 25.0, + "y": 140.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#1", + "pos": { + "x": 25.0, + "y": 85.0 + }, + "params": 4 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 40.0, + "y": 125.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 40.0, + "y": 30.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 100.0, + "y": 20.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 15.0, + "y": 50.0 + }, + { + "x": 15.0, + "y": 20.0 + }, + { + "x": 60.0, + "y": 20.0 + }, + { + "x": 60.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I3" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 20.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S0" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 20.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I00" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 15.0, + "y": 60.0 + }, + { + "x": 15.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I10" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 15.0, + "y": 155.0 + }, + { + "x": 15.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I01" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "I" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_1" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I11" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "I" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_3" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y1" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 80.0, + "y": 75.0 + }, + { + "x": 80.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y3" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 90.0, + "y": 95.0 + }, + { + "x": 90.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_2" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 85.0, + "y": 140.0 + }, + { + "x": 85.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_4" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_3" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "O1" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_1" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_4" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 95.0, + "y": 160.0 + }, + { + "x": 95.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_2" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y1" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_4" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "O3" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_1" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y3" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_3" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I1" + }, + "name": "unnamedWire#33", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "GUImux1_4", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/GUImux3.json b/net.mograsim.logic.model.am2900/components/GUImux3.json new file mode 100644 index 00000000..69181cde --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/GUImux3.json @@ -0,0 +1,479 @@ +mograsim version: 0.1.3 +{ + "width": 80.0, + "height": 120.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I000", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 70.0 + }, + "name": "I011", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 100.0 + }, + "name": "I110", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I010", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 90.0 + }, + "name": "I101", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 80.0 + }, + "name": "I100", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 110.0 + }, + "name": "I111", + "logicWidth": 1 + }, + { + "location": { + "x": 80.0, + "y": 10.0 + }, + "name": "Y", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I001", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "S2", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 94.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 19.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "GUImux2", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 35.0, + "y": 185.0 + } + }, + { + "id": "GUImux2", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 35.0, + "y": 85.0 + } + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 125.0, + "y": 20.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I111" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I11" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 15.0, + "y": 275.0 + }, + { + "x": 15.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I10" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I110" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 10.0, + "y": 235.0 + }, + { + "x": 10.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 110.0, + "y": 95.0 + }, + { + "x": 110.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 115.0, + "y": 195.0 + }, + { + "x": 115.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 70.0, + "y": 25.0 + }, + { + "x": 70.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I010" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I10" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I01" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I001" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I000" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I00" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 10.0, + "y": 100.0 + }, + { + "x": 10.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 20.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I11" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I011" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 15.0, + "y": 145.0 + }, + { + "x": 15.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 25.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S1" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I101" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I01" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S0" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I00" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I100" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 10.0, + "y": 215.0 + }, + { + "x": 10.0, + "y": 200.0 + } + ] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "GUImux3", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/GUIram2.json b/net.mograsim.logic.model.am2900/components/GUIram2.json index 31a01fba..c2919803 100644 --- a/net.mograsim.logic.model.am2900/components/GUIram2.json +++ b/net.mograsim.logic.model.am2900/components/GUIram2.json @@ -2998,7 +2998,7 @@ mograsim version: 0.1.3 "c01.q", "c00.q" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 4, 4, 4, diff --git a/net.mograsim.logic.model.am2900/components/GUIram4.json b/net.mograsim.logic.model.am2900/components/GUIram4.json index 05bfe9da..f676b3dd 100644 --- a/net.mograsim.logic.model.am2900/components/GUIram4.json +++ b/net.mograsim.logic.model.am2900/components/GUIram4.json @@ -3490,7 +3490,7 @@ mograsim version: 0.1.3 "c01.q", "c00.q" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 16, 16, 16, diff --git a/net.mograsim.logic.model.am2900/components/GUIsel1.json b/net.mograsim.logic.model.am2900/components/GUIsel1.json new file mode 100644 index 00000000..26a25cfb --- /dev/null +++ b/net.mograsim.logic.model.am2900/components/GUIsel1.json @@ -0,0 +1,208 @@ +mograsim version: 0.1.3 +{ + "width": 35.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "I2", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "S2", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 35.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#3", + "pos": { + "x": 60.0, + "y": 40.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 35.0, + "y": 55.0 + }, + "params": 1 + } + ], + "innerWires": [ + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#9" + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#8" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I2" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 87.5 + }, + { + "x": 15.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 15.0, + "y": 37.5 + }, + { + "x": 15.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 12.5 + }, + { + "x": 25.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 25.0, + "y": 62.5 + }, + { + "x": 25.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#10" + } + ] + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "GUIsel1", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json b/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json index 9e1fd5d4..33bdddab 100644 --- a/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json +++ b/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json @@ -1,52 +1,44 @@ mograsim version: 0.1.3 { - "width": 72.0, - "height": 61.0, + "width": 120.0, + "height": 94.0, "interfacePins": [ { "location": { - "x": -14.600000000000001, - "y": 24.400000000000002 + "x": 0.0, + "y": 25.0 }, "name": "IOVR", "logicWidth": 1 }, { "location": { - "x": -14.600000000000001, - "y": 19.400000000000002 + "x": 0.0, + "y": 30.0 }, "name": "_CEM", "logicWidth": 1 }, { "location": { - "x": 0.4, - "y": 5.4 + "x": 0.0, + "y": 5.0 }, "name": "C", "logicWidth": 1 }, { "location": { - "x": -14.600000000000001, - "y": 29.400000000000002 - }, - "name": "YN_in", - "logicWidth": 1 - }, - { - "location": { - "x": 0.4, - "y": 31.400000000000002 + "x": 0.0, + "y": 61.0 }, "name": "I", "logicWidth": 13 }, { "location": { - "x": -14.600000000000001, - "y": 9.4 + "x": 0.0, + "y": 40.0 }, "name": "_EN", "logicWidth": 1 @@ -61,26 +53,26 @@ mograsim version: 0.1.3 }, { "location": { - "x": -24.6, - "y": 14.4 + "x": 120.0, + "y": 17.0 }, - "name": "SIOn_in", + "name": "YC", "logicWidth": 1 }, { "location": { "x": -24.6, - "y": 24.400000000000002 + "y": 14.4 }, - "name": "C0", + "name": "SIOn_in", "logicWidth": 1 }, { "location": { - "x": -14.600000000000001, - "y": 54.400000000000006 + "x": -24.6, + "y": 24.400000000000002 }, - "name": "YOVR_in", + "name": "C0", "logicWidth": 1 }, { @@ -93,26 +85,26 @@ mograsim version: 0.1.3 }, { "location": { - "x": -14.600000000000001, - "y": 34.4 + "x": 0.0, + "y": 36.0 }, - "name": "YZ_in", + "name": "_EZ", "logicWidth": 1 }, { "location": { - "x": -24.6, - "y": 9.4 + "x": -14.600000000000001, + "y": 14.4 }, - "name": "_EZ", + "name": "Cx", "logicWidth": 1 }, { "location": { - "x": -14.600000000000001, - "y": 14.4 + "x": 120.0, + "y": 21.0 }, - "name": "Cx", + "name": "YN", "logicWidth": 1 }, { @@ -125,42 +117,42 @@ mograsim version: 0.1.3 }, { "location": { - "x": -24.6, - "y": 29.400000000000002 + "x": 0.0, + "y": 15.0 }, "name": "IC", "logicWidth": 1 }, { "location": { - "x": -14.600000000000001, - "y": 49.400000000000006 + "x": 0.0, + "y": 42.0 }, "name": "_EOVR", "logicWidth": 1 }, { "location": { - "x": -34.6, - "y": 14.4 + "x": 120.0, + "y": 11.0 }, - "name": "IN", + "name": "YZ", "logicWidth": 1 }, { "location": { - "x": -24.6, - "y": 39.400000000000006 + "x": 0.0, + "y": 20.0 }, - "name": "YC_out", + "name": "IN", "logicWidth": 1 }, { "location": { - "x": -34.6, - "y": -0.6000000000000001 + "x": 61.0, + "y": 0.0 }, - "name": "YOVR_out", + "name": "_OEY", "logicWidth": 1 }, { @@ -189,44 +181,28 @@ mograsim version: 0.1.3 }, { "location": { - "x": -34.6, - "y": 24.400000000000002 - }, - "name": "YZ_out", - "logicWidth": 1 - }, - { - "location": { - "x": -24.6, - "y": 4.4 + "x": 0.0, + "y": 10.0 }, "name": "IZ", "logicWidth": 1 }, { "location": { - "x": -24.6, - "y": -0.6000000000000001 + "x": 120.0, + "y": 60.0 }, "name": "CT", "logicWidth": 1 }, { "location": { - "x": -24.6, - "y": 34.4 + "x": 0.0, + "y": 33.0 }, "name": "_CEmu", "logicWidth": 1 }, - { - "location": { - "x": -34.6, - "y": 19.400000000000002 - }, - "name": "YN_out", - "logicWidth": 1 - }, { "location": { "x": -24.6, @@ -237,18 +213,18 @@ mograsim version: 0.1.3 }, { "location": { - "x": -34.6, - "y": 4.4 + "x": 120.0, + "y": 25.0 }, - "name": "_EC", + "name": "YOVR", "logicWidth": 1 }, { "location": { - "x": -14.600000000000001, - "y": 39.400000000000006 + "x": 0.0, + "y": 38.0 }, - "name": "YC_in", + "name": "_EC", "logicWidth": 1 } ], @@ -257,299 +233,2202 @@ mograsim version: 0.1.3 "subComps": [ { "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", - "name": "WireCrossPoint#0", + "name": "WireCrossPoint#14", "pos": { - "x": 190.0, - "y": 10.0 + "x": 520.0, + "y": 190.0 }, - "params": 1 + "params": 4 }, { - "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode", - "name": "GUIAm2904RegCTInstrDecode#0", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#13", "pos": { - "x": 35.0, - "y": 80.0 - } + "x": 330.0, + "y": 125.0 + }, + "params": 1 }, { - "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", - "name": "GUISplitter#0", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#16", "pos": { - "x": 5.0, - "y": 90.0 + "x": 255.0, + "y": 255.0 }, - "params": 13 + "params": 4 }, { - "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", - "name": "GUIMerger#1", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#15", "pos": { - "x": 20.0, - "y": 150.0 + "x": 255.0, + "y": 265.0 }, - "params": 5 + "params": 4 }, { - "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", - "name": "GUIMerger#0", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", "pos": { - "x": 20.0, - "y": 90.0 + "x": 180.0, + "y": 135.0 }, - "params": 6 + "params": 4 }, { - "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode", - "name": "GUIAm2904ShiftInstrDecode#0", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", "pos": { - "x": 40.0, - "y": 230.0 - } + "x": 165.0, + "y": 150.0 + }, + "params": 1 }, { - "id": "class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe", - "name": "GUIdff4_finewe#0", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#3", "pos": { - "x": 195.0, - "y": 5.0 - } + "x": 335.0, + "y": 270.0 + }, + "params": 4 }, { - "id": "class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe", - "name": "GUIdff4_finewe#1", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#2", "pos": { - "x": 195.0, - "y": 110.0 - } - } - ], - "innerWires": [ - { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O10" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "I4" + "x": 295.0, + "y": 120.0 }, - "name": "unnamedWire#14", - "path": [] + "params": 4 }, { - "pin1": { - "compName": "GUIMerger#1", - "pinName": "I3" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O9" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 530.0, + "y": 100.0 }, - "name": "unnamedWire#13", - "path": [] + "params": 4 }, { - "pin1": { - "compName": "GUIAm2904ShiftInstrDecode#0", - "pinName": "I" - }, - "pin2": { - "compName": "GUIMerger#1", - "pinName": "O" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 150.0, + "y": 160.0 }, - "name": "unnamedWire#16", - "path": [ - { - "x": 35.0, - "y": 265.0 - }, - { - "x": 35.0, - "y": 175.0 - } - ] + "params": 1 }, { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "O" - }, - "pin2": { - "compName": "GUIAm2904RegCTInstrDecode#0", - "pinName": "I" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 215.0, + "y": 180.0 }, - "name": "unnamedWire#15", - "path": [] + "params": 1 }, { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I5" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O5" + "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer", + "name": "GUITriStateBuffer#0", + "pos": { + "x": 530.0, + "y": 170.0 }, - "name": "unnamedWire#9", - "path": [] + "params": { + "logicWidth": 4, + "orientation": "RIGHT" + } }, { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O4" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I4" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 120.0, + "y": 15.0 }, - "name": "unnamedWire#8", - "path": [] + "params": 1 }, { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I3" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O3" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 215.0, + "y": 200.0 }, - "name": "unnamedWire#7", - "path": [] + "params": 1 }, { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O2" - }, - "pin2": { - "compName": "GUIMerger#0", - "pinName": "I2" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 215.0, + "y": 160.0 }, - "name": "unnamedWire#6", - "path": [] + "params": 1 }, { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff4_finewe#0", - "pinName": "C" - }, - "name": "unnamedWire#1", - "path": [] + "id": "GUIAm2904muSR", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 270.0, + "y": 250.0 + } }, { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 195.0, + "y": 55.0 }, - "name": "unnamedWire#0", - "path": [ - { - "x": 5.0, - "y": 25.0 - }, - { - "x": 5.0, - "y": 10.0 - } - ] + "params": 1 }, { - "pin1": { - "compName": "GUIMerger#0", - "pinName": "I1" - }, - "pin2": { - "compName": "GUISplitter#0", - "pinName": "O1" - }, - "name": "unnamedWire#5", - "path": [] + "id": "GUIAm2904MSR", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 225.0, + "y": 95.0 + } }, { - "pin1": { - "compName": "GUISplitter#0", - "pinName": "O6" + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 195.0, + "y": 35.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 470.0, + "y": 160.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 195.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "GUIand", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 370.0, + "y": 130.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 415.0, + "y": 210.0 + } + }, + { + "id": "GUInot4", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 135.0, + "y": 40.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#3", + "pos": { + "x": 510.0, + "y": 165.0 + }, + "params": 4 + }, + { + "id": "GUImux3", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 300.0, + "y": 310.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#2", + "pos": { + "x": 15.0, + "y": 65.0 + }, + "params": 4 + }, + { + "id": "GUIAm2904TestLogic", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 225.0, + "y": 340.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#1", + "pos": { + "x": 25.0, + "y": 305.0 + }, + "params": 5 + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 480.0, + "y": 305.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#0", + "pos": { + "x": 25.0, + "y": 245.0 + }, + "params": 6 + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 540.0, + "y": 295.0 + } + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 485.0, + "y": 355.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#10", + "pos": { + "x": 340.0, + "y": 120.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#9", + "pos": { + "x": 205.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#8", + "pos": { + "x": 205.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#5", + "pos": { + "x": 225.0, + "y": 175.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#4", + "pos": { + "x": 225.0, + "y": 155.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#7", + "pos": { + "x": 205.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#6", + "pos": { + "x": 205.0, + "y": 70.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 130.0, + "y": 5.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 190.0, + "y": 145.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#3", + "pos": { + "x": 225.0, + "y": 215.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 225.0, + "y": 195.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#4", + "pos": { + "x": 395.0, + "y": 225.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#3", + "pos": { + "x": 450.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#2", + "pos": { + "x": 395.0, + "y": 195.0 + }, + "params": 2 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#1", + "pos": { + "x": 555.0, + "y": 80.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#8", + "pos": { + "x": 445.0, + "y": 370.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#7", + "pos": { + "x": 445.0, + "y": 330.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#6", + "pos": { + "x": 285.0, + "y": 320.0 + }, + "params": 3 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#5", + "pos": { + "x": 395.0, + "y": 265.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 10.0, + "y": 245.0 + }, + "params": 13 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode", + "name": "GUIAm2904RegCTInstrDecode#0", + "pos": { + "x": 50.0, + "y": 230.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode", + "name": "GUIAm2904ShiftInstrDecode#0", + "pos": { + "x": 50.0, + "y": 360.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_CEmu" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_4" + }, + "name": "unnamedWire#110", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#111", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y111" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I111" + }, + "name": "unnamedWire#114", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I110" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y110" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "GUITriStateBuffer#0", + "pinName": "IN" + }, + "name": "unnamedWire#112", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I" + }, + "name": "unnamedWire#113", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y011" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I011" + }, + "name": "unnamedWire#118", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y010" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I010" + }, + "name": "unnamedWire#119", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y101" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I101" + }, + "name": "unnamedWire#116", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I100" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y100" + }, + "name": "unnamedWire#117", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EOVR" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EC" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "Y" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EN" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#4", + "pinName": "B" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEZ" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EZ" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O0" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YZ" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEC" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_4" + }, + "name": "unnamedWire#100", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_2" + }, + "name": "unnamedWire#103", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#4", + "pinName": "O2" + }, + "name": "unnamedWire#104", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#101", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_1" + }, + "name": "unnamedWire#102", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "YC" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O1" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_1" + }, + "name": "unnamedWire#107", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_2" + }, + "name": "unnamedWire#108", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "YOVR" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O3" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_4" + }, + "name": "unnamedWire#105", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YN" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#106", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_3" + }, + "pin2": { + "compName": "GUISplitter#5", + "pinName": "O2" + }, + "name": "unnamedWire#109", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O10" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "I4" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#1", + "pinName": "I3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904ShiftInstrDecode#0", + "pinName": "I" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "O" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 40.0, + "y": 395.0 + }, + { + "x": 40.0, + "y": 325.0 + } + ] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "O" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "I" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IN" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I2" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 5.0, + "y": 100.0 + }, + { + "x": 5.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IOVR" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I3" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 10.0, + "y": 125.0 + }, + { + "x": 10.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IC" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I1" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_CINV" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "CINV" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IZ" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I0" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 5.0, + "y": 50.0 + }, + { + "x": 5.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#2", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "C" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "mu" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "C" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904ShiftInstrDecode#0", + "pinName": "MC_EN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "COVD_EN" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "MSR_MUX" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "MUX" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "GUITriStateBuffer#0", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#79", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#10", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#81", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#80", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A" + }, + "name": "unnamedWire#83", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_OEY" + }, + "name": "unnamedWire#82", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_1" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "GUITriStateBuffer#0", + "pinName": "EN" + }, + "name": "unnamedWire#84", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_3" + }, + "name": "unnamedWire#87", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y2" + }, + "name": "unnamedWire#86", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "GUIMerger#3", + "pinName": "I0" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y4" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O5" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I4" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I2" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#3", + "pinName": "I1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y2" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#3", + "pinName": "I3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y4" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "GUIMerger#3", + "pinName": "I2" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_MUX" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "MUX" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "Y_MUX" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "I" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 5.0, + "y": 25.0 + }, + { + "x": 5.0, + "y": 10.0 + } + ] + }, + { + "pin1": { + "compName": "GUIMerger#3", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#93", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S0" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S0" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "I0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "O1" + }, + "name": "unnamedWire#98", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I0" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_1" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "I2" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#1", + "pinName": "I1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O7" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_OVRRET" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "OVRRET" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#99", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEN" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CEM" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEOVR" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I" + }, + "name": "unnamedWire#132", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "GUISplitter#7", + "pinName": "I" + }, + "name": "unnamedWire#133", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "A" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "CT_INV" + }, + "name": "unnamedWire#130", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I1" + }, + "name": "unnamedWire#131", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" }, "pin2": { - "compName": "GUIMerger#1", - "pinName": "I0" + "compName": "DeserializedSubmodelComponent#1", + "pinName": "M" }, - "name": "unnamedWire#10", + "name": "unnamedWire#136", "path": [] }, { "pin1": { - "compName": "GUISplitter#0", + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "GUISplitter#8", + "pinName": "I" + }, + "name": "unnamedWire#137", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#7", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "A" + }, + "name": "unnamedWire#134", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#8", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "B" + }, + "name": "unnamedWire#135", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#7", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#61", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#9", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "OEN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B" + }, + "name": "unnamedWire#138", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#62", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EN" + }, + "pin2": { + "compName": "GUINandGate#7", + "pinName": "Y" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EOVR" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EZ" + }, + "name": "unnamedWire#69", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EC" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y000" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I000" + }, + "name": "unnamedWire#121", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CT" + }, + "name": "unnamedWire#122", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I001" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y001" + }, + "name": "unnamedWire#120", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#6", "pinName": "O0" }, "pin2": { - "compName": "GUIMerger#0", + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S0" + }, + "name": "unnamedWire#125", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S1" + }, + "pin2": { + "compName": "GUISplitter#6", + "pinName": "O1" + }, + "name": "unnamedWire#126", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#70", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "B" + }, + "name": "unnamedWire#123", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#6", + "pinName": "I" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "CT_MUX" + }, + "name": "unnamedWire#124", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#8", + "pinName": "B" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y2" + }, + "name": "unnamedWire#72", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", "pinName": "I0" }, - "name": "unnamedWire#4", + "name": "unnamedWire#129", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "GUINandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#71", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUINandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#6", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S2" + }, + "name": "unnamedWire#127", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "GUINandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#73", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "CT_EXP" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S0" + }, + "name": "unnamedWire#128", "path": [] }, { "pin1": { "compName": "_submodelinterface", - "pinName": "I" + "pinName": "_EC" }, "pin2": { - "compName": "GUISplitter#0", - "pinName": "I" + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A2" }, - "name": "unnamedWire#3", + "name": "unnamedWire#76", "path": [] }, { "pin1": { - "compName": "GUISplitter#0", - "pinName": "O8" + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A1" }, "pin2": { - "compName": "GUIMerger#1", - "pinName": "I2" + "compName": "_submodelinterface", + "pinName": "_EZ" }, - "name": "unnamedWire#12", + "name": "unnamedWire#75", "path": [] }, { "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" + "compName": "_submodelinterface", + "pinName": "_EOVR" }, "pin2": { - "compName": "GUIdff4_finewe#1", - "pinName": "C" + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A4" }, - "name": "unnamedWire#2", - "path": [ - { - "x": 190.0, - "y": 115.0 - } - ] + "name": "unnamedWire#78", + "path": [] }, { "pin1": { - "compName": "GUIMerger#1", - "pinName": "I1" + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A3" }, "pin2": { - "compName": "GUISplitter#0", - "pinName": "O7" + "compName": "_submodelinterface", + "pinName": "_EN" }, - "name": "unnamedWire#11", + "name": "unnamedWire#77", "path": [] } ] diff --git a/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json b/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json index ff3abac9..26928e50 100644 --- a/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json +++ b/net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json @@ -1,36 +1,36 @@ mograsim version: 0.1.3 { - "width": 29.0, - "height": 45.0, + "width": 60.0, + "height": 90.0, "interfacePins": [ { "location": { - "x": 29.0, - "y": 30.0 + "x": 60.0, + "y": 60.0 }, "name": "Y101", "logicWidth": 1 }, { "location": { - "x": 29.0, - "y": 10.0 + "x": 60.0, + "y": 20.0 }, "name": "Y001", "logicWidth": 1 }, { "location": { - "x": 29.0, - "y": 25.0 + "x": 60.0, + "y": 50.0 }, "name": "Y100", "logicWidth": 1 }, { "location": { - "x": 29.0, - "y": 40.0 + "x": 60.0, + "y": 80.0 }, "name": "Y111", "logicWidth": 1 @@ -38,139 +38,139 @@ mograsim version: 0.1.3 { "location": { "x": 0.0, - "y": 22.0 + "y": 50.0 }, "name": "I", "logicWidth": 4 }, { "location": { - "x": 29.0, - "y": 20.0 + "x": 60.0, + "y": 40.0 }, "name": "Y011", "logicWidth": 1 }, { "location": { - "x": 29.0, - "y": 5.0 + "x": 60.0, + "y": 10.0 }, "name": "Y000", "logicWidth": 1 }, { "location": { - "x": 29.0, - "y": 35.0 + "x": 60.0, + "y": 70.0 }, "name": "Y110", "logicWidth": 1 }, { "location": { - "x": 29.0, - "y": 15.0 + "x": 60.0, + "y": 30.0 }, "name": "Y010", "logicWidth": 1 } ], "submodel": { - "innerScale": 0.2, + "innerScale": 0.4, "subComps": [ { - "id": "GUINandGate", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", "name": "GUINandGate#1", "pos": { - "x": 40.0, + "x": 45.0, "y": 50.0 }, "params": 1 }, { - "id": "GUINandGate", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", "name": "GUINandGate#0", "pos": { - "x": 80.0, + "x": 85.0, "y": 20.0 }, "params": 1 }, { - "id": "GUINandGate", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", "name": "GUINandGate#3", "pos": { - "x": 40.0, + "x": 45.0, "y": 105.0 }, "params": 1 }, { - "id": "GUINandGate", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", "name": "GUINandGate#2", "pos": { - "x": 115.0, + "x": 120.0, "y": 15.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#1", "pos": { - "x": 29.0, + "x": 34.0, "y": 99.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#0", "pos": { - "x": 24.0, - "y": 114.0 + "x": 29.0, + "y": 129.0 }, "params": 1 }, { - "id": "GUISplitter", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", "name": "GUISplitter#0", "pos": { "x": 5.0, - "y": 95.0 + "y": 110.0 }, "params": 4 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#3", "pos": { - "x": 74.0, + "x": 79.0, "y": 24.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#2", "pos": { - "x": 74.0, + "x": 79.0, "y": 34.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#5", "pos": { - "x": 19.0, - "y": 109.0 + "x": 24.0, + "y": 119.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#4", "pos": { "x": 19.0, @@ -179,55 +179,55 @@ mograsim version: 0.1.3 "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#7", "pos": { - "x": 69.0, + "x": 74.0, "y": 59.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#6", "pos": { - "x": 34.0, + "x": 39.0, "y": 64.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#9", "pos": { - "x": 19.0, + "x": 24.0, "y": 149.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#8", "pos": { - "x": 69.0, + "x": 74.0, "y": 119.0 }, "params": 1 }, { - "id": "GUINandGate", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", "name": "GUINandGate#5", "pos": { - "x": 75.0, + "x": 80.0, "y": 165.0 }, "params": 1 }, { - "id": "WireCrossPoint", + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", "name": "WireCrossPoint#10", "pos": { - "x": 34.0, + "x": 39.0, "y": 109.0 }, "params": 1 @@ -236,15 +236,15 @@ mograsim version: 0.1.3 "id": "GUIxor", "name": "DeserializedSubmodelComponent#0", "pos": { - "x": 35.0, + "x": 40.0, "y": 20.0 } }, { - "id": "GUINandGate", + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", "name": "GUINandGate#4", "pos": { - "x": 75.0, + "x": 80.0, "y": 115.0 }, "params": 1 @@ -263,15 +263,11 @@ mograsim version: 0.1.3 "name": "unnamedWire#14", "path": [ { - "x": 70.0, - "y": 45.0 - }, - { - "x": 110.0, - "y": 45.0 + "x": 115.0, + "y": 60.0 }, { - "x": 110.0, + "x": 115.0, "y": 30.0 } ] @@ -312,7 +308,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#15", "path": [ { - "x": 75.0, + "x": 80.0, "y": 50.0 } ] @@ -339,7 +335,12 @@ mograsim version: 0.1.3 "pinName": "" }, "name": "unnamedWire#17", - "path": [] + "path": [ + { + "x": 25.0, + "y": 110.0 + } + ] }, { "pin1": { @@ -351,12 +352,7 @@ mograsim version: 0.1.3 "pinName": "" }, "name": "unnamedWire#19", - "path": [ - { - "x": 20.0, - "y": 105.0 - } - ] + "path": [] }, { "pin1": { @@ -371,7 +367,7 @@ mograsim version: 0.1.3 "path": [ { "x": 20.0, - "y": 95.0 + "y": 110.0 } ] }, @@ -435,11 +431,11 @@ mograsim version: 0.1.3 "name": "unnamedWire#24", "path": [ { - "x": 65.0, + "x": 70.0, "y": 115.0 }, { - "x": 65.0, + "x": 70.0, "y": 130.0 } ] @@ -576,7 +572,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#30", "path": [ { - "x": 70.0, + "x": 75.0, "y": 170.0 } ] @@ -593,11 +589,11 @@ mograsim version: 0.1.3 "name": "unnamedWire#10", "path": [ { - "x": 105.0, + "x": 110.0, "y": 20.0 }, { - "x": 105.0, + "x": 110.0, "y": 30.0 } ] @@ -626,7 +622,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#32", "path": [ { - "x": 20.0, + "x": 25.0, "y": 180.0 } ] @@ -643,7 +639,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#4", "path": [ { - "x": 30.0, + "x": 35.0, "y": 35.0 } ] @@ -660,7 +656,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#31", "path": [ { - "x": 35.0, + "x": 40.0, "y": 120.0 } ] @@ -677,7 +673,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#3", "path": [ { - "x": 25.0, + "x": 30.0, "y": 25.0 } ] @@ -694,7 +690,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#12", "path": [ { - "x": 35.0, + "x": 40.0, "y": 55.0 } ] @@ -711,8 +707,8 @@ mograsim version: 0.1.3 "name": "unnamedWire#2", "path": [ { - "x": 30.0, - "y": 125.0 + "x": 35.0, + "y": 140.0 } ] }, @@ -745,7 +741,7 @@ mograsim version: 0.1.3 "name": "unnamedWire#33", "path": [ { - "x": 25.0, + "x": 30.0, "y": 200.0 } ] diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java index b9e7b2b8..bea1a75f 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java @@ -32,10 +32,10 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp addPin(new Pin(this, "muSR_MUX", 2, 80, 10), Usage.OUTPUT, Position.LEFT); addPin(new Pin(this, "muSR_OVRRET", 1, 80, 20), Usage.OUTPUT, Position.LEFT); addPin(new Pin(this, "muSR_CINV", 1, 80, 30), Usage.OUTPUT, Position.LEFT); - addPin(new Pin(this, "muSR__WEZ", 1, 80, 40), Usage.OUTPUT, Position.LEFT); - addPin(new Pin(this, "muSR__WEC", 1, 80, 50), Usage.OUTPUT, Position.LEFT); - addPin(new Pin(this, "muSR__WEN", 1, 80, 60), Usage.OUTPUT, Position.LEFT); - addPin(new Pin(this, "muSR__WEOVR", 1, 80, 70), Usage.OUTPUT, Position.LEFT); + addPin(new Pin(this, "muSR_WEZ", 1, 80, 40), Usage.OUTPUT, Position.LEFT); + addPin(new Pin(this, "muSR_WEC", 1, 80, 50), Usage.OUTPUT, Position.LEFT); + addPin(new Pin(this, "muSR_WEN", 1, 80, 60), Usage.OUTPUT, Position.LEFT); + addPin(new Pin(this, "muSR_WEOVR", 1, 80, 70), Usage.OUTPUT, Position.LEFT); // MSR MUX: // 000: 0 // 001: 1 @@ -45,13 +45,15 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp // 101: I, invert C // 110: Swap OVR and C // 111: _M - addPin(new Pin(this, "MSR_MUX", 3, 40, 0), Usage.OUTPUT, Position.BOTTOM); + addPin(new Pin(this, "MSR_MUX", 3, 20, 0), Usage.OUTPUT, Position.BOTTOM); + // TODO when is this HIGH? + addPin(new Pin(this, "OEN", 1, 60, 0), Usage.OUTPUT, Position.BOTTOM); // CT SRC MUX: // 00: mu // 01: mu // 10: M // 11: I - addPin(new Pin(this, "CT_SRC_MUX", 2, 10, 80), Usage.OUTPUT, Position.TOP); + addPin(new Pin(this, "Y_MUX", 2, 10, 80), Usage.OUTPUT, Position.TOP); // CT MUX: // see Am2900 Family Data Book, Am2904, Table 4 (CT_MUX2-0 = I3-1) addPin(new Pin(this, "CT_MUX", 3, 30, 80), Usage.OUTPUT, Position.TOP); @@ -72,12 +74,12 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp break; case U: for (ReadWriteEnd e : readWriteEnds.values()) - e.feedSignals(BitVector.of(U, e.length())); + e.feedSignals(BitVector.of(U, e.width())); return null; case X: case Z: for (ReadWriteEnd e : readWriteEnds.values()) - e.feedSignals(BitVector.of(X, e.length())); + e.feedSignals(BitVector.of(X, e.width())); return null; case ZERO: break; @@ -91,110 +93,110 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; case 1: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; case 3: readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; case 6: case 7: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); readWriteEnds.get("muSR_OVRRET").feedSignals(ONE); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; case 8: readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ONE); - readWriteEnds.get("muSR__WEN").feedSignals(ONE); - readWriteEnds.get("muSR__WEOVR").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); break; case 9: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ONE); - readWriteEnds.get("muSR__WEN").feedSignals(ONE); - readWriteEnds.get("muSR__WEOVR").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); break; case 10: readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ONE); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ONE); - readWriteEnds.get("muSR__WEOVR").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); break; case 11: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ONE); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ONE); - readWriteEnds.get("muSR__WEOVR").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); break; case 12: readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ONE); - readWriteEnds.get("muSR__WEC").feedSignals(ONE); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); break; case 13: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ONE); - readWriteEnds.get("muSR__WEC").feedSignals(ONE); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ONE); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO); break; case 14: readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ONE); - readWriteEnds.get("muSR__WEC").feedSignals(ONE); - readWriteEnds.get("muSR__WEN").feedSignals(ONE); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; case 15: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ONE); - readWriteEnds.get("muSR__WEC").feedSignals(ONE); - readWriteEnds.get("muSR__WEN").feedSignals(ONE); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ZERO); + readWriteEnds.get("muSR_WEC").feedSignals(ZERO); + readWriteEnds.get("muSR_WEN").feedSignals(ZERO); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; case 24: case 25: @@ -205,19 +207,19 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ONE); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); break; default: readWriteEnds.get("muSR_MUX").feedSignals(ONE, ONE); readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO); readWriteEnds.get("muSR_CINV").feedSignals(ZERO); - readWriteEnds.get("muSR__WEZ").feedSignals(ZERO); - readWriteEnds.get("muSR__WEC").feedSignals(ZERO); - readWriteEnds.get("muSR__WEN").feedSignals(ZERO); - readWriteEnds.get("muSR__WEOVR").feedSignals(ZERO); + readWriteEnds.get("muSR_WEZ").feedSignals(ONE); + readWriteEnds.get("muSR_WEC").feedSignals(ONE); + readWriteEnds.get("muSR_WEN").feedSignals(ONE); + readWriteEnds.get("muSR_WEOVR").feedSignals(ONE); } switch (IAsInt) { @@ -253,7 +255,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ONE); break; } - readWriteEnds.get("CT_SRC_MUX").feedSignals(IBits[0], IBits[1]); + readWriteEnds.get("Y_MUX").feedSignals(IBits[0], IBits[1]); readWriteEnds.get("CT_INV").feedSignals(IBits[5]); readWriteEnds.get("CT_MUX").feedSignals(IBits[2], IBits[3], IBits[4]); readWriteEnds.get("CT_EXP").feedSignals((IAsInt & 0b1110) == 0b1110 ? ONE : ZERO); diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java index 3bef1a07..e5b24f1c 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java @@ -25,7 +25,7 @@ public class GUIComponentTestbench @SuppressWarnings("unused") // for GUIWires being created public static void createTestbench(ViewModelModifiable model) { - GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "file:components/am2904/GUIAm2904TestLogic.json"); + GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "file:components/am2904/GUIAm2904.json"); // guess which pins are outputs and which are inputs // TODO this code exists four times... but it seems too "hacky" to put it in a helper class diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestUtil.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestUtil.java index 46a4b92c..cd682f28 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestUtil.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestUtil.java @@ -92,11 +92,11 @@ public final class TestUtil return sb.reverse().toString(); } - public static BitVector of(int value, int length) + public static BitVector of(int value, int width) { - BitVectorMutator mutator = BitVectorMutator.ofLength(length); + BitVectorMutator mutator = BitVectorMutator.ofWidth(width); int val = value; - for (int i = length - 1; i >= 0; i--) + for (int i = width - 1; i >= 0; i--) { mutator.setMSBit(i, Bit.lastBitOf(val)); val >>>= 1; diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java index 1695eae3..f3686aa2 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java @@ -54,7 +54,7 @@ public class TestableAm2910Impl implements TestableAm2910 @Override public void setInstruction(Am2910_Inst inst) { - I.setState(BitVector.of(inst.ordinal(), 4)); + I.setState(BitVector.from(inst.ordinal(), 4)); } @Override diff --git a/net.mograsim.logic.model.editor/META-INF/MANIFEST.MF b/net.mograsim.logic.model.editor/META-INF/MANIFEST.MF index d5222818..283c286d 100644 --- a/net.mograsim.logic.model.editor/META-INF/MANIFEST.MF +++ b/net.mograsim.logic.model.editor/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 0.1.0.qualifier Export-Package: net.mograsim.logic.model.editor, net.mograsim.logic.model.editor.handles, net.mograsim.logic.model.editor.states, - net.mograsim.logic.model.editor.ui + net.mograsim.logic.model.editor.ui, + net.mograsim.logic.model.editor.util Require-Bundle: net.mograsim.logic.model;bundle-version="0.1.0", net.mograsim.preferences;bundle-version="0.1.0", net.mograsim.logic.model.am2900;bundle-version="0.1.0" diff --git a/net.mograsim.logic.model.editor/components/GUIdff4.json b/net.mograsim.logic.model.editor/components/GUIdff4.json new file mode 100644 index 00000000..72b7273d --- /dev/null +++ b/net.mograsim.logic.model.editor/components/GUIdff4.json @@ -0,0 +1,716 @@ +mograsim version: 0.1.3 +{ + "width": 35.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "D4", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q1", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Q2", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Q3", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Q4", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "D1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "WE", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D2", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "D3", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.2, + "subComps": [ + { + "id": "GUIdff", + "name": "GUIdff#1", + "pos": { + "x": 115.0, + "y": 70.0 + } + }, + { + "id": "GUIdff", + "name": "GUIdff#0", + "pos": { + "x": 115.0, + "y": 20.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 104.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 104.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 169.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 104.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 159.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 164.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 154.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 55.0, + "y": 70.0 + } + }, + { + "id": "GUIdff", + "name": "GUIdff#3", + "pos": { + "x": 115.0, + "y": 170.0 + } + }, + { + "id": "GUIdff", + "name": "GUIdff#2", + "pos": { + "x": 115.0, + "y": 120.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#1", + "pinName": "Q" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff#2", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 15.0, + "y": 275.0 + }, + { + "x": 15.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q3" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#3", + "pinName": "Q" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q4" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUIdff#3", + "pinName": "D" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 95.0, + "y": 105.0 + }, + { + "x": 95.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "GUIdff#2", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 100.0, + "y": 95.0 + }, + { + "x": 100.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 165.0, + "y": 200.0 + }, + { + "x": 45.0, + "y": 200.0 + }, + { + "x": 45.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 170.0, + "y": 195.0 + }, + { + "x": 50.0, + "y": 195.0 + }, + { + "x": 50.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 160.0, + "y": 205.0 + }, + { + "x": 40.0, + "y": 205.0 + }, + { + "x": 40.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 155.0, + "y": 210.0 + }, + { + "x": 35.0, + "y": 210.0 + }, + { + "x": 35.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "WE" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#3", + "pinName": "C" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#2", + "pinName": "C" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "GUIdff#0", + "pinName": "D" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 100.0, + "y": 75.0 + }, + { + "x": 100.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#1", + "pinName": "C" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#0", + "pinName": "C" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 10.0, + "y": 225.0 + }, + { + "x": 10.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 5.0, + "y": 175.0 + }, + { + "x": 5.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "GUIdff#1", + "pinName": "D" + }, + "name": "unnamedWire#2", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "D flip flop\n4 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q1": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#0", + "subStateID": "q" + } + }, + "q2": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#1", + "subStateID": "q" + } + }, + "q": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler", + "params": { + "vectorPartTargets": [ + "q1", + "q2", + "q3", + "q4" + ], + "vectorPartWidths": [ + 1, + 1, + 1, + 1 + ] + } + }, + "q3": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#2", + "subStateID": "q" + } + }, + "q4": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#3", + "subStateID": "q" + } + } + } + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/GUIdff4_invwe.json b/net.mograsim.logic.model.editor/components/GUIdff4_invwe.json new file mode 100644 index 00000000..7665a992 --- /dev/null +++ b/net.mograsim.logic.model.editor/components/GUIdff4_invwe.json @@ -0,0 +1,725 @@ +mograsim version: 0.1.3 +{ + "width": 35.0, + "height": 60.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 55.0 + }, + "name": "D4", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Q1", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 15.0 + }, + "name": "Q2", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 25.0 + }, + "name": "Q3", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 35.0 + }, + "name": "Q4", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "D1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "_WE", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "D2", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 45.0 + }, + "name": "D3", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.2, + "subComps": [ + { + "id": "GUIdff", + "name": "GUIdff#1", + "pos": { + "x": 115.0, + "y": 70.0 + } + }, + { + "id": "GUIdff", + "name": "GUIdff#0", + "pos": { + "x": 115.0, + "y": 20.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 104.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 104.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 169.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 104.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 159.0, + "y": 124.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 164.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 154.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 55.0, + "y": 70.0 + } + }, + { + "id": "GUIdff", + "name": "GUIdff#3", + "pos": { + "x": 115.0, + "y": 170.0 + } + }, + { + "id": "GUIdff", + "name": "GUIdff#2", + "pos": { + "x": 115.0, + "y": 120.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#1", + "pinName": "Q" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff#2", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 25.0, + "y": 275.0 + }, + { + "x": 25.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q3" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#3", + "pinName": "Q" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q4" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUIdff#3", + "pinName": "D" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 95.0, + "y": 105.0 + }, + { + "x": 95.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "GUIdff#2", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 100.0, + "y": 95.0 + }, + { + "x": 100.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 165.0, + "y": 210.0 + }, + { + "x": 45.0, + "y": 210.0 + }, + { + "x": 45.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 170.0, + "y": 205.0 + }, + { + "x": 50.0, + "y": 205.0 + }, + { + "x": 50.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#26", + "path": [ + { + "x": 160.0, + "y": 215.0 + }, + { + "x": 40.0, + "y": 215.0 + }, + { + "x": 40.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 155.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 155.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_WE" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#3", + "pinName": "C" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#2", + "pinName": "C" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "GUIdff#0", + "pinName": "D" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 100.0, + "y": 75.0 + }, + { + "x": 100.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#1", + "pinName": "C" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 10.0, + "y": 125.0 + }, + { + "x": 10.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff#0", + "pinName": "C" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 20.0, + "y": 225.0 + }, + { + "x": 20.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 15.0, + "y": 175.0 + }, + { + "x": 15.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "GUIdff#1", + "pinName": "D" + }, + "name": "unnamedWire#2", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "D flip flop\n4 bit", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": { + "q1": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#0", + "subStateID": "q" + } + }, + "q2": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#1", + "subStateID": "q" + } + }, + "q": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler", + "params": { + "vectorPartTargets": [ + "q1", + "q2", + "q3", + "q4" + ], + "vectorPartWidths": [ + 1, + 1, + 1, + 1 + ] + } + }, + "q3": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#2", + "subStateID": "q" + } + }, + "q4": { + "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", + "params": { + "delegateTarget": "GUIdff#3", + "subStateID": "q" + } + } + } + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/GUIdlatch4.json b/net.mograsim.logic.model.editor/components/GUIdlatch4.json index 28021dff..a836450f 100644 --- a/net.mograsim.logic.model.editor/components/GUIdlatch4.json +++ b/net.mograsim.logic.model.editor/components/GUIdlatch4.json @@ -368,7 +368,7 @@ mograsim version: 0.1.3 "q3", "q4" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 1, 1, 1, diff --git a/net.mograsim.logic.model.editor/components/GUImux2.json b/net.mograsim.logic.model.editor/components/GUImux2.json new file mode 100644 index 00000000..2542ce0a --- /dev/null +++ b/net.mograsim.logic.model.editor/components/GUImux2.json @@ -0,0 +1,447 @@ +mograsim version: 0.1.3 +{ + "width": 70.0, + "height": 70.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "I00", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I11", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I10", + "logicWidth": 1 + }, + { + "location": { + "x": 70.0, + "y": 10.0 + }, + "name": "Y", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I01", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 30.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 29.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 24.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 54.0, + "y": 39.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 24.0, + "y": 49.0 + }, + "params": 1 + }, + { + "id": "GUIsel1", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 60.0, + "y": 100.0 + } + }, + { + "id": "GUIsel1", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 60.0, + "y": 35.0 + } + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 115.0, + "y": 20.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S2" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 25.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 55.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S1" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 55.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 15.0, + "y": 50.0 + }, + { + "x": 15.0, + "y": 10.0 + }, + { + "x": 85.0, + "y": 10.0 + }, + { + "x": 85.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#8", + "path": [ + { + "x": 105.0, + "y": 105.0 + }, + { + "x": 105.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 105.0, + "y": 40.0 + }, + { + "x": 105.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 20.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I11" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I2" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 150.0 + }, + { + "x": 20.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I10" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I01" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I2" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 40.0, + "y": 100.0 + }, + { + "x": 40.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I00" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 35.0, + "y": 75.0 + }, + { + "x": 35.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S2" + }, + "name": "unnamedWire#11", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "GUImux2", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/GUImux2_4.json b/net.mograsim.logic.model.editor/components/GUImux2_4.json new file mode 100644 index 00000000..f9648eee --- /dev/null +++ b/net.mograsim.logic.model.editor/components/GUImux2_4.json @@ -0,0 +1,692 @@ +mograsim version: 0.1.3 +{ + "width": 62.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "I00", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I11", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I10", + "logicWidth": 4 + }, + { + "location": { + "x": 62.0, + "y": 16.0 + }, + "name": "Y", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I01", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 19.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 25.0, + "y": 45.0 + }, + "params": 4 + }, + { + "id": "GUIMerger", + "name": "GUIMerger#0", + "pos": { + "x": 140.0, + "y": 25.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#3", + "pos": { + "x": 25.0, + "y": 180.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#2", + "pos": { + "x": 25.0, + "y": 140.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#1", + "pos": { + "x": 25.0, + "y": 85.0 + }, + "params": 4 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 40.0, + "y": 125.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 40.0, + "y": 30.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 100.0, + "y": 20.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 15.0, + "y": 50.0 + }, + { + "x": 15.0, + "y": 20.0 + }, + { + "x": 60.0, + "y": 20.0 + }, + { + "x": 60.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I3" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 20.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S0" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 20.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I00" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 15.0, + "y": 60.0 + }, + { + "x": 15.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "I" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I10" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 15.0, + "y": 155.0 + }, + { + "x": 15.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I01" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "I" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_1" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I11" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "I" + }, + "name": "unnamedWire#22", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_3" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y1" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 80.0, + "y": 75.0 + }, + { + "x": 80.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y3" + }, + "name": "unnamedWire#29", + "path": [ + { + "x": 90.0, + "y": 95.0 + }, + { + "x": 90.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_2" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 85.0, + "y": 140.0 + }, + { + "x": 85.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_4" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_3" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "O1" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_1" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_4" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 95.0, + "y": 160.0 + }, + { + "x": 95.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_2" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y1" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_4" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "O3" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_1" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y3" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_3" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y2" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I1" + }, + "name": "unnamedWire#33", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "GUImux1_4", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/GUImux3.json b/net.mograsim.logic.model.editor/components/GUImux3.json new file mode 100644 index 00000000..69181cde --- /dev/null +++ b/net.mograsim.logic.model.editor/components/GUImux3.json @@ -0,0 +1,479 @@ +mograsim version: 0.1.3 +{ + "width": 80.0, + "height": 120.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "I000", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 70.0 + }, + "name": "I011", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 100.0 + }, + "name": "I110", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 60.0 + }, + "name": "I010", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 90.0 + }, + "name": "I101", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 80.0 + }, + "name": "I100", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 110.0 + }, + "name": "I111", + "logicWidth": 1 + }, + { + "location": { + "x": 80.0, + "y": 10.0 + }, + "name": "Y", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I001", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "S0", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "S1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "S2", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 24.0, + "y": 94.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 19.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "GUImux2", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 35.0, + "y": 185.0 + } + }, + { + "id": "GUImux2", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 35.0, + "y": 85.0 + } + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 125.0, + "y": 20.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I111" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I11" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 15.0, + "y": 275.0 + }, + { + "x": 15.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I10" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I110" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 10.0, + "y": 235.0 + }, + { + "x": 10.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 110.0, + "y": 95.0 + }, + { + "x": 110.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 115.0, + "y": 195.0 + }, + { + "x": 115.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 70.0, + "y": 25.0 + }, + { + "x": 70.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I010" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I10" + }, + "name": "unnamedWire#9", + "path": [ + { + "x": 10.0, + "y": 150.0 + }, + { + "x": 10.0, + "y": 135.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I01" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I001" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I000" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I00" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 10.0, + "y": 100.0 + }, + { + "x": 10.0, + "y": 115.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 20.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S1" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 20.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I11" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I011" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 15.0, + "y": 145.0 + }, + { + "x": 15.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 25.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S1" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I101" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I01" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S0" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I00" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "I100" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 10.0, + "y": 215.0 + }, + { + "x": 10.0, + "y": 200.0 + } + ] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "GUImux3", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/GUIram2.json b/net.mograsim.logic.model.editor/components/GUIram2.json index 31a01fba..c2919803 100644 --- a/net.mograsim.logic.model.editor/components/GUIram2.json +++ b/net.mograsim.logic.model.editor/components/GUIram2.json @@ -2998,7 +2998,7 @@ mograsim version: 0.1.3 "c01.q", "c00.q" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 4, 4, 4, diff --git a/net.mograsim.logic.model.editor/components/GUIram4.json b/net.mograsim.logic.model.editor/components/GUIram4.json index 05bfe9da..f676b3dd 100644 --- a/net.mograsim.logic.model.editor/components/GUIram4.json +++ b/net.mograsim.logic.model.editor/components/GUIram4.json @@ -3490,7 +3490,7 @@ mograsim version: 0.1.3 "c01.q", "c00.q" ], - "vectorPartLengthes": [ + "vectorPartWidths": [ 16, 16, 16, diff --git a/net.mograsim.logic.model.editor/components/GUIsel1.json b/net.mograsim.logic.model.editor/components/GUIsel1.json new file mode 100644 index 00000000..26a25cfb --- /dev/null +++ b/net.mograsim.logic.model.editor/components/GUIsel1.json @@ -0,0 +1,208 @@ +mograsim version: 0.1.3 +{ + "width": 35.0, + "height": 40.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "I1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 35.0 + }, + "name": "I2", + "logicWidth": 1 + }, + { + "location": { + "x": 35.0, + "y": 5.0 + }, + "name": "Y", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "S1", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "S2", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 35.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#3", + "pos": { + "x": 60.0, + "y": 40.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 35.0, + "y": 55.0 + }, + "params": 1 + } + ], + "innerWires": [ + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#9" + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#8" + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I2" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#7", + "path": [ + { + "x": 15.0, + "y": 87.5 + }, + { + "x": 15.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S2" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 15.0, + "y": 37.5 + }, + { + "x": 15.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "S1" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 25.0, + "y": 12.5 + }, + { + "x": 25.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I1" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#5", + "path": [ + { + "x": 25.0, + "y": 62.5 + }, + { + "x": 25.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#10" + } + ] + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "GUIsel1", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "default" +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901.json index 503d8546..02f17617 100644 --- a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901.json +++ b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901.json @@ -549,8 +549,8 @@ mograsim version: 0.1.3 "params": 1 }, { - "id": "GUIAm2901QReg", - "name": "GUIAm2901QReg#0", + "id": "GUIdff4", + "name": "GUIdff4#0", "pos": { "x": 90.0, "y": 2490.0 @@ -1538,7 +1538,7 @@ mograsim version: 0.1.3 "pinName": "" }, "pin2": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "C" }, "name": "unnamedWire#17", @@ -2123,7 +2123,7 @@ mograsim version: 0.1.3 "pinName": "Y2" }, "pin2": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "D2" }, "name": "unnamedWire#87", @@ -2135,7 +2135,7 @@ mograsim version: 0.1.3 "pinName": "Y1" }, "pin2": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "D1" }, "name": "unnamedWire#86", @@ -2147,7 +2147,7 @@ mograsim version: 0.1.3 "pinName": "Y4" }, "pin2": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "D4" }, "name": "unnamedWire#89", @@ -2159,7 +2159,7 @@ mograsim version: 0.1.3 "pinName": "Y3" }, "pin2": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "D3" }, "name": "unnamedWire#88", @@ -2327,7 +2327,7 @@ mograsim version: 0.1.3 "pinName": "QWE" }, "pin2": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "WE" }, "name": "unnamedWire#147", @@ -3003,7 +3003,7 @@ mograsim version: 0.1.3 }, { "pin1": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "Q2" }, "pin2": { @@ -3015,7 +3015,7 @@ mograsim version: 0.1.3 }, { "pin1": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "Q1" }, "pin2": { @@ -3027,7 +3027,7 @@ mograsim version: 0.1.3 }, { "pin1": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "Q4" }, "pin2": { @@ -3039,7 +3039,7 @@ mograsim version: 0.1.3 }, { "pin1": { - "compName": "GUIAm2901QReg#0", + "compName": "GUIdff4#0", "pinName": "Q3" }, "pin2": { @@ -3406,7 +3406,7 @@ mograsim version: 0.1.3 "qreg": { "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler", "params": { - "delegateTarget": "GUIAm2901QReg#0" + "delegateTarget": "GUIdff4#0" } }, "regs": { diff --git a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901QReg.json b/net.mograsim.logic.model.editor/components/am2901/GUIAm2901QReg.json deleted file mode 100644 index 4f3bc2d7..00000000 --- a/net.mograsim.logic.model.editor/components/am2901/GUIAm2901QReg.json +++ /dev/null @@ -1,716 +0,0 @@ -mograsim version: 0.1.3 -{ - "width": 35.0, - "height": 60.0, - "interfacePins": [ - { - "location": { - "x": 0.0, - "y": 55.0 - }, - "name": "D4", - "logicWidth": 1 - }, - { - "location": { - "x": 35.0, - "y": 5.0 - }, - "name": "Q1", - "logicWidth": 1 - }, - { - "location": { - "x": 35.0, - "y": 15.0 - }, - "name": "Q2", - "logicWidth": 1 - }, - { - "location": { - "x": 35.0, - "y": 25.0 - }, - "name": "Q3", - "logicWidth": 1 - }, - { - "location": { - "x": 0.0, - "y": 5.0 - }, - "name": "C", - "logicWidth": 1 - }, - { - "location": { - "x": 35.0, - "y": 35.0 - }, - "name": "Q4", - "logicWidth": 1 - }, - { - "location": { - "x": 0.0, - "y": 25.0 - }, - "name": "D1", - "logicWidth": 1 - }, - { - "location": { - "x": 0.0, - "y": 15.0 - }, - "name": "WE", - "logicWidth": 1 - }, - { - "location": { - "x": 0.0, - "y": 35.0 - }, - "name": "D2", - "logicWidth": 1 - }, - { - "location": { - "x": 0.0, - "y": 45.0 - }, - "name": "D3", - "logicWidth": 1 - } - ], - "submodel": { - "innerScale": 0.2, - "subComps": [ - { - "id": "GUIdff", - "name": "GUIdff#1", - "pos": { - "x": 115.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#0", - "pos": { - "x": 115.0, - "y": 20.0 - } - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#1", - "pos": { - "x": 104.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#0", - "pos": { - "x": 104.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#3", - "pos": { - "x": 169.0, - "y": 24.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#2", - "pos": { - "x": 104.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#5", - "pos": { - "x": 159.0, - "y": 124.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#4", - "pos": { - "x": 164.0, - "y": 74.0 - }, - "params": 1 - }, - { - "id": "WireCrossPoint", - "name": "WireCrossPoint#6", - "pos": { - "x": 154.0, - "y": 174.0 - }, - "params": 1 - }, - { - "id": "GUImux1_4", - "name": "DeserializedSubmodelComponent#0", - "pos": { - "x": 55.0, - "y": 70.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#3", - "pos": { - "x": 115.0, - "y": 170.0 - } - }, - { - "id": "GUIdff", - "name": "GUIdff#2", - "pos": { - "x": 115.0, - "y": 120.0 - } - } - ], - "innerWires": [ - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q1" - }, - "name": "unnamedWire#14", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff#0", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "name": "unnamedWire#13", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "Q" - }, - "name": "unnamedWire#16", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "Q2" - }, - "pin2": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "name": "unnamedWire#15", - "path": [] - }, - { - "pin1": { - "compName": "GUIdff#2", - "pinName": "Q" - }, - "pin2": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "name": "unnamedWire#18", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D4" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_4" - }, - "name": "unnamedWire#17", - "path": [ - { - "x": 15.0, - "y": 275.0 - }, - { - "x": 15.0, - "y": 155.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q3" - }, - "name": "unnamedWire#19", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "Q" - }, - "name": "unnamedWire#21", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "_submodelinterface", - "pinName": "Q4" - }, - "name": "unnamedWire#20", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y4" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "D" - }, - "name": "unnamedWire#23", - "path": [ - { - "x": 95.0, - "y": 105.0 - }, - { - "x": 95.0, - "y": 185.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y3" - }, - "pin2": { - "compName": "GUIdff#2", - "pinName": "D" - }, - "name": "unnamedWire#22", - "path": [ - { - "x": 100.0, - "y": 95.0 - }, - { - "x": 100.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#4", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_2" - }, - "name": "unnamedWire#25", - "path": [ - { - "x": 165.0, - "y": 200.0 - }, - { - "x": 45.0, - "y": 200.0 - }, - { - "x": 45.0, - "y": 95.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#3", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_1" - }, - "name": "unnamedWire#24", - "path": [ - { - "x": 170.0, - "y": 195.0 - }, - { - "x": 50.0, - "y": 195.0 - }, - { - "x": 50.0, - "y": 85.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "name": "unnamedWire#27", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#5", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_3" - }, - "name": "unnamedWire#26", - "path": [ - { - "x": 160.0, - "y": 205.0 - }, - { - "x": 40.0, - "y": 205.0 - }, - { - "x": 40.0, - "y": 105.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#6", - "pinName": "" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I0_4" - }, - "name": "unnamedWire#28", - "path": [ - { - "x": 155.0, - "y": 210.0 - }, - { - "x": 35.0, - "y": 210.0 - }, - { - "x": 35.0, - "y": 115.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "WE" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "S0" - }, - "name": "unnamedWire#9", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#3", - "pinName": "C" - }, - "name": "unnamedWire#8", - "path": [ - { - "x": 105.0, - "y": 175.0 - } - ] - }, - { - "pin1": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#2", - "pinName": "C" - }, - "name": "unnamedWire#7", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#2", - "pinName": "" - }, - "name": "unnamedWire#6", - "path": [] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y1" - }, - "pin2": { - "compName": "GUIdff#0", - "pinName": "D" - }, - "name": "unnamedWire#1", - "path": [ - { - "x": 100.0, - "y": 75.0 - }, - { - "x": 100.0, - "y": 35.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "C" - }, - "pin2": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "name": "unnamedWire#0", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "C" - }, - "name": "unnamedWire#5", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D1" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_1" - }, - "name": "unnamedWire#10", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "WireCrossPoint#1", - "pinName": "" - }, - "name": "unnamedWire#4", - "path": [] - }, - { - "pin1": { - "compName": "WireCrossPoint#0", - "pinName": "" - }, - "pin2": { - "compName": "GUIdff#0", - "pinName": "C" - }, - "name": "unnamedWire#3", - "path": [] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D3" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_3" - }, - "name": "unnamedWire#12", - "path": [ - { - "x": 10.0, - "y": 225.0 - }, - { - "x": 10.0, - "y": 145.0 - } - ] - }, - { - "pin1": { - "compName": "_submodelinterface", - "pinName": "D2" - }, - "pin2": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "I1_2" - }, - "name": "unnamedWire#11", - "path": [ - { - "x": 5.0, - "y": 175.0 - }, - { - "x": 5.0, - "y": 135.0 - } - ] - }, - { - "pin1": { - "compName": "DeserializedSubmodelComponent#0", - "pinName": "Y2" - }, - "pin2": { - "compName": "GUIdff#1", - "pinName": "D" - }, - "name": "unnamedWire#2", - "path": [] - } - ] - }, - "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", - "symbolRendererParams": { - "centerText": "GUIAm2901QReg", - "centerTextHeight": 5.0, - "horizontalComponentCenter": 17.5, - "pinLabelHeight": 3.5, - "pinLabelMargin": 0.5 - }, - "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", - "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", - "highLevelStateHandlerParams": { - "subcomponentHighLevelStates": {}, - "atomicHighLevelStates": { - "q1": { - "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", - "params": { - "delegateTarget": "GUIdff#0", - "subStateID": "q" - } - }, - "q2": { - "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", - "params": { - "delegateTarget": "GUIdff#1", - "subStateID": "q" - } - }, - "q": { - "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler", - "params": { - "vectorPartTargets": [ - "q1", - "q2", - "q3", - "q4" - ], - "vectorPartLengthes": [ - 1, - 1, - 1, - 1 - ] - } - }, - "q3": { - "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", - "params": { - "delegateTarget": "GUIdff#2", - "subStateID": "q" - } - }, - "q4": { - "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler", - "params": { - "delegateTarget": "GUIdff#3", - "subStateID": "q" - } - } - } - } -} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2904/GUIAm2904.json b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904.json new file mode 100644 index 00000000..33bdddab --- /dev/null +++ b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904.json @@ -0,0 +1,2450 @@ +mograsim version: 0.1.3 +{ + "width": 120.0, + "height": 94.0, + "interfacePins": [ + { + "location": { + "x": 0.0, + "y": 25.0 + }, + "name": "IOVR", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 30.0 + }, + "name": "_CEM", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 61.0 + }, + "name": "I", + "logicWidth": 13 + }, + { + "location": { + "x": 0.0, + "y": 40.0 + }, + "name": "_EN", + "logicWidth": 1 + }, + { + "location": { + "x": -14.600000000000001, + "y": -0.6000000000000001 + }, + "name": "QIOn_out", + "logicWidth": 1 + }, + { + "location": { + "x": 120.0, + "y": 17.0 + }, + "name": "YC", + "logicWidth": 1 + }, + { + "location": { + "x": -24.6, + "y": 14.4 + }, + "name": "SIOn_in", + "logicWidth": 1 + }, + { + "location": { + "x": -24.6, + "y": 24.400000000000002 + }, + "name": "C0", + "logicWidth": 1 + }, + { + "location": { + "x": -34.6, + "y": 29.400000000000002 + }, + "name": "QIO0_in", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 36.0 + }, + "name": "_EZ", + "logicWidth": 1 + }, + { + "location": { + "x": -14.600000000000001, + "y": 14.4 + }, + "name": "Cx", + "logicWidth": 1 + }, + { + "location": { + "x": 120.0, + "y": 21.0 + }, + "name": "YN", + "logicWidth": 1 + }, + { + "location": { + "x": -24.6, + "y": 19.400000000000002 + }, + "name": "SIOn_out", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 15.0 + }, + "name": "IC", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 42.0 + }, + "name": "_EOVR", + "logicWidth": 1 + }, + { + "location": { + "x": 120.0, + "y": 11.0 + }, + "name": "YZ", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 20.0 + }, + "name": "IN", + "logicWidth": 1 + }, + { + "location": { + "x": 61.0, + "y": 0.0 + }, + "name": "_OEY", + "logicWidth": 1 + }, + { + "location": { + "x": -24.6, + "y": 44.400000000000006 + }, + "name": "SIO0_in", + "logicWidth": 1 + }, + { + "location": { + "x": -24.6, + "y": 49.400000000000006 + }, + "name": "SIO0_out", + "logicWidth": 1 + }, + { + "location": { + "x": -14.600000000000001, + "y": 44.400000000000006 + }, + "name": "QIO0_out", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 10.0 + }, + "name": "IZ", + "logicWidth": 1 + }, + { + "location": { + "x": 120.0, + "y": 60.0 + }, + "name": "CT", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 33.0 + }, + "name": "_CEmu", + "logicWidth": 1 + }, + { + "location": { + "x": -24.6, + "y": 54.400000000000006 + }, + "name": "QIOn_in", + "logicWidth": 1 + }, + { + "location": { + "x": 120.0, + "y": 25.0 + }, + "name": "YOVR", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 38.0 + }, + "name": "_EC", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.2, + "subComps": [ + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 520.0, + "y": 190.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 330.0, + "y": 125.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 255.0, + "y": 255.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 255.0, + "y": 265.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 180.0, + "y": 135.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 165.0, + "y": 150.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 335.0, + "y": 270.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 295.0, + "y": 120.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 530.0, + "y": 100.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 150.0, + "y": 160.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 215.0, + "y": 180.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer", + "name": "GUITriStateBuffer#0", + "pos": { + "x": 530.0, + "y": 170.0 + }, + "params": { + "logicWidth": 4, + "orientation": "RIGHT" + } + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 120.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 215.0, + "y": 200.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 215.0, + "y": 160.0 + }, + "params": 1 + }, + { + "id": "GUIAm2904muSR", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 270.0, + "y": 250.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 195.0, + "y": 55.0 + }, + "params": 1 + }, + { + "id": "GUIAm2904MSR", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 225.0, + "y": 95.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 195.0, + "y": 35.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 470.0, + "y": 160.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 195.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "GUIand", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 370.0, + "y": 130.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 415.0, + "y": 210.0 + } + }, + { + "id": "GUInot4", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 135.0, + "y": 40.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#3", + "pos": { + "x": 510.0, + "y": 165.0 + }, + "params": 4 + }, + { + "id": "GUImux3", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 300.0, + "y": 310.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#2", + "pos": { + "x": 15.0, + "y": 65.0 + }, + "params": 4 + }, + { + "id": "GUIAm2904TestLogic", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 225.0, + "y": 340.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#1", + "pos": { + "x": 25.0, + "y": 305.0 + }, + "params": 5 + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#9", + "pos": { + "x": 480.0, + "y": 305.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger", + "name": "GUIMerger#0", + "pos": { + "x": 25.0, + "y": 245.0 + }, + "params": 6 + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 540.0, + "y": 295.0 + } + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#10", + "pos": { + "x": 485.0, + "y": 355.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#10", + "pos": { + "x": 340.0, + "y": 120.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#9", + "pos": { + "x": 205.0, + "y": 10.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#8", + "pos": { + "x": 205.0, + "y": 30.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#5", + "pos": { + "x": 225.0, + "y": 175.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#4", + "pos": { + "x": 225.0, + "y": 155.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#7", + "pos": { + "x": 205.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#6", + "pos": { + "x": 205.0, + "y": 70.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 130.0, + "y": 5.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 190.0, + "y": 145.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#3", + "pos": { + "x": 225.0, + "y": 215.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 225.0, + "y": 195.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#4", + "pos": { + "x": 395.0, + "y": 225.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#3", + "pos": { + "x": 450.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#2", + "pos": { + "x": 395.0, + "y": 195.0 + }, + "params": 2 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#1", + "pos": { + "x": 555.0, + "y": 80.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#8", + "pos": { + "x": 445.0, + "y": 370.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#7", + "pos": { + "x": 445.0, + "y": 330.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#6", + "pos": { + "x": 285.0, + "y": 320.0 + }, + "params": 3 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#5", + "pos": { + "x": 395.0, + "y": 265.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 10.0, + "y": 245.0 + }, + "params": 13 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode", + "name": "GUIAm2904RegCTInstrDecode#0", + "pos": { + "x": 50.0, + "y": 230.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode", + "name": "GUIAm2904ShiftInstrDecode#0", + "pos": { + "x": 50.0, + "y": 360.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_CEmu" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "A" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_4" + }, + "name": "unnamedWire#110", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#111", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y111" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I111" + }, + "name": "unnamedWire#114", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I110" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y110" + }, + "name": "unnamedWire#115", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "GUITriStateBuffer#0", + "pinName": "IN" + }, + "name": "unnamedWire#112", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I" + }, + "name": "unnamedWire#113", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y011" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I011" + }, + "name": "unnamedWire#118", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y010" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I010" + }, + "name": "unnamedWire#119", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y101" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I101" + }, + "name": "unnamedWire#116", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I100" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y100" + }, + "name": "unnamedWire#117", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EOVR" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EC" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "Y" + }, + "name": "unnamedWire#45", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EN" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#4", + "pinName": "B" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEZ" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "_EZ" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O0" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YZ" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEC" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_4" + }, + "name": "unnamedWire#100", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_2" + }, + "name": "unnamedWire#103", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#4", + "pinName": "O2" + }, + "name": "unnamedWire#104", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#101", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_1" + }, + "name": "unnamedWire#102", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "YC" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O1" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_1" + }, + "name": "unnamedWire#107", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#5", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_2" + }, + "name": "unnamedWire#108", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "YOVR" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O3" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_4" + }, + "name": "unnamedWire#105", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "YN" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#4", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#106", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "name": "unnamedWire#54", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "I" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_3" + }, + "pin2": { + "compName": "GUISplitter#5", + "pinName": "O2" + }, + "name": "unnamedWire#109", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O10" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "I4" + }, + "name": "unnamedWire#14", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#1", + "pinName": "I3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O9" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904ShiftInstrDecode#0", + "pinName": "I" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "O" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 40.0, + "y": 395.0 + }, + { + "x": 40.0, + "y": 325.0 + } + ] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "O" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "I" + }, + "name": "unnamedWire#15", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IN" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I2" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 5.0, + "y": 100.0 + }, + { + "x": 5.0, + "y": 85.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IOVR" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I3" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 10.0, + "y": 125.0 + }, + { + "x": 10.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IC" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I1" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_CINV" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "CINV" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "IZ" + }, + "pin2": { + "compName": "GUIMerger#2", + "pinName": "I0" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 5.0, + "y": 50.0 + }, + { + "x": 5.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#2", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Q" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "C" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "mu" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "C" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904ShiftInstrDecode#0", + "pinName": "MC_EN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "COVD_EN" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "MSR_MUX" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "MUX" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "GUITriStateBuffer#0", + "pinName": "OUT" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#79", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#10", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#81", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#10", + "pinName": "A" + }, + "name": "unnamedWire#80", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#10", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A" + }, + "name": "unnamedWire#83", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_OEY" + }, + "name": "unnamedWire#82", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_1" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "GUITriStateBuffer#0", + "pinName": "EN" + }, + "name": "unnamedWire#84", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_3" + }, + "name": "unnamedWire#87", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y2" + }, + "name": "unnamedWire#86", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "GUIMerger#3", + "pinName": "I0" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y4" + }, + "name": "unnamedWire#88", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I5" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O5" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O4" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I4" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I2" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#3", + "pinName": "I1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y2" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#3", + "pinName": "I3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y4" + }, + "name": "unnamedWire#92", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "GUIMerger#3", + "pinName": "I2" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_MUX" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "MUX" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "Y_MUX" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "I" + }, + "name": "unnamedWire#94", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 5.0, + "y": 25.0 + }, + { + "x": 5.0, + "y": 10.0 + } + ] + }, + { + "pin1": { + "compName": "GUIMerger#3", + "pinName": "O" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#93", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "S0" + }, + "name": "unnamedWire#96", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S0" + }, + "name": "unnamedWire#95", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O6" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "I0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "O1" + }, + "name": "unnamedWire#98", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I0" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_1" + }, + "name": "unnamedWire#97", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O8" + }, + "pin2": { + "compName": "GUIMerger#1", + "pinName": "I2" + }, + "name": "unnamedWire#12", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#1", + "pinName": "I1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O7" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_OVRRET" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "OVRRET" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "O2" + }, + "name": "unnamedWire#99", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEN" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CEM" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "muSR_WEOVR" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "B" + }, + "name": "unnamedWire#59", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I" + }, + "name": "unnamedWire#132", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "GUISplitter#7", + "pinName": "I" + }, + "name": "unnamedWire#133", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "A" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "CT_INV" + }, + "name": "unnamedWire#130", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I1" + }, + "name": "unnamedWire#131", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "M" + }, + "name": "unnamedWire#136", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "GUISplitter#8", + "pinName": "I" + }, + "name": "unnamedWire#137", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#7", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "A" + }, + "name": "unnamedWire#134", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#8", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#10", + "pinName": "B" + }, + "name": "unnamedWire#135", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#7", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#61", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#6", + "pinName": "A" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#9", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "OEN" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B" + }, + "name": "unnamedWire#138", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#8", + "pinName": "A" + }, + "name": "unnamedWire#62", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EN" + }, + "pin2": { + "compName": "GUINandGate#7", + "pinName": "Y" + }, + "name": "unnamedWire#67", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#6", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EOVR" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#9", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EZ" + }, + "name": "unnamedWire#69", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#8", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "_EC" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y000" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I000" + }, + "name": "unnamedWire#121", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CT" + }, + "name": "unnamedWire#122", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I001" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y001" + }, + "name": "unnamedWire#120", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#6", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S0" + }, + "name": "unnamedWire#125", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S1" + }, + "pin2": { + "compName": "GUISplitter#6", + "pinName": "O1" + }, + "name": "unnamedWire#126", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#70", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "B" + }, + "name": "unnamedWire#123", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#6", + "pinName": "I" + }, + "pin2": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "CT_MUX" + }, + "name": "unnamedWire#124", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#8", + "pinName": "B" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y2" + }, + "name": "unnamedWire#72", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "I0" + }, + "name": "unnamedWire#129", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "GUINandGate#9", + "pinName": "B" + }, + "name": "unnamedWire#71", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUINandGate#6", + "pinName": "B" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#6", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S2" + }, + "name": "unnamedWire#127", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "GUINandGate#7", + "pinName": "B" + }, + "name": "unnamedWire#73", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2904RegCTInstrDecode#0", + "pinName": "CT_EXP" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#9", + "pinName": "S0" + }, + "name": "unnamedWire#128", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EC" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A2" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EZ" + }, + "name": "unnamedWire#75", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EOVR" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A4" + }, + "name": "unnamedWire#78", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "A3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EN" + }, + "name": "unnamedWire#77", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "Am2904", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2904/GUIAm2904MSR.json b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904MSR.json new file mode 100644 index 00000000..3296f39c --- /dev/null +++ b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904MSR.json @@ -0,0 +1,1895 @@ +mograsim version: 0.1.3 +{ + "width": 45.0, + "height": 46.0, + "interfacePins": [ + { + "location": { + "x": 4.0, + "y": 46.0 + }, + "name": "MUX", + "logicWidth": 3 + }, + { + "location": { + "x": 45.0, + "y": 19.0 + }, + "name": "Q", + "logicWidth": 4 + }, + { + "location": { + "x": 27.5, + "y": 46.0 + }, + "name": "COVD_EN", + "logicWidth": 1 + }, + { + "location": { + "x": 14.0, + "y": 46.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 5.5, + "y": 0.0 + }, + "name": "_EZ", + "logicWidth": 1 + }, + { + "location": { + "x": 37.5, + "y": 46.0 + }, + "name": "COVD_V", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 5.0 + }, + "name": "mu", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 18.0 + }, + "name": "Y", + "logicWidth": 4 + }, + { + "location": { + "x": 0.0, + "y": 31.0 + }, + "name": "I", + "logicWidth": 4 + }, + { + "location": { + "x": 25.5, + "y": 0.0 + }, + "name": "_EN", + "logicWidth": 1 + }, + { + "location": { + "x": 15.5, + "y": 0.0 + }, + "name": "_EC", + "logicWidth": 1 + }, + { + "location": { + "x": 35.5, + "y": 0.2 + }, + "name": "_EOVR", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.1, + "subComps": [ + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#14", + "pos": { + "x": 89.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#13", + "pos": { + "x": 194.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 325.0, + "y": 90.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#16", + "pos": { + "x": 319.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#15", + "pos": { + "x": 319.0, + "y": 294.0 + }, + "params": 1 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#3", + "pos": { + "x": 5.0, + "y": 295.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#2", + "pos": { + "x": 45.0, + "y": 425.0 + }, + "params": 3 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#1", + "pos": { + "x": 5.0, + "y": 165.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 414.0, + "y": 174.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 29.0, + "y": 284.0 + }, + "params": 1 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 5.0, + "y": 35.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 424.0, + "y": 194.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 419.0, + "y": 184.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 84.0, + "y": 344.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 429.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 29.0, + "y": 254.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 94.0, + "y": 364.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 49.0, + "y": 114.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 74.0, + "y": 314.0 + }, + "params": 1 + }, + { + "id": "GUIdff4_finewe", + "name": "GUIdff4_finewe#0", + "pos": { + "x": 375.0, + "y": 170.0 + } + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 35.0, + "y": 250.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 89.0, + "y": 84.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 55.0, + "y": 110.0 + } + }, + { + "id": "GUInot4", + "name": "DeserializedSubmodelComponent#3", + "pos": { + "x": 100.0, + "y": 330.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#12", + "pos": { + "x": 19.0, + "y": 294.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 150.0, + "y": 280.0 + } + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#11", + "pos": { + "x": 89.0, + "y": 94.0 + }, + "params": 1 + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#5", + "pos": { + "x": 200.0, + "y": 230.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#4", + "pos": { + "x": 110.0, + "y": 60.0 + } + }, + { + "id": "GUImux1", + "name": "DeserializedSubmodelComponent#7", + "pos": { + "x": 325.0, + "y": 290.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#6", + "pos": { + "x": 250.0, + "y": 180.0 + } + }, + { + "id": "GUIMerger", + "name": "GUIMerger#0", + "pos": { + "x": 435.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "GUIand", + "name": "DeserializedSubmodelComponent#8", + "pos": { + "x": 380.0, + "y": 85.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A3" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 425.0, + "y": 390.0 + }, + { + "x": 90.0, + "y": 390.0 + }, + { + "x": 90.0, + "y": 355.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#35", + "path": [ + { + "x": 420.0, + "y": 385.0 + }, + { + "x": 85.0, + "y": 385.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_3" + }, + "name": "unnamedWire#79", + "path": [ + { + "x": 205.0, + "y": 85.0 + }, + { + "x": 205.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 430.0, + "y": 395.0 + }, + { + "x": 95.0, + "y": 395.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_4" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 85.0, + "y": 325.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_1" + }, + "name": "unnamedWire#81", + "path": [ + { + "x": 215.0, + "y": 65.0 + }, + { + "x": 215.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y2" + }, + "name": "unnamedWire#80", + "path": [ + { + "x": 210.0, + "y": 205.0 + }, + { + "x": 210.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#83", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "S0" + }, + "name": "unnamedWire#82", + "path": [ + { + "x": 245.0, + "y": 445.0 + }, + { + "x": 245.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "S0" + }, + "name": "unnamedWire#85", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_2" + }, + "name": "unnamedWire#40", + "path": [ + { + "x": 95.0, + "y": 305.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "COVD_EN" + }, + "name": "unnamedWire#84", + "path": [ + { + "x": 275.0, + "y": 295.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "S0" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I0" + }, + "name": "unnamedWire#87", + "path": [ + { + "x": 305.0, + "y": 195.0 + }, + { + "x": 305.0, + "y": 305.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 30.0, + "y": 230.0 + }, + { + "x": 50.0, + "y": 230.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "COVD_V" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "I1" + }, + "name": "unnamedWire#86", + "path": [ + { + "x": 375.0, + "y": 325.0 + }, + { + "x": 320.0, + "y": 325.0 + }, + { + "x": 320.0, + "y": 315.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 50.0, + "y": 105.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "B" + }, + "name": "unnamedWire#89", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_1" + }, + "name": "unnamedWire#44", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#7", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "D2" + }, + "name": "unnamedWire#88", + "path": [ + { + "x": 365.0, + "y": 295.0 + }, + { + "x": 365.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_3" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_4" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q2" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I0" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#15", + "pinName": "" + }, + "name": "unnamedWire#90", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "name": "unnamedWire#92", + "path": [ + { + "x": 320.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#16", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#91", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EOVR" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE4" + }, + "name": "unnamedWire#1", + "path": [ + { + "x": 355.0, + "y": 30.0 + }, + { + "x": 355.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "C" + }, + "name": "unnamedWire#0", + "path": [ + { + "x": 140.0, + "y": 415.0 + }, + { + "x": 255.0, + "y": 415.0 + }, + { + "x": 255.0, + "y": 280.0 + }, + { + "x": 340.0, + "y": 280.0 + }, + { + "x": 340.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#11", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#14", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "mu" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_1" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#54", + "path": [ + { + "x": 90.0, + "y": 75.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EZ" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE1" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 55.0, + "y": 15.0 + }, + { + "x": 370.0, + "y": 15.0 + }, + { + "x": 370.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "I0_2" + }, + "name": "unnamedWire#53", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 35.0, + "y": 35.0 + }, + { + "x": 35.0, + "y": 125.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A2" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#56", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EC" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 155.0, + "y": 20.0 + }, + { + "x": 365.0, + "y": 20.0 + }, + { + "x": 365.0, + "y": 90.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EN" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE3" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 255.0, + "y": 25.0 + }, + { + "x": 360.0, + "y": 25.0 + }, + { + "x": 360.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "I" + }, + "name": "unnamedWire#11", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A4" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#55", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 25.0, + "y": 55.0 + }, + { + "x": 25.0, + "y": 145.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#58", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 30.0, + "y": 135.0 + }, + { + "x": 30.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I0_1" + }, + "name": "unnamedWire#57", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O0" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 20.0, + "y": 155.0 + }, + { + "x": 20.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#12", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_1" + }, + "name": "unnamedWire#59", + "path": [ + { + "x": 20.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O1" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#61", + "path": [ + { + "x": 75.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y" + }, + "name": "unnamedWire#60", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_1" + }, + "name": "unnamedWire#63", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I0_4" + }, + "name": "unnamedWire#62", + "path": [ + { + "x": 80.0, + "y": 325.0 + }, + { + "x": 80.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_3" + }, + "name": "unnamedWire#65", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "MUX" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "I" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 40.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y2" + }, + "name": "unnamedWire#64", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "name": "unnamedWire#67", + "path": [ + { + "x": 195.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#3", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "B" + }, + "name": "unnamedWire#23", + "path": [ + { + "x": 25.0, + "y": 305.0 + }, + { + "x": 25.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUISplitter#3", + "pinName": "I" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y4" + }, + "name": "unnamedWire#66", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "S0" + }, + "name": "unnamedWire#69", + "path": [ + { + "x": 105.0, + "y": 235.0 + }, + { + "x": 105.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 60.0, + "y": 425.0 + }, + { + "x": 60.0, + "y": 415.0 + }, + { + "x": 30.0, + "y": 415.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#13", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "S0" + }, + "name": "unnamedWire#68", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I2" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q3" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q4" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I3" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y4" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "D4" + }, + "name": "unnamedWire#70", + "path": [ + { + "x": 295.0, + "y": 215.0 + }, + { + "x": 295.0, + "y": 255.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#8", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE2" + }, + "name": "unnamedWire#72", + "path": [ + { + "x": 420.0, + "y": 90.0 + }, + { + "x": 420.0, + "y": 110.0 + }, + { + "x": 365.0, + "y": 110.0 + }, + { + "x": 365.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y3" + }, + "name": "unnamedWire#71", + "path": [ + { + "x": 300.0, + "y": 245.0 + }, + { + "x": 300.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_1" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y4" + }, + "name": "unnamedWire#74", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "Y1" + }, + "name": "unnamedWire#73", + "path": [ + { + "x": 310.0, + "y": 225.0 + }, + { + "x": 310.0, + "y": 185.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_3" + }, + "name": "unnamedWire#32", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y2" + }, + "name": "unnamedWire#76", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y2" + }, + "name": "unnamedWire#31", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_3" + }, + "name": "unnamedWire#75", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "A1" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 415.0, + "y": 380.0 + }, + { + "x": 80.0, + "y": 380.0 + }, + { + "x": 80.0, + "y": 335.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I0_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#4", + "pinName": "Y4" + }, + "name": "unnamedWire#78", + "path": [ + { + "x": 200.0, + "y": 225.0 + }, + { + "x": 200.0, + "y": 95.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "I1_4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#3", + "pinName": "Y4" + }, + "name": "unnamedWire#33", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#5", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#6", + "pinName": "I1_1" + }, + "name": "unnamedWire#77", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "MSR", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2904/GUIAm2904TestLogic.json b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904TestLogic.json new file mode 100644 index 00000000..26928e50 --- /dev/null +++ b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904TestLogic.json @@ -0,0 +1,765 @@ +mograsim version: 0.1.3 +{ + "width": 60.0, + "height": 90.0, + "interfacePins": [ + { + "location": { + "x": 60.0, + "y": 60.0 + }, + "name": "Y101", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 20.0 + }, + "name": "Y001", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 50.0 + }, + "name": "Y100", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 80.0 + }, + "name": "Y111", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I", + "logicWidth": 4 + }, + { + "location": { + "x": 60.0, + "y": 40.0 + }, + "name": "Y011", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 10.0 + }, + "name": "Y000", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 70.0 + }, + "name": "Y110", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 30.0 + }, + "name": "Y010", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.4, + "subComps": [ + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 45.0, + "y": 50.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 85.0, + "y": 20.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#3", + "pos": { + "x": 45.0, + "y": 105.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 120.0, + "y": 15.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 34.0, + "y": 99.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 29.0, + "y": 129.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 5.0, + "y": 110.0 + }, + "params": 4 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 79.0, + "y": 24.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 79.0, + "y": 34.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 24.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 19.0, + "y": 74.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 74.0, + "y": 59.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 39.0, + "y": 64.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 24.0, + "y": 149.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 74.0, + "y": 119.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#5", + "pos": { + "x": 80.0, + "y": 165.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#10", + "pos": { + "x": 39.0, + "y": 109.0 + }, + "params": 1 + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 40.0, + "y": 20.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#4", + "pos": { + "x": 80.0, + "y": 115.0 + }, + "params": 1 + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 115.0, + "y": 60.0 + }, + { + "x": 115.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#13", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y000" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y001" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 80.0, + "y": 50.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [ + { + "x": 25.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 20.0, + "y": 110.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y011" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#4", + "pinName": "Y" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y100" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y010" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#4", + "pinName": "B" + }, + "name": "unnamedWire#24", + "path": [ + { + "x": 70.0, + "y": 115.0 + }, + { + "x": 70.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#3", + "pinName": "A" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#4", + "pinName": "A" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y110" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "Y" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y101" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#28", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#5", + "pinName": "A" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 75.0, + "y": 170.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 110.0, + "y": 20.0 + }, + { + "x": 110.0, + "y": 30.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#5", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 25.0, + "y": 180.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "B" + }, + "name": "unnamedWire#4", + "path": [ + { + "x": 35.0, + "y": 35.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#3", + "pinName": "B" + }, + "pin2": { + "compName": "WireCrossPoint#10", + "pinName": "" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 40.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "A" + }, + "name": "unnamedWire#3", + "path": [ + { + "x": 30.0, + "y": 25.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 40.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "name": "unnamedWire#2", + "path": [ + { + "x": 35.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 20.0, + "y": 65.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "Y111" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 30.0, + "y": 200.0 + } + ] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "Test\nlogic", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2904/GUIAm2904muSR.json b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904muSR.json new file mode 100644 index 00000000..fa3ed355 --- /dev/null +++ b/net.mograsim.logic.model.editor/components/am2904/GUIAm2904muSR.json @@ -0,0 +1,1081 @@ +mograsim version: 0.1.3 +{ + "width": 45.0, + "height": 46.0, + "interfacePins": [ + { + "location": { + "x": 4.0, + "y": 46.0 + }, + "name": "MUX", + "logicWidth": 2 + }, + { + "location": { + "x": 45.0, + "y": 19.0 + }, + "name": "Q", + "logicWidth": 4 + }, + { + "location": { + "x": 27.5, + "y": 46.0 + }, + "name": "CINV", + "logicWidth": 1 + }, + { + "location": { + "x": 14.0, + "y": 46.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 5.5, + "y": 0.0 + }, + "name": "_EZ", + "logicWidth": 1 + }, + { + "location": { + "x": 37.5, + "y": 46.0 + }, + "name": "OVRRET", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 31.0 + }, + "name": "I", + "logicWidth": 4 + }, + { + "location": { + "x": 25.5, + "y": 0.0 + }, + "name": "_EN", + "logicWidth": 1 + }, + { + "location": { + "x": 15.5, + "y": 0.0 + }, + "name": "_EC", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 13.5 + }, + "name": "M", + "logicWidth": 4 + }, + { + "location": { + "x": 35.5, + "y": 0.0 + }, + "name": "_EOVR", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.1, + "subComps": [ + { + "id": "GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 215.0, + "y": 255.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 245.0, + "y": 245.0 + }, + "params": 1 + }, + { + "id": "GUINandGate", + "name": "GUINandGate#2", + "pos": { + "x": 215.0, + "y": 235.0 + }, + "params": 1 + }, + { + "id": "GUIMerger", + "name": "GUIMerger#0", + "pos": { + "x": 435.0, + "y": 175.0 + }, + "params": 4 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#2", + "pos": { + "x": 45.0, + "y": 430.0 + }, + "params": 2 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#1", + "pos": { + "x": 5.0, + "y": 295.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 89.0, + "y": 224.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 89.0, + "y": 234.0 + }, + "params": 1 + }, + { + "id": "GUISplitter", + "name": "GUISplitter#0", + "pos": { + "x": 5.0, + "y": 120.0 + }, + "params": 4 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 429.0, + "y": 204.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 89.0, + "y": 214.0 + }, + "params": 1 + }, + { + "id": "WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 209.0, + "y": 244.0 + }, + "params": 1 + }, + { + "id": "GUIdff4_finewe", + "name": "GUIdff4_finewe#0", + "pos": { + "x": 375.0, + "y": 170.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#1", + "pos": { + "x": 100.0, + "y": 190.0 + } + }, + { + "id": "GUImux1_4", + "name": "DeserializedSubmodelComponent#0", + "pos": { + "x": 45.0, + "y": 240.0 + } + }, + { + "id": "GUIxor", + "name": "DeserializedSubmodelComponent#2", + "pos": { + "x": 215.0, + "y": 200.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "CINV" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "B" + }, + "name": "unnamedWire#36", + "path": [ + { + "x": 275.0, + "y": 390.0 + }, + { + "x": 190.0, + "y": 390.0 + }, + { + "x": 190.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "A" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "C" + }, + "name": "unnamedWire#38", + "path": [ + { + "x": 140.0, + "y": 325.0 + }, + { + "x": 345.0, + "y": 325.0 + }, + { + "x": 345.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE1" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EZ" + }, + "name": "unnamedWire#37", + "path": [ + { + "x": 370.0, + "y": 185.0 + }, + { + "x": 370.0, + "y": 5.0 + }, + { + "x": 55.0, + "y": 5.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EOVR" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE4" + }, + "name": "unnamedWire#39", + "path": [ + { + "x": 355.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_EC" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE2" + }, + "name": "unnamedWire#41", + "path": [ + { + "x": 155.0, + "y": 10.0 + }, + { + "x": 365.0, + "y": 10.0 + }, + { + "x": 365.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "_WE3" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_EN" + }, + "name": "unnamedWire#40", + "path": [ + { + "x": 360.0, + "y": 205.0 + }, + { + "x": 360.0, + "y": 15.0 + }, + { + "x": 255.0, + "y": 15.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#2", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "D2" + }, + "name": "unnamedWire#43", + "path": [ + { + "x": 310.0, + "y": 205.0 + }, + { + "x": 310.0, + "y": 235.0 + } + ] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "D1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y1" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 315.0, + "y": 225.0 + }, + { + "x": 315.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y4" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 160.0, + "y": 245.0 + }, + { + "x": 160.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "D3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "Y3" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 305.0, + "y": 245.0 + }, + { + "x": 305.0, + "y": 225.0 + }, + { + "x": 170.0, + "y": 225.0 + }, + { + "x": 170.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "A" + }, + "name": "unnamedWire#47", + "path": [ + { + "x": 210.0, + "y": 240.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "D4" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#2", + "pinName": "B" + }, + "name": "unnamedWire#48", + "path": [ + { + "x": 210.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_2" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_3" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O2" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#1", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_4" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "I" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "I1" + }, + "pin2": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q2" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q1" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I0" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "M" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "I" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I1_1" + }, + "pin2": { + "compName": "GUISplitter#1", + "pinName": "O0" + }, + "name": "unnamedWire#10", + "path": [] + }, + { + "pin1": { + "compName": "GUIMerger#0", + "pinName": "O" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Q" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_3" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O2" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 25.0, + "y": 275.0 + }, + { + "x": 25.0, + "y": 140.0 + } + ] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q4" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff4_finewe#0", + "pinName": "Q3" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I2" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_4" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 20.0, + "y": 150.0 + }, + { + "x": 20.0, + "y": 285.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_1" + }, + "pin2": { + "compName": "GUISplitter#0", + "pinName": "O0" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 35.0, + "y": 255.0 + }, + { + "x": 35.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#0", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "I0_2" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 30.0, + "y": 130.0 + }, + { + "x": 30.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O0" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [ + { + "x": 90.0, + "y": 430.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "MUX" + }, + "pin2": { + "compName": "GUISplitter#2", + "pinName": "I" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 40.0, + "y": 435.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_3" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y3" + }, + "name": "unnamedWire#18", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y4" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_4" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y2" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_2" + }, + "name": "unnamedWire#19", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_1" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#21", + "path": [ + { + "x": 90.0, + "y": 205.0 + } + ] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "Y1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I1_1" + }, + "name": "unnamedWire#20", + "path": [] + }, + { + "pin1": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_3" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_2" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#25", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#0", + "pinName": "S0" + }, + "name": "unnamedWire#27", + "path": [ + { + "x": 40.0, + "y": 235.0 + }, + { + "x": 40.0, + "y": 245.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "I0_4" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUIMerger#0", + "pinName": "I3" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "GUISplitter#2", + "pinName": "O1" + }, + "pin2": { + "compName": "DeserializedSubmodelComponent#1", + "pinName": "S0" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 85.0, + "y": 440.0 + }, + { + "x": 85.0, + "y": 195.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#2", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#30", + "path": [ + { + "x": 240.0, + "y": 245.0 + }, + { + "x": 240.0, + "y": 250.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "OVRRET" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 375.0, + "y": 360.0 + }, + { + "x": 205.0, + "y": 360.0 + }, + { + "x": 205.0, + "y": 260.0 + } + ] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 240.0, + "y": 260.0 + }, + { + "x": 240.0, + "y": 265.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#34", + "path": [ + { + "x": 430.0, + "y": 280.0 + }, + { + "x": 210.0, + "y": 280.0 + }, + { + "x": 210.0, + "y": 270.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#33", + "path": [] + } + ] + }, + "symbolRendererSnippetID": "simpleRectangularLike", + "symbolRendererParams": { + "centerText": "muSR", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "default", + "highLevelStateHandlerSnippetID": "standard", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2910/GUIAm2910.json b/net.mograsim.logic.model.editor/components/am2910/GUIAm2910.json new file mode 100644 index 00000000..647afc30 --- /dev/null +++ b/net.mograsim.logic.model.editor/components/am2910/GUIAm2910.json @@ -0,0 +1,1138 @@ +mograsim version: 0.1.3 +{ + "width": 72.0, + "height": 67.0, + "interfacePins": [ + { + "location": { + "x": 60.0, + "y": 0.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 36.0, + "y": 0.0 + }, + "name": "D", + "logicWidth": 12 + }, + { + "location": { + "x": 72.0, + "y": 40.0 + }, + "name": "CI", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 6.0 + }, + "name": "_RLD", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I", + "logicWidth": 4 + }, + { + "location": { + "x": 19.0, + "y": 67.0 + }, + "name": "_MAP", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 44.0 + }, + "name": "_CCEN", + "logicWidth": 1 + }, + { + "location": { + "x": 49.0, + "y": 67.0 + }, + "name": "_OE", + "logicWidth": 1 + }, + { + "location": { + "x": 72.0, + "y": 14.0 + }, + "name": "_FULL", + "logicWidth": 1 + }, + { + "location": { + "x": 38.0, + "y": 67.0 + }, + "name": "Y", + "logicWidth": 12 + }, + { + "location": { + "x": 13.0, + "y": 67.0 + }, + "name": "_PL", + "logicWidth": 1 + }, + { + "location": { + "x": 25.0, + "y": 67.0 + }, + "name": "_VECT", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 38.0 + }, + "name": "_CC", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.2, + "subComps": [ + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 10.0, + "y": 210.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIram5_12", + "name": "GUIram5_12#0", + "pos": { + "x": 305.0, + "y": 100.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 40.0, + "y": 185.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIdff12", + "name": "GUIdff12#0", + "pos": { + "x": 305.0, + "y": 160.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIinc12", + "name": "GUIinc12#0", + "pos": { + "x": 305.0, + "y": 190.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#3", + "pos": { + "x": 265.0, + "y": 150.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 294.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 324.0, + "y": 149.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 179.0, + "y": 89.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 189.0, + "y": 274.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 4.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 179.0, + "y": 14.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 299.0, + "y": 44.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer", + "name": "GUITriStateBuffer#0", + "pos": { + "x": 180.0, + "y": 290.0 + }, + "params": { + "logicWidth": 12, + "orientation": "DOWN_ALT" + } + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 299.0, + "y": 79.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 299.0, + "y": 114.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 299.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUInor12", + "name": "GUInor12#0", + "pos": { + "x": 190.0, + "y": 80.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#0", + "pos": { + "x": 160.0, + "y": 95.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA", + "name": "GUIAm2910InstrPLA#0", + "pos": { + "x": 80.0, + "y": 155.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910SP", + "name": "GUIAm2910SP#0", + "pos": { + "x": 305.0, + "y": 55.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#1", + "pos": { + "x": 260.0, + "y": 115.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#2", + "pos": { + "x": 345.0, + "y": 180.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIsel4_12", + "name": "GUIsel4_12#0", + "pos": { + "x": 150.0, + "y": 175.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910RegCntr", + "name": "GUIAm2910RegCntr#0", + "pos": { + "x": 160.0, + "y": 25.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff12#0", + "pinName": "C" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910SP#0", + "pinName": "C" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "C" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "GUIinc12#0", + "pinName": "CI" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CI" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "_MAP" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_MAP" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "_PL" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_PL" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 85.0, + "y": 290.0 + }, + { + "x": 65.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "I" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 70.0, + "y": 250.0 + }, + { + "x": 70.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "_VECT" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_VECT" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 105.0, + "y": 290.0 + }, + { + "x": 125.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "GUIram5_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#1", + "pinName": "" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#0", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#3", + "pinName": "" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "GUIinc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#2", + "pinName": "" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910SP#0", + "pinName": "B" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910SP#0", + "pinName": "A" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "D" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YR" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SB" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "C" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YD" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SA" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "GUITriStateBuffer#0", + "pinName": "OUT" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#52", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "GUInor12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "R\u003d0" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 230.0, + "y": 90.0 + }, + { + "x": 230.0, + "y": 120.0 + }, + { + "x": 95.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "GUIinc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIdff12#0", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "GUITriStateBuffer#0", + "pinName": "EN" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_OE" + }, + "name": "unnamedWire#53", + "path": [ + { + "x": 245.0, + "y": 300.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YmuPC" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SD" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "RDEC" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "DEC" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 120.0, + "y": 170.0 + }, + { + "x": 120.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YF" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SC" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "RWE" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "WE" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 115.0, + "y": 160.0 + }, + { + "x": 115.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "STKI1" + }, + "pin2": { + "compName": "GUIAm2910SP#0", + "pinName": "STKI1" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 290.0, + "y": 230.0 + }, + { + "x": 290.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "STKI0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 295.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "GUIram5_12#0", + "pinName": "WE" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910SP#0", + "pinName": "STKI0" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 295.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "GUIinc12#0", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 325.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "GUIsel4_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "GUIram5_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "C" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 200.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "B" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "D" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 220.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUInor12#0", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "A" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 145.0, + "y": 15.0 + }, + { + "x": 145.0, + "y": 150.0 + }, + { + "x": 160.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "D" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "GUITriStateBuffer#0", + "pinName": "IN" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_RLD" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "_RLD" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CC" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "PASS" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 65.0, + "y": 195.0 + }, + { + "x": 65.0, + "y": 160.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CCEN" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 5.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 5.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910SP#0", + "pinName": "_FULL" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_FULL" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 35.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 200.0 + } + ] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "Am2910", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json b/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json new file mode 100644 index 00000000..ae71c6d0 --- /dev/null +++ b/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json @@ -0,0 +1,1089 @@ +mograsim version: 0.1.3 +{ + "width": 72.0, + "height": 61.0, + "interfacePins": [ + { + "location": { + "x": 19.0, + "y": 61.0 + }, + "name": "_MAP", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 44.0 + }, + "name": "_CCEN", + "logicWidth": 1 + }, + { + "location": { + "x": 60.0, + "y": 0.0 + }, + "name": "C", + "logicWidth": 1 + }, + { + "location": { + "x": 36.0, + "y": 0.0 + }, + "name": "D", + "logicWidth": 12 + }, + { + "location": { + "x": 72.0, + "y": 14.0 + }, + "name": "_FULL", + "logicWidth": 1 + }, + { + "location": { + "x": 72.0, + "y": 40.0 + }, + "name": "CI", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 6.0 + }, + "name": "_RLD", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 50.0 + }, + "name": "I", + "logicWidth": 4 + }, + { + "location": { + "x": 38.0, + "y": 61.0 + }, + "name": "Y", + "logicWidth": 12 + }, + { + "location": { + "x": 13.0, + "y": 61.0 + }, + "name": "_PL", + "logicWidth": 1 + }, + { + "location": { + "x": 25.0, + "y": 61.0 + }, + "name": "_VECT", + "logicWidth": 1 + }, + { + "location": { + "x": 0.0, + "y": 38.0 + }, + "name": "_CC", + "logicWidth": 1 + } + ], + "submodel": { + "innerScale": 0.2, + "subComps": [ + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#1", + "pos": { + "x": 10.0, + "y": 210.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIram5_12", + "name": "GUIram5_12#0", + "pos": { + "x": 305.0, + "y": 100.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate", + "name": "GUINandGate#0", + "pos": { + "x": 40.0, + "y": 185.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIdff12", + "name": "GUIdff12#0", + "pos": { + "x": 305.0, + "y": 160.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIinc12", + "name": "GUIinc12#0", + "pos": { + "x": 305.0, + "y": 190.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#3", + "pos": { + "x": 265.0, + "y": 150.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#1", + "pos": { + "x": 294.0, + "y": 104.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#0", + "pos": { + "x": 324.0, + "y": 149.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#3", + "pos": { + "x": 179.0, + "y": 89.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#2", + "pos": { + "x": 189.0, + "y": 274.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#5", + "pos": { + "x": 4.0, + "y": 219.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#4", + "pos": { + "x": 179.0, + "y": 14.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#7", + "pos": { + "x": 299.0, + "y": 44.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#6", + "pos": { + "x": 299.0, + "y": 79.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#9", + "pos": { + "x": 299.0, + "y": 114.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint", + "name": "WireCrossPoint#8", + "pos": { + "x": 299.0, + "y": 169.0 + }, + "params": 1 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUIsel4_12", + "name": "GUIsel4_12#0", + "pos": { + "x": 150.0, + "y": 175.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.GUInor12", + "name": "GUInor12#0", + "pos": { + "x": 190.0, + "y": 80.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#0", + "pos": { + "x": 160.0, + "y": 95.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA", + "name": "GUIAm2910InstrPLA#0", + "pos": { + "x": 80.0, + "y": 155.0 + } + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910SP", + "name": "GUIAm2910SP#0", + "pos": { + "x": 305.0, + "y": 55.0 + } + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#1", + "pos": { + "x": 260.0, + "y": 115.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay", + "name": "GUIBitDisplay#2", + "pos": { + "x": 345.0, + "y": 180.0 + }, + "params": 12 + }, + { + "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910RegCntr", + "name": "GUIAm2910RegCntr#0", + "pos": { + "x": 160.0, + "y": 25.0 + } + } + ], + "innerWires": [ + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "name": "unnamedWire#36", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "pin2": { + "compName": "GUIdff12#0", + "pinName": "C" + }, + "name": "unnamedWire#35", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "name": "unnamedWire#38", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#6", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910SP#0", + "pinName": "C" + }, + "name": "unnamedWire#37", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "C" + }, + "name": "unnamedWire#39", + "path": [] + }, + { + "pin1": { + "compName": "GUIinc12#0", + "pinName": "CI" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "CI" + }, + "name": "unnamedWire#41", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "C" + }, + "pin2": { + "compName": "WireCrossPoint#7", + "pinName": "" + }, + "name": "unnamedWire#40", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "_MAP" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_MAP" + }, + "name": "unnamedWire#43", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "_PL" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_PL" + }, + "name": "unnamedWire#42", + "path": [ + { + "x": 85.0, + "y": 290.0 + }, + { + "x": 65.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "I" + }, + "pin2": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "I" + }, + "name": "unnamedWire#45", + "path": [ + { + "x": 70.0, + "y": 250.0 + }, + { + "x": 70.0, + "y": 175.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "_VECT" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_VECT" + }, + "name": "unnamedWire#44", + "path": [ + { + "x": 105.0, + "y": 290.0 + }, + { + "x": 125.0, + "y": 290.0 + } + ] + }, + { + "pin1": { + "compName": "GUIram5_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#1", + "pinName": "" + }, + "name": "unnamedWire#47", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#0", + "pinName": "" + }, + "name": "unnamedWire#46", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#3", + "pinName": "" + }, + "name": "unnamedWire#49", + "path": [] + }, + { + "pin1": { + "compName": "GUIinc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIBitDisplay#2", + "pinName": "" + }, + "name": "unnamedWire#48", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "name": "unnamedWire#9", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910SP#0", + "pinName": "B" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "B" + }, + "name": "unnamedWire#8", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910SP#0", + "pinName": "A" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "A" + }, + "name": "unnamedWire#7", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "D" + }, + "name": "unnamedWire#6", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YR" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SB" + }, + "name": "unnamedWire#1", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "GUIram5_12#0", + "pinName": "C" + }, + "name": "unnamedWire#50", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YD" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SA" + }, + "name": "unnamedWire#0", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#9", + "pinName": "" + }, + "pin2": { + "compName": "WireCrossPoint#8", + "pinName": "" + }, + "name": "unnamedWire#51", + "path": [] + }, + { + "pin1": { + "compName": "GUIdff12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "name": "unnamedWire#5", + "path": [] + }, + { + "pin1": { + "compName": "GUInor12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "R\u003d0" + }, + "name": "unnamedWire#10", + "path": [ + { + "x": 230.0, + "y": 90.0 + }, + { + "x": 230.0, + "y": 120.0 + }, + { + "x": 95.0, + "y": 120.0 + } + ] + }, + { + "pin1": { + "compName": "GUIinc12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIdff12#0", + "pinName": "D" + }, + "name": "unnamedWire#4", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YmuPC" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SD" + }, + "name": "unnamedWire#3", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "RDEC" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "DEC" + }, + "name": "unnamedWire#12", + "path": [ + { + "x": 120.0, + "y": 170.0 + }, + { + "x": 120.0, + "y": 55.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "YF" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "SC" + }, + "name": "unnamedWire#2", + "path": [] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "RWE" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "WE" + }, + "name": "unnamedWire#11", + "path": [ + { + "x": 115.0, + "y": 160.0 + }, + { + "x": 115.0, + "y": 45.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "STKI1" + }, + "pin2": { + "compName": "GUIAm2910SP#0", + "pinName": "STKI1" + }, + "name": "unnamedWire#14", + "path": [ + { + "x": 290.0, + "y": 230.0 + }, + { + "x": 290.0, + "y": 70.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "STKI0" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#13", + "path": [ + { + "x": 295.0, + "y": 220.0 + } + ] + }, + { + "pin1": { + "compName": "GUIram5_12#0", + "pinName": "WE" + }, + "pin2": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "name": "unnamedWire#16", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#1", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910SP#0", + "pinName": "STKI0" + }, + "name": "unnamedWire#15", + "path": [ + { + "x": 295.0, + "y": 60.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "GUIinc12#0", + "pinName": "A" + }, + "name": "unnamedWire#18", + "path": [ + { + "x": 325.0, + "y": 275.0 + } + ] + }, + { + "pin1": { + "compName": "GUIsel4_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "name": "unnamedWire#17", + "path": [] + }, + { + "pin1": { + "compName": "GUIram5_12#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "C" + }, + "name": "unnamedWire#19", + "path": [ + { + "x": 200.0, + "y": 130.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "B" + }, + "name": "unnamedWire#21", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#0", + "pinName": "" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "D" + }, + "name": "unnamedWire#20", + "path": [ + { + "x": 220.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "D" + }, + "pin2": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "name": "unnamedWire#23", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#3", + "pinName": "" + }, + "pin2": { + "compName": "GUInor12#0", + "pinName": "D" + }, + "name": "unnamedWire#22", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIsel4_12#0", + "pinName": "A" + }, + "name": "unnamedWire#25", + "path": [ + { + "x": 145.0, + "y": 15.0 + }, + { + "x": 145.0, + "y": 150.0 + }, + { + "x": 160.0, + "y": 150.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#4", + "pinName": "" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "D" + }, + "name": "unnamedWire#24", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#2", + "pinName": "" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "Y" + }, + "name": "unnamedWire#27", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_RLD" + }, + "pin2": { + "compName": "GUIAm2910RegCntr#0", + "pinName": "_RLD" + }, + "name": "unnamedWire#26", + "path": [] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CC" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "A" + }, + "name": "unnamedWire#29", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#0", + "pinName": "Y" + }, + "pin2": { + "compName": "GUIAm2910InstrPLA#0", + "pinName": "PASS" + }, + "name": "unnamedWire#28", + "path": [ + { + "x": 65.0, + "y": 195.0 + }, + { + "x": 65.0, + "y": 160.0 + } + ] + }, + { + "pin1": { + "compName": "_submodelinterface", + "pinName": "_CCEN" + }, + "pin2": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "name": "unnamedWire#30", + "path": [] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "B" + }, + "name": "unnamedWire#32", + "path": [ + { + "x": 5.0, + "y": 225.0 + } + ] + }, + { + "pin1": { + "compName": "WireCrossPoint#5", + "pinName": "" + }, + "pin2": { + "compName": "GUINandGate#1", + "pinName": "A" + }, + "name": "unnamedWire#31", + "path": [ + { + "x": 5.0, + "y": 215.0 + } + ] + }, + { + "pin1": { + "compName": "GUIAm2910SP#0", + "pinName": "_FULL" + }, + "pin2": { + "compName": "_submodelinterface", + "pinName": "_FULL" + }, + "name": "unnamedWire#34", + "path": [] + }, + { + "pin1": { + "compName": "GUINandGate#1", + "pinName": "Y" + }, + "pin2": { + "compName": "GUINandGate#0", + "pinName": "B" + }, + "name": "unnamedWire#33", + "path": [ + { + "x": 35.0, + "y": 220.0 + }, + { + "x": 35.0, + "y": 200.0 + } + ] + } + ] + }, + "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer", + "symbolRendererParams": { + "centerText": "Am2910", + "centerTextHeight": 5.0, + "horizontalComponentCenter": 17.5, + "pinLabelHeight": 3.5, + "pinLabelMargin": 0.5 + }, + "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer", + "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler", + "highLevelStateHandlerParams": { + "subcomponentHighLevelStates": {}, + "atomicHighLevelStates": {} + } +} \ No newline at end of file diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java index 51e74ddf..9cdbabbb 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java @@ -106,8 +106,8 @@ public abstract class SubmodelComponent extends GUIComponent this.submodelInterface = new SubmodelInterface(submodelModifiable, SUBMODEL_INTERFACE_NAME); this.submodelScale = 1; - this.maxVisibleRegionFillRatioForAlpha0 = 0.4; - this.minVisibleRegionFillRatioForAlpha1 = 0.8; + this.maxVisibleRegionFillRatioForAlpha0 = 0.8; + this.minVisibleRegionFillRatioForAlpha1 = 0.9; this.renderer = new LogicUIRenderer(submodelModifiable); submodelModifiable.setRedrawHandler(model.getRedrawHandler()); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java index 17dc22f4..6e722a0c 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java @@ -95,7 +95,7 @@ public class ViewLogicModelAdapter if (externalWireCandidate != null) if (externalWire == null) externalWire = externalWireCandidate; - else if (externalWire.length == externalWireCandidate.length) + else if (externalWire.width == externalWireCandidate.width) Wire.fuse(externalWire, externalWireCandidate); else throw new IllegalArgumentException( diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json index 14bb97ba..e510661a 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json @@ -7,8 +7,12 @@ mograsim version: 0.1.3 "GUIAm2901ALUInclDecode": "file:components/am2901/GUIAm2901ALUInclDecode.json", "GUIAm2901ALUInclSourceDecodeInclFunctionDecode": "file:components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json", "GUIAm2901ALUOneBit": "file:components/am2901/GUIAm2901ALUOneBit.json", + "GUIAm2904": "file:components/am2904/GUIAm2904.json", + "GUIAm2904MSR": "file:components/am2904/GUIAm2904MSR.json", + "GUIAm2904muSR": "file:components/am2904/GUIAm2904muSR.json", "GUIAm2904RegCTInstrDecode": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode", "GUIAm2904ShiftInstrDecode": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode", + "GUIAm2904TestLogic": "file:components/am2904/GUIAm2904TestLogic.json", "GUIAm2901DestDecode": "file:components/am2901/GUIAm2901DestDecode.json", "GUIAm2901SourceDecode": "file:components/am2901/GUIAm2901SourceDecode.json", "GUIAm2910InstrPLA": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA", @@ -35,6 +39,9 @@ mograsim version: 0.1.3 "GUIinc12": "class:net.mograsim.logic.model.am2900.components.GUIinc12", "GUImux1": "file:components/GUImux1.json", "GUImux1_4": "file:components/GUImux1_4.json", + "GUImux2": "file:components/GUImux2.json", + "GUImux2_4": "file:components/GUImux2_4.json", + "GUImux3": "file:components/GUImux3.json", "GUInand3": "file:components/GUInand3.json", "GUInor12": "class:net.mograsim.logic.model.am2900.components.GUInor12", "GUInot4": "file:components/GUInot4.json", @@ -43,6 +50,7 @@ mograsim version: 0.1.3 "GUIram2": "file:components/GUIram2.json", "GUIram4": "file:components/GUIram4.json", "GUIram5_12": "class:net.mograsim.logic.model.am2900.components.GUIram5_12", + "GUIsel1": "file:components/GUIsel1.json", "GUIsel2_4": "file:components/GUIsel2_4.json", "GUIsel3_4": "file:components/GUIsel3_4.json", "GUIsel4_12": "class:net.mograsim.logic.model.am2900.components.GUImux4_12", diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java index 0e2328aa..f26c8723 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java @@ -15,8 +15,8 @@ public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh { private SubmodelComponent component; private final List vectorPartTargets; - private final List vectorPartLengthes; - private int length; + private final List vectorPartWidths; + private int width; public BitVectorSplittingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context) { @@ -28,38 +28,38 @@ public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh { this.component = context.component; this.vectorPartTargets = new ArrayList<>(); - this.vectorPartLengthes = new ArrayList<>(); + this.vectorPartWidths = new ArrayList<>(); if (params != null) - setVectorParts(params.vectorPartTargets, params.vectorPartLengthes); + setVectorParts(params.vectorPartTargets, params.vectorPartWidths); } - public void set(List targets, List lengthes) + public void set(List targets, List widths) { - setVectorParts(targets, lengthes); + setVectorParts(targets, widths); } - public void addVectorPart(String target, int length) + public void addVectorPart(String target, int width) { vectorPartTargets.add(target); - vectorPartLengthes.add(length); - this.length += length; + vectorPartWidths.add(width); + this.width += width; } public void clearVectorParts() { vectorPartTargets.clear(); - vectorPartLengthes.clear(); - length = 0; + vectorPartWidths.clear(); + width = 0; } - private void setVectorParts(List targets, List lengthes) + private void setVectorParts(List targets, List widths) { clearVectorParts(); - if (targets.size() != lengthes.size()) - throw new IllegalArgumentException("Targets list and lenghtes list have different sizes"); + if (targets.size() != widths.size()) + throw new IllegalArgumentException("Targets list and widths list have different sizes"); vectorPartTargets.addAll(targets); - vectorPartLengthes.addAll(lengthes); - length += lengthes.stream().mapToInt(Integer::intValue).sum(); + vectorPartWidths.addAll(widths); + width += widths.stream().mapToInt(Integer::intValue).sum(); } @Override @@ -74,9 +74,9 @@ public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh vectorPart = BitVector.of((Bit) subStateUncasted); else vectorPart = (BitVector) subStateUncasted; - if (vectorPart.length() != vectorPartLengthes.get(partIndex)) + if (vectorPart.width() != vectorPartWidths.get(partIndex)) throw new IllegalArgumentException( - "Incorrect vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex)); + "Incorrect vector part width: " + vectorPart.width() + "; expected " + vectorPartWidths.get(partIndex)); result = vectorPart.concat(result); } return result; @@ -86,14 +86,14 @@ public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh public void setHighLevelState(Object newState) { BitVector newStateCasted = (BitVector) newState; - if (newStateCasted.length() != length) - throw new IllegalArgumentException("Incorrect vector length: " + newStateCasted.length() + "; expected " + length); + if (newStateCasted.width() != width) + throw new IllegalArgumentException("Incorrect vector width: " + newStateCasted.width() + "; expected " + width); for (int partIndex = vectorPartTargets.size() - 1, bitIndex = 0; partIndex >= 0; partIndex--) { - int vectorPartLength = vectorPartLengthes.get(partIndex); - BitVector vectorPart = newStateCasted.subVector(bitIndex, bitIndex + vectorPartLength); + int vectorPartWidth = vectorPartWidths.get(partIndex); + BitVector vectorPart = newStateCasted.subVector(bitIndex, bitIndex + vectorPartWidth); component.setHighLevelState(vectorPartTargets.get(partIndex), vectorPart); - bitIndex += vectorPartLength; + bitIndex += vectorPartWidth; } } @@ -102,14 +102,14 @@ public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh { BitVectorSplittingAtomicHighLevelStateHandlerParams params = new BitVectorSplittingAtomicHighLevelStateHandlerParams(); params.vectorPartTargets = new ArrayList<>(vectorPartTargets); - params.vectorPartLengthes = new ArrayList<>(vectorPartLengthes); + params.vectorPartWidths = new ArrayList<>(vectorPartWidths); return params; } public static class BitVectorSplittingAtomicHighLevelStateHandlerParams { public List vectorPartTargets; - public List vectorPartLengthes; + public List vectorPartWidths; } static diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/standardSnippetIDMapping.json b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/standardSnippetIDMapping.json index a14c49a3..9f7856fe 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/standardSnippetIDMapping.json +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/standardSnippetIDMapping.json @@ -10,6 +10,7 @@ mograsim version: 0.1.3 "pinNames": "net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer" }, "standardHighLevelStateHandlerSuppliers": { + "default": "net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler", "standard": "net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler" } } \ No newline at end of file diff --git a/net.mograsim.machine/src/net/mograsim/machine/isa/AsmFloatOperand.java b/net.mograsim.machine/src/net/mograsim/machine/isa/AsmFloatOperand.java index 7a1a6ebf..a15d9d5a 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/isa/AsmFloatOperand.java +++ b/net.mograsim.machine/src/net/mograsim/machine/isa/AsmFloatOperand.java @@ -90,7 +90,7 @@ public class AsmFloatOperand implements AsmOperand int bitLength = raw.bitLength() - (bi.signum() - 1) / 2; if (bitLength > size) throw new AsmNumberFormatException("Error parsing %s: bit count %d exceeds size %d", bi, bitLength, size); - BitVectorMutator bvm = BitVectorMutator.ofLength(size); + BitVectorMutator bvm = BitVectorMutator.ofWidth(size); for (int i = 0; i < size; i++) bvm.setLSBit(i, Bit.of(raw.testBit(i))); return bvm.toBitVector(); diff --git a/net.mograsim.machine/src/net/mograsim/machine/isa/AsmIntegerOperand.java b/net.mograsim.machine/src/net/mograsim/machine/isa/AsmIntegerOperand.java index d3ac80f9..70f5a435 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/isa/AsmIntegerOperand.java +++ b/net.mograsim.machine/src/net/mograsim/machine/isa/AsmIntegerOperand.java @@ -55,7 +55,7 @@ public class AsmIntegerOperand implements AsmOperand int bitLength = bi.bitLength() - (bi.signum() - 1) / 2; if (bitLength > size) throw new AsmNumberFormatException("Error parsing %s: bit count %d exceeds size %d", bi, bitLength, size); - BitVectorMutator bvm = BitVectorMutator.ofLength(size); + BitVectorMutator bvm = BitVectorMutator.ofWidth(size); for (int i = 0; i < size; i++) bvm.setLSBit(i, Bit.of(bi.testBit(i))); return bvm.toBitVector(); diff --git a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemory.java b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemory.java index ee40201b..2e209f1c 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemory.java +++ b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemory.java @@ -112,9 +112,9 @@ public class WordAddressableMemory implements MainMemory public void setCell(int index, BitVector bits) { - if (bits.length() != cellWidth) + if (bits.width() != cellWidth) throw new IllegalArgumentException(String.format( - "BitVector to be saved in memory cell has unexpected length. Expected: %d Actual: %d", cellWidth, bits.length())); + "BitVector to be saved in memory cell has unexpected width. Expected: %d Actual: %d", cellWidth, bits.width())); memory[index] = bits; } diff --git a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryComponent.java b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryComponent.java index e781d3d6..4cec2b17 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryComponent.java +++ b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/WordAddressableMemoryComponent.java @@ -5,13 +5,12 @@ import java.util.List; import net.mograsim.logic.core.components.BasicComponent; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.core.wires.Wire.ReadEnd; import net.mograsim.logic.core.wires.Wire.ReadWriteEnd; import net.mograsim.machine.MainMemoryDefinition; /** - * A memory component that only allows access to words of a specific length + * A memory component that only allows access to words of a specific width */ public class WordAddressableMemoryComponent extends BasicComponent { @@ -31,12 +30,12 @@ public class WordAddressableMemoryComponent extends BasicComponent ReadEnd rWBit, ReadEnd address) { super(timeline, processTime); - if(data.length() != definition.getCellWidth()) - throw new IllegalArgumentException(String.format("Bit width of data wire does not match main memory definition. Expected: %d Actual: %d", definition.getCellWidth(), data.length())); - if(rWBit.length() != 1) - throw new IllegalArgumentException(String.format("Bit width of read/write mode select wire is unexpected. Expected: 1 Actual: %d", rWBit.length())); - if(address.length() != definition.getMemoryAddressBits()) - throw new IllegalArgumentException(String.format("Bit width of address wire does not match main memory definition. Expected: %d Actual: %d", definition.getMemoryAddressBits(), address.length())); + if(data.width() != definition.getCellWidth()) + throw new IllegalArgumentException(String.format("Bit width of data wire does not match main memory definition. Expected: %d Actual: %d", definition.getCellWidth(), data.width())); + if(rWBit.width() != 1) + throw new IllegalArgumentException(String.format("Bit width of read/write mode select wire is unexpected. Expected: 1 Actual: %d", rWBit.width())); + if(address.width() != definition.getMemoryAddressBits()) + throw new IllegalArgumentException(String.format("Bit width of address wire does not match main memory definition. Expected: %d Actual: %d", definition.getMemoryAddressBits(), address.width())); this.data = data; this.rWBit = rWBit; this.address = address; @@ -53,7 +52,7 @@ public class WordAddressableMemoryComponent extends BasicComponent if (!address.hasNumericValue()) { if (read.equals(rWBit.getValue())) - data.feedSignals(BitVector.of(Bit.U, data.length())); + data.feedSignals(Bit.U.toVector(data.width())); else data.clearSignals(); return;