9287f3fd3e9999f2501a7a76bf64f032b3b3d9ca
[Mograsim.git] / era.mi / src / era / mi / logic / components / gates / XorGate.java
1 package era.mi.logic.components.gates;
2
3 import era.mi.logic.Util;
4 import era.mi.logic.WireArray;
5 import era.mi.logic.components.BasicComponent;
6
7 public class XorGate extends BasicComponent
8 {
9         private WireArray a, b, out;
10         
11         public XorGate(int processTime, WireArray a, WireArray b, WireArray out)
12         {
13                 super(processTime);
14                 this.a = a;
15                 a.addObserver(this);
16                 this.b = b;
17                 b.addObserver(this);
18                 this.out = out;
19         }
20
21         protected void compute()
22         {
23                 out.feedSignals(Util.xor(a.getValues(), b.getValues()));
24         }
25
26         public WireArray getA()
27         {
28                 return a;
29         }
30
31         public WireArray getB()
32         {
33                 return b;
34         }
35
36         public WireArray getOut()
37         {
38                 return out;
39         }
40 }