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
/
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
..
71fcb21
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,18
@@
package era.mi.logic.components.gates;
import era.mi.logic.Util;
package era.mi.logic.components.gates;
import era.mi.logic.Util;
-import era.mi.logic.components.BasicComponent;
-import era.mi.logic.wires.WireArray;
-import era.mi.logic.wires.WireArray.WireArrayInput;
+import era.mi.logic.wires.Wire.WireEnd;
-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(int processTime, WireEnd out, WireEnd... in)
{
{
- super(processTime);
- this.a = a;
- a.addObserver(this);
- this.b = b;
- b.addObserver(this);
- this.out = out;
+ super(processTime, Util::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;
- }
}
}