X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FDemux.java;h=c67756a75213833414d1d175c05f1fa7b4d18493;hb=daa558fbbd87e334d370f1a9d791adc6a3c14ca6;hp=89a06fe97a6154faa441a8741be8647d49df0cea;hpb=e059330d4c9b0b6a951943a6ff68f5c63c92951e;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 89a06fe9..c67756a7 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); } }