1 package era.mi.logic.tests;
\r
3 import era.mi.logic.Bit;
\r
4 import era.mi.logic.Simulation;
\r
5 import era.mi.logic.wires.WireArray;
\r
6 import era.mi.logic.wires.WireArray.WireArrayEnd;
\r
7 import era.mi.logic.wires.WireArrayObserver;
\r
9 public class Connector implements WireArrayObserver
\r
11 private final WireArray a;
\r
12 // private final WireArray b;
\r
13 private final WireArrayEnd aI;
\r
14 private final WireArrayEnd bI;
\r
16 public Connector(WireArray a, WireArray b)
\r
18 if (a.length != b.length)
\r
19 throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.length, b.length));
\r
22 a.addObserver(this);
\r
23 b.addObserver(this);
\r
24 aI = a.createInput();
\r
25 bI = b.createInput();
\r
29 public void update(WireArray initiator, Bit[] oldValues)
\r
31 Simulation.TIMELINE.addEvent((e) ->
\r
34 bI.feedSignals(aI.wireValuesExcludingMe());
\r
36 aI.feedSignals(bI.wireValuesExcludingMe());
\r