| FullAdder.java |
1 /**
2 * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3 * Digitale Schaltungen
4 * Volladdierer
5 */
6 public class FullAdder implements Component {
7
8 // die Teilkomponenten des Volladierers
9 private Component[] comp = new Component[3];
10
11 // ein Volladierer besteht aus zwei Halbaddiern und einem OR-Gatter
12 private HalfAdder ha1;
13 private HalfAdder ha2;
14 private Gate or;
15
16 public FullAdder(Signal x, Signal y, Signal cIn) {
17
18 // Aufbau des Volladdierers aus Teilkomponenten
19 ha1 = new HalfAdder(x, y); // Half Adder 1
20 ha2 = new HalfAdder(ha1.getSum(), cIn); // Half Adder 2
21 or = new Or(ha1.getCarry(), ha2.getCarry()); // OR
22
23 // Halbaddierer und Gatter sind Component-Objekte
24 comp[0] = ha1;
25 comp[1] = ha2;
26 comp[2] = or;
27 }
28
29 // Durchführung der Operationen aller Komponenten, in dieser Reihenfolge
30 public void operate() {
31 for (int i=0; i<comp.length; i++)
32 comp[i].operate();
33 }
34
35 // Ausgang Summe des Volladdierers
36 public Signal getSum() {
37 return ha2.getSum();
38 }
39
40 // Ausgang Übertrag des Volladdierers
41 public Signal getCarryOut() {
42 return or.out();
43 }
44
45 }
46