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