X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2Fgates%2FMultiInputGate.java;h=dd8a6d6ff153de1eeab673923519207109124cce;hb=b7ce41467a2cbd9f45554982730741810e99feaa;hp=0b4a5d097b3eed8613685d185d4dfd0e0ece251f;hpb=cc5749d29d0a2e37262ec10925676c812a2fa734;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/components/gates/MultiInputGate.java b/era.mi/src/era/mi/logic/components/gates/MultiInputGate.java index 0b4a5d09..dd8a6d6f 100644 --- a/era.mi/src/era/mi/logic/components/gates/MultiInputGate.java +++ b/era.mi/src/era/mi/logic/components/gates/MultiInputGate.java @@ -5,16 +5,17 @@ import java.util.List; import era.mi.logic.components.BasicComponent; import era.mi.logic.types.BitVector.BitVectorMutator; import era.mi.logic.types.MutationOperation; -import era.mi.logic.wires.Wire.WireEnd; +import era.mi.logic.wires.Wire.ReadEnd; +import era.mi.logic.wires.Wire.ReadWriteEnd; public abstract class MultiInputGate extends BasicComponent { - protected WireEnd[] in; - protected WireEnd out; + protected ReadEnd[] in; + protected ReadWriteEnd out; protected final int length; protected MutationOperation op; - protected MultiInputGate(int processTime, MutationOperation op, WireEnd out, WireEnd... in) + protected MultiInputGate(int processTime, MutationOperation op, ReadWriteEnd out, ReadEnd... in) { super(processTime); this.op = op; @@ -22,7 +23,7 @@ public abstract class MultiInputGate extends BasicComponent this.in = in.clone(); if (in.length < 1) throw new IllegalArgumentException(String.format("Cannot create gate with %d wires.", in.length)); - for (WireEnd w : in) + for (ReadEnd w : in) { if (w.length() != length) throw new IllegalArgumentException("All wires connected to the gate must be of uniform length."); @@ -32,13 +33,13 @@ public abstract class MultiInputGate extends BasicComponent } @Override - public List getAllInputs() + public List getAllInputs() { return List.of(in); } @Override - public List getAllOutputs() + public List getAllOutputs() { return List.of(out); } @@ -47,7 +48,7 @@ public abstract class MultiInputGate extends BasicComponent protected void compute() { BitVectorMutator mutator = BitVectorMutator.empty(); - for (WireEnd w : in) + for (ReadEnd w : in) op.apply(mutator, w.getValues()); out.feedSignals(mutator.get()); }