| FullAdder.java |
1 /**
2 * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3 * Digitale Schaltungen
4 * VollAddierer als CompoundComponent: operate() wird
5 * von CompoundComponent geerbt
6 */
7 public class FullAdder extends CompoundComponent {
8
9 // keine Instanvariablen; comp von CompoundComponent vererbt
10
11 public FullAdder(Signal x, Signal y, Signal cIn) {
12
13 super();
14
15 // Aufbau des Volladdierers aus Teilkomponenten
16 HalfAdder ha1 = new HalfAdder(x, y); // Half Adder 1
17 HalfAdder ha2 = new HalfAdder(ha1.getSum(), cIn); // Half Adder 2
18 Gate or = new Or(ha1.getCarry(), ha2.getCarry()); // OR
19
20 // Hinzufügen der Teilkomponenten
21 addComponent(ha1);
22 addComponent(ha2);
23 addComponent(or);
24 }
25
26 // Ausgang Summe des Volladdierers
27 public Signal getSum() {
28 return ((HalfAdder)getComponent(1)).getSum();
29 }
30
31 // Ausgang Übertrag des Volladdierers
32 public Signal getCarryOut() {
33 return ((Gate)getComponent(2)).out();
34 }
35
36 // Volladdierer besteht aus 3 Teilkomponenten
37 public int size() {
38 return 3;
39 }
40
41 }
42