| HalfAdder.java |
1 /**
2 * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3 * Digitale Schaltungen
4 * Halbaddierer als CompoundComponent: operate() wird
5 * von CompoundComponent geerbt
6 */
7 public class HalfAdder extends CompoundComponent {
8
9 // keine Instanvariablen; comp von CompoundComponent vererbt
10
11 public HalfAdder(Signal x, Signal y) {
12
13 super();
14
15 // ein Halbadierer besteht aus 6 Gattern
16 Gate[] gate = new Gate[size()];
17
18 // Aufbau des Halbadierers aus den Gattern
19 gate[0] = new Not(x); // NOT x
20 gate[1] = new Not(y); // NOT y
21 gate[2] = new And(gate[0].out(), y); // (NOT x) AND y
22 gate[3] = new And(x, gate[1].out()); // x and (NOT y)
23 gate[4] = new Or(gate[2].out(), gate[3].out()); // s = ((NOT x) AND y) OR (x and (NOT y))
24 gate[5] = new And(x, y); // c = x AND y
25
26 // Hinzufügen der Gatter
27 for (int i=0; i<gate.length; i++)
28 addComponent(gate[i]);
29
30 // for (Gate g : gate)
31 // addComponent(g);
32 }
33
34 // Ausgang Summe des Halbaddierers
35 public Signal getSum() {
36 return ((Gate)getComponent(4)).out();
37 }
38
39 // Ausgang Übertrag des Halbaddierers
40 public Signal getCarry() {
41 return ((Gate)getComponent(5)).out();
42 }
43
44 // Halbaddierer besteht aus 6 Teilkomponenten (Gattern)
45 public int size() {
46 return 6;
47 }
48
49 }
50