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.WireArrayInput;
\r
7 import era.mi.logic.wires.WireArrayObserver;
\r
9 public class Connector implements WireArrayObserver {
\r
10 private final WireArray a;
\r
11 // private final WireArray b;
\r
12 private final WireArrayInput aI;
\r
13 private final WireArrayInput bI;
\r
15 public Connector(WireArray a, WireArray b) {
\r
16 if (a.length != b.length)
\r
17 throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.length, b.length));
\r
20 a.addObserver(this);
\r
21 b.addObserver(this);
\r
22 aI = a.createInput();
\r
23 bI = b.createInput();
\r
27 public void update(WireArray initiator, Bit[] oldValues) {
\r
28 Simulation.TIMELINE.addEvent((e) -> {
\r
30 bI.feedSignals(aI.wireValuesExcludingMe());
\r
32 aI.feedSignals(bI.wireValuesExcludingMe());
\r