X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fwires%2FWire.java;h=1b26a15d0ae5c379c4c60e5b73c00350667b7856;hb=2ccdd5a2ed812bc4eb864ab4fbb1adb1c723a1c9;hp=4c24571263504f938019c1ce827a53de87f2f674;hpb=953984f215af2b455477d42db469b119c016439b;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/wires/Wire.java b/era.mi/src/era/mi/logic/wires/Wire.java index 4c245712..1b26a15d 100644 --- a/era.mi/src/era/mi/logic/wires/Wire.java +++ b/era.mi/src/era/mi/logic/wires/Wire.java @@ -200,7 +200,15 @@ public class Wire */ public WireEnd createEnd() { - return new WireEnd(); + return new WireEnd(false); + } + + /** + * Create a {@link WireEnd} object, which is tied to this {@link Wire}. This {@link WireEnd} cannot written to. + */ + public WireEnd createReadOnlyEnd() + { + return new WireEnd(true); } private void registerInput(WireEnd toRegister) @@ -220,17 +228,18 @@ public class Wire private boolean open; private Bit[] inputValues; - private WireEnd() + private WireEnd(boolean readOnly) { super(); open = true; initValues(); - registerInput(this); + if (!readOnly) + registerInput(this); } private void initValues() { - inputValues = Bit.Z.makeArray(length); + inputValues = Bit.U.makeArray(length); } /** @@ -415,11 +424,11 @@ public class Wire @Override public String toString() { - return Arrays.toString(values); + return Arrays.toString(inputValues); // return String.format("%s \nFeeding: %s", WireArray.this.toString(), Arrays.toString(inputValues)); } - public void disconnect() + public void close() { inputs.remove(this); open = false;