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