X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FDemux.java;h=3b267dfef61843b5d5f6e0e4b9216c0e8b921d12;hb=80bfbd8ebf0ad8a7ad98584544a0c73f43e6f3b6;hp=4f06728ab92ace49f01ba418624a3f223a613c98;hpb=c1d0ddc342c482051fa6c455bb286617135bd3c3;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/components/Demux.java b/era.mi/src/era/mi/logic/components/Demux.java index 4f06728a..3b267dfe 100644 --- a/era.mi/src/era/mi/logic/components/Demux.java +++ b/era.mi/src/era/mi/logic/components/Demux.java @@ -1,11 +1,11 @@ package era.mi.logic.components; -import java.util.Arrays; -import java.util.Collections; import java.util.List; +import era.mi.logic.timeline.Timeline; import era.mi.logic.wires.Wire; -import era.mi.logic.wires.Wire.WireEnd; +import era.mi.logic.wires.Wire.ReadEnd; +import era.mi.logic.wires.Wire.ReadWriteEnd; /** * Models a multiplexer. Takes an arbitrary amount of input {@link Wire}s, one of which, as determined by select, is put through to the @@ -16,21 +16,21 @@ import era.mi.logic.wires.Wire.WireEnd; */ public class Demux extends BasicComponent { - private final WireEnd select, in; - private final WireEnd[] outputs; + private final ReadEnd select, in; + private final ReadWriteEnd[] outputs; private final int outputSize; private int selected = -1; /** - * Input {@link Wire}s and out must be of uniform length + * Output {@link Wire}s and in must be of uniform length * - * @param out Must be of uniform length 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 outputs One of these inputs is mapped to the output, depending on the select bits + * @param in Must be of uniform length 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(int processTime, WireEnd in, WireEnd select, WireEnd... outputs) + public Demux(Timeline timeline, int processTime, ReadEnd in, ReadEnd select, ReadWriteEnd... outputs) { - super(processTime); + super(timeline, processTime); outputSize = in.length(); this.in = in; @@ -69,14 +69,14 @@ public class Demux extends BasicComponent } @Override - public List getAllInputs() + public List getAllInputs() { - return Collections.unmodifiableList(Arrays.asList(in, select)); + return List.of(in, select); } @Override - public List getAllOutputs() + public List getAllOutputs() { - return Collections.unmodifiableList(Arrays.asList(outputs)); + return List.of(outputs); } }