| HalfAdder.java |
1 /**
2 * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3 * Digitale Schaltungen
4 * Halbaddierer
5 */
6 public class HalfAdder implements Component {
7
8 // ein Halbadierer besteht aus 6 Gattern
9 private Gate[] gate = new Gate[6];
10
11 public HalfAdder(Signal x, Signal y) {
12
13 // Aufbau des Halbadierers aus den Gattern
14 gate[0] = new Not(x); // NOT x
15 gate[1] = new Not(y); // NOT y
16 gate[2] = new And(gate[0].out(), y); // (NOT x) AND y
17 gate[3] = new And(x, gate[1].out()); // x and (NOT y)
18 gate[4] = new Or(gate[2].out(), gate[3].out()); // s = ((NOT x) AND y) OR (x and (NOT y))
19 gate[5] = new And(x, y); // c = x AND y
20 }
21
22 // Halbadierer schaltet: Durchführung der Operationen aller Gatter (Reihenfolge!)
23 public void operate() {
24 for (int i=0; i<gate.length; i++)
25 gate[i].operate();
26 }
27
28 // Ausgang Summe des Halbaddierers
29 public Signal getSum() {
30 return gate[4].out();
31 }
32
33 // Ausgang Übertrag des Halbaddierers
34 public Signal getCarry() {
35 return gate[5].out();
36 }
37
38 }
39