X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fwires%2FWire.java;h=ec30040d6c38eb14e3fb66f91dde7bf4295000ea;hb=e6d8e1a6099a1bc26af3851860bfd849543278c3;hp=04ca9ce37450f84e94f83c00ffbd6dab13698c34;hpb=e2cfc152b70fb4b2d8abb8ff4c901ceacf4c89cc;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 04ca9ce3..ec30040d 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