X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fwires%2FWire.java;h=13e83592ca292dd8c55b616c4d330fe66e948699;hb=8372838271933fd0a8b363d01e8f20bc43a4ead8;hp=20bcad1e321bb28be87663ae5c4995e6cc565a28;hpb=28ad9cb1eea7862b1850fb7fc1fc9e4627c9f818;p=Mograsim.git diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java index 20bcad1e..13e83592 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java @@ -567,8 +567,11 @@ public class Wire @Override public void update(LogicObservable initiator) { - ReadWriteEnd read = (ReadWriteEnd) initiator; - target.setValues(fromTarget, read.wireValuesExcludingMe().subVector(fromSource, fromSource + length)); + ReadWriteEnd source = (ReadWriteEnd) initiator; + BitVector targetInput = (source.getWire().inputs.size() > 1) + ? source.wireValuesExcludingMe().subVector(fromSource, fromSource + length) + : BitVector.of(Bit.Z, length); + target.setValues(fromTarget, targetInput); } } } \ No newline at end of file