Added era.mi; Project containing provisional simulator core
[Mograsim.git] / era.mi / src / era / mi / logic / components / gates / AndGate.java
diff --git a/era.mi/src/era/mi/logic/components/gates/AndGate.java b/era.mi/src/era/mi/logic/components/gates/AndGate.java
new file mode 100644 (file)
index 0000000..762eeef
--- /dev/null
@@ -0,0 +1,40 @@
+package era.mi.logic.components.gates;
+
+import era.mi.logic.Util;
+import era.mi.logic.WireArray;
+import era.mi.logic.components.BasicComponent;
+
+public class AndGate extends BasicComponent
+{
+       private WireArray a, b, out;
+       
+       public AndGate(int processTime, WireArray a, WireArray b, WireArray out)
+       {
+               super(processTime);
+               this.a = a;
+               a.addObserver(this);
+               this.b = b;
+               b.addObserver(this);
+               this.out = out;
+       }
+
+       protected void compute()
+       {
+               out.feedSignals(Util.and(a.getValues(), b.getValues()));
+       }
+
+       public WireArray getA()
+       {
+               return a;
+       }
+
+       public WireArray getB()
+       {
+               return b;
+       }
+
+       public WireArray getOut()
+       {
+               return out;
+       }
+}