projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge logic of origin into logic
[Mograsim.git]
/
era.mi
/
src
/
era
/
mi
/
logic
/
components
/
Connector.java
diff --git
a/era.mi/src/era/mi/logic/components/Connector.java
b/era.mi/src/era/mi/logic/components/Connector.java
index
17c9f3c
..
47cf901
100644
(file)
--- a/
era.mi/src/era/mi/logic/components/Connector.java
+++ b/
era.mi/src/era/mi/logic/components/Connector.java
@@
-4,42
+4,38
@@
import java.util.List;
import era.mi.logic.Bit;
import era.mi.logic.Simulation;
import era.mi.logic.Bit;
import era.mi.logic.Simulation;
-import era.mi.logic.wires.Wire
Array
;
-import era.mi.logic.wires.Wire
Array.WireArray
End;
-import era.mi.logic.wires.Wire
Array
Observer;
+import era.mi.logic.wires.Wire;
+import era.mi.logic.wires.Wire
.Wire
End;
+import era.mi.logic.wires.WireObserver;
-public class Connector implements Wire
Array
Observer, Component
+public class Connector implements WireObserver, Component
{
private boolean connected;
{
private boolean connected;
- private final WireArray a;
- private final WireArray b;
- private final WireArrayEnd aI;
- private final WireArrayEnd bI;
+ private final WireEnd a;
+ private final WireEnd b;
- public Connector(Wire
Array a, WireArray
b)
+ public Connector(Wire
End a, WireEnd
b)
{
{
- if (a.length
!= b.length
)
- throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.length
, b.length
));
+ if (a.length
() != b.length()
)
+ throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.length
(), b.length()
));
this.a = a;
this.b = b;
a.addObserver(this);
b.addObserver(this);
this.a = a;
this.b = b;
a.addObserver(this);
b.addObserver(this);
- aI = a.createInput();
- bI = b.createInput();
}
public void connect()
{
connected = true;
}
public void connect()
{
connected = true;
- update(a);
- update(b);
+ update(a
.getWire()
);
+ update(b
.getWire()
);
}
public void disconnect()
{
connected = false;
}
public void disconnect()
{
connected = false;
- a
I
.clearSignals();
- b
I
.clearSignals();
+ a.clearSignals();
+ b.clearSignals();
}
public void setConnection(boolean connected)
}
public void setConnection(boolean connected)
@@
-51,28
+47,28
@@
public class Connector implements WireArrayObserver, Component
}
@Override
}
@Override
- public void update(Wire
Array
initiator, Bit[] oldValues)
+ public void update(Wire initiator, Bit[] oldValues)
{
if (connected)
Simulation.TIMELINE.addEvent(e -> update(initiator), 1);
}
{
if (connected)
Simulation.TIMELINE.addEvent(e -> update(initiator), 1);
}
- private void update(Wire
Array
initiator)
+ private void update(Wire initiator)
{
{
- if (initiator == a)
- b
I.feedSignals(aI
.wireValuesExcludingMe());
+ if (initiator == a
.getWire()
)
+ b
.feedSignals(a
.wireValuesExcludingMe());
else
else
- a
I.feedSignals(bI
.wireValuesExcludingMe());
+ a
.feedSignals(b
.wireValuesExcludingMe());
}
@Override
}
@Override
- public List<Wire
Array
> getAllInputs()
+ public List<Wire
End
> getAllInputs()
{
return List.of(a, b);
}
@Override
{
return List.of(a, b);
}
@Override
- public List<Wire
Array
> getAllOutputs()
+ public List<Wire
End
> getAllOutputs()
{
return List.of(a, b);
}
{
return List.of(a, b);
}