X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fmograsim%2Flogic%2Fcore%2Fcomponents%2FBitDisplay.java;fp=era.mi%2Fsrc%2Fmograsim%2Flogic%2Fcore%2Fcomponents%2FBitDisplay.java;h=0d398dab1e5faec16c8ee8a6298bb8608fa9ec37;hb=a28f7aa0dab4248e99159c5a647676170cb17a4e;hp=0000000000000000000000000000000000000000;hpb=80bfbd8ebf0ad8a7ad98584544a0c73f43e6f3b6;p=Mograsim.git diff --git a/era.mi/src/mograsim/logic/core/components/BitDisplay.java b/era.mi/src/mograsim/logic/core/components/BitDisplay.java new file mode 100644 index 00000000..0d398dab --- /dev/null +++ b/era.mi/src/mograsim/logic/core/components/BitDisplay.java @@ -0,0 +1,51 @@ +package mograsim.logic.core.components; + +import java.util.List; + +import mograsim.logic.core.timeline.Timeline; +import mograsim.logic.core.types.Bit; +import mograsim.logic.core.types.BitVector; +import mograsim.logic.core.wires.Wire.ReadEnd; +import mograsim.logic.core.wires.Wire.ReadWriteEnd; + +public class BitDisplay extends BasicComponent +{ + private final ReadEnd in; + private BitVector displayedValue; + + public BitDisplay(Timeline timeline, ReadEnd in) + { + super(timeline, 1); + this.in = in; + in.addObserver(this); + compute(); + } + + @Override + protected void compute() + { + displayedValue = in.getValues(); + } + + public BitVector getDisplayedValue() + { + return displayedValue; + } + + public boolean isDisplaying(Bit... values) + { + return displayedValue.equals(BitVector.of(values)); + } + + @Override + public List getAllInputs() + { + return List.of(in); + } + + @Override + public List getAllOutputs() + { + return List.of(); + } +}