projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Timeline now passed via constructor
[Mograsim.git]
/
era.mi
/
src
/
era
/
mi
/
logic
/
components
/
gates
/
XorGate.java
diff --git
a/era.mi/src/era/mi/logic/components/gates/XorGate.java
b/era.mi/src/era/mi/logic/components/gates/XorGate.java
index
c7a9455
..
a177695
100644
(file)
--- a/
era.mi/src/era/mi/logic/components/gates/XorGate.java
+++ b/
era.mi/src/era/mi/logic/components/gates/XorGate.java
@@
-1,42
+1,20
@@
package era.mi.logic.components.gates;
package era.mi.logic.components.gates;
-import era.mi.logic.
Util
;
-import era.mi.logic.
components.BasicComponent
;
-import era.mi.logic.wires.Wire
Array
;
-import era.mi.logic.wires.Wire
Array.WireArrayInput
;
+import era.mi.logic.
timeline.Timeline
;
+import era.mi.logic.
types.BitVector.BitVectorMutator
;
+import era.mi.logic.wires.Wire
.ReadEnd
;
+import era.mi.logic.wires.Wire
.ReadWriteEnd
;
-public class XorGate extends BasicComponent
+/**
+ * Outputs 1 when the number of 1 inputs is odd.
+ *
+ * @author Fabian Stemmler
+ */
+public class XorGate extends MultiInputGate
{
{
- private WireArray a, b, out;
- private WireArrayInput outI;
-
- public XorGate(int processTime, WireArray a, WireArray b, WireArray out)
+ public XorGate(Timeline timeline, int processTime, ReadWriteEnd out, ReadEnd... in)
{
{
- super(processTime);
- this.a = a;
- a.addObserver(this);
- this.b = b;
- b.addObserver(this);
- this.out = out;
+ super(timeline, processTime, BitVectorMutator::xor, out, in);
}
}
- protected void compute()
- {
- outI.feedSignals(Util.xor(a.getValues(), b.getValues()));
- }
-
- public WireArray getA()
- {
- return a;
- }
-
- public WireArray getB()
- {
- return b;
- }
-
- public WireArray getOut()
- {
- return out;
- }
}
}