X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fcomponents%2Fgates%2FMultiInputGate.java;fp=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fcomponents%2Fgates%2FMultiInputGate.java;h=9cea1979274ed4aa55be0dbd8ea940a69ae33990;hb=15aff307cbd5ae828801f5ee078e7a086b5b3973;hp=6b183e37651dd2cdc79dfa59b93d7894816db73d;hpb=ec2c0827f8d791b669de3ab0135d483ad86713e0;p=Mograsim.git 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 6b183e37..9cea1979 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 @@ -15,6 +15,7 @@ public abstract class MultiInputGate extends BasicComponent protected ReadWriteEnd out; protected final int length; protected MutationOperation op; + protected boolean invert = false; protected MultiInputGate(Timeline timeline, int processTime, MutationOperation op, ReadWriteEnd out, ReadEnd... in) { @@ -33,6 +34,12 @@ public abstract class MultiInputGate extends BasicComponent this.out = out; } + protected MultiInputGate(Timeline timeline, int processTime, MutationOperation op, boolean invert, ReadWriteEnd out, ReadEnd... in) + { + this(timeline, processTime, op, out, in); + this.invert = invert; + } + @Override public List getAllInputs() { @@ -51,6 +58,6 @@ public abstract class MultiInputGate extends BasicComponent BitVectorMutator mutator = BitVectorMutator.empty(); for (ReadEnd w : in) op.apply(mutator, w.getValues()); - out.feedSignals(mutator.get()); + out.feedSignals(invert ? mutator.get().not() : mutator.get()); } }