Wie mache ich einen Paralleladdierer?
Entwerfen und testen Sie einen „2 Bit-Normalform-Paralleladdierer“, d.h. eine Schaltung, die zwei 2-Bit-Zahlen addiert, und zwar nicht Bit für Bit, sondern so, dass die beiden Stellen gleichzeitig addiert werden.
Wenn ich "Paralleladdierer" google finde ich nur Ripple-Carry Addierer. Dies ist hier jedoch offensichtlich nicht gewünscht ("nicht Bit für Bit"). Ein Carry-Lookahead soll es aber wsl. auch nicht sein, sonst hätte er doch einfach Carry-Lookahead-Addierer hingeschrieben. Was will er also? Was ist dieser "Paralleladdierer" und wie kann ich ihn machen, ich versteh's nicht?
Soll ich einfach die ersten Bits mit einem UND verknüpfen und das dann in den Carry leiten, ist das damit gemeint?
So? Ist das jetzt ein Paralleladdierer?
1 Antwort
Ein Ripple-Carry ist parallel, auch wenn das Carry 'durchschwappt'. Die einzelnen Bitstellen werden direkt verarbeitet, nur muß sich das Carry eben fortpflanzen. Ein serieller Addierer, addiert Stelle für Stelle nacheinander, indem er shiftet.
https://de.wikipedia.org/wiki/Addierwerk
Siehe Schaubild für Serienaddierwerk.
Nein, DU verknüpfst doch alle Bitstellen von a und b direkt, lediglich das Ergebnis des Carries lässt auf sich warten (ist halt der kritische Pfad).
Wenn mein Taktzyklus lange genug für den kritischen Pfad ist, kann ich das auch in einem Clockcycle machen (prinzipiell).
Das Serienaddierwerk braucht doch beim FF immer eine Clock fürs Shiften (die natürlich auch höher taktbar wäre, aber das ein anderes Thema). Schau Dir mal den Aufbau des Serienaddierwerkes an. Es holt sich zwei Bit, verarbeitet, schreibt erstest Bit raus, holt sich die nächsten beiden ...usw. usf. . Es shiftet also die Bitstellen der Eingabewörter durch den Addierer.
Aber ein Ripple-Carry-Adder macht doch Bit für Bit, oder nicht?