0 Daumen
500 Aufrufe

Aufgabe:

Im folgenden soll ein Schaltkreis analysiert werden der drei n-Bit Zahlen x, y und z addiert. Dieser arbeitet wie folgt:

• Addiere die einzelnen Bits xi, yi und zi und erhalte Carries ci und Summen si, wobei i ∈ {0,...,n−1}.

• Berechne (0 ∥ sn−1 ∥ ··· ∥ s0) + (cn−1 ∥ ··· ∥ c0 ∥ 0) wobei ∥ der Konkatenation von Bits entspricht. Die Summe entspricht daher x + y + z.

a) Zeichnen Sie den Schaltkreis des beschriebenen Addierers. (Hinweis: Sie dürfen Volladdierer und Carry-Ripple Addierer als Bausteine verwenden.)

b) Bestimmen Sie Tiefe und Kosten des Addierers.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Schaltkreise erstellen - Addiere die einzelnen Bits

Um die erste Teilaufgabe zu lösen, bei der der Schaltkreis des beschriebenen Addierers gezeichnet werden soll, werden wir mit einer Beschreibung des Aufbaus anfangen und anschließend erklären, wie man Tiefe und Kosten des Schaltkreises bestimmt. Eine direkte grafische Darstellung kann hier nicht erzeugt werden, aber ich werde die Struktur und erforderlichen Komponenten detailliert beschreiben, damit man sich vorstellen kann, wie der Schaltkreis aussieht und selbst eine Zeichnung anfertigen kann.

a) Beschreibung des Schaltkreises:

Dieser Schaltkreis verwendet Volladdierer (VA) und einen Carry-Ripple-Addierer (CRA) als Komponenten. Ein Volladdierer ist eine logische Schaltung, die drei Eingangsbits summiert: zwei signifikante Bits und ein Übertrag (Carry) von einer vorherigen Operation. Das Ergebnis ist eine Summe und ein neuer Übertrag.

1. Volladdierer für jedes Bit:
- Für jedes Tripel von Bits \(x_i\), \(y_i\), und \(z_i\), verwenden wir einen Volladdierer.
- Der Volladdierer liefert zwei Ausgänge: das Summenbit \(s_i\) und das Carry-Bit \(c_{i+1}\).

2. Aufbau:
- Wir starten mit \(x_0\), \(y_0\), und \(z_0\), die in einen Volladdierer (VA0) geführt werden, dessen Ausgänge \(s_0\) und \(c_1\) sind.
- Dieser Prozess wiederholt sich bis zum letzten Tripel \(x_{n-1}\), \(y_{n-1}\), und \(z_{n-1}\), deren Ausgänge \(s_{n-1}\) und \(c_n\) sind.

3. Zweite Addition:
- Die Summenbits \((s_{n-1}, \ldots, s_0)\) bilden eine n-Bit Zahl.
- Die Carry-Bits \((c_n, \ldots, c_1)\) bilden ebenfalls eine n-Bit Zahl, wobei der Übertrag \(c_n\) als das führende Bit betrachtet wird und ein zusätzliches \(0\)-Bit am Ende hinzugefügt wird, um zwei \(n+1\)-Bit Zahlen zu haben.
- Die beiden \(n+1\)-Bit Zahlen werden anschließend von einem Carry-Ripple-Addierer addiert.

b) Tiefe und Kosten des Addierers:

- Tiefe (D):
- Volladdierer haben eine feste Tiefe, da die Operationen parallel ausgeführt werden können. Die Tiefe eines Volladdierers basiert auf der Tiefe der benötigten AND, OR und XOR-Gatter, typischerweise \(D_{VA} = 3\).
- Carry-Ripple-Addierer haben eine Tiefe, die linear zur Anzahl der Bits ist, da das Carry-Bit jedes Volladdierers abhängig vom Ergebnis des vorherigen Addierers ist. Die Tiefe des CRA ist also \(D_{CRA} = n \cdot D_{VA}\).
- Die Gesamttiefe ist die des Volladdierer-Schrittes plus die des CRA. Da der Volladdiererschritt jedoch parallel abläuft, wird die Gesamttiefe dominiert von dem CRA, also \(D = D_{CRA} = n \cdot D_{VA}\).

- Kosten (K):
- Volladdierer: Jeder VA besteht aus mehreren Gattern. Die exakten Kosten hängen von der Implementierung ab. Ein VA setzt sich typischerweise aus ca. 5 bis 28 Gattern zusammen, je nachdem, ob man auf Geschwindigkeit oder auf Gatteranzahl optimiert.
- Für \(n\) Bits benötigen wir \(n\) VAs, was die Kosten auf \(K_{VA} = n \cdot k_{VA}\) beläuft, wobei \(k_{VA}\) die Kosten eines VA sind.
- Carry-Ripple-Addierer: Dieser besteht aus \(n+1\) Volladdierern (für \(n+1\) Bit Addition). Deshalb sind die Kosten \(K_{CRA} = (n+1) \cdot k_{VA}\).
- Die Gesamtkosten ergeben sich als Summe der Kosten des ersten Schrittes (\(n \cdot k_{VA}\)) plus die Kosten des CRA (\((n+1) \cdot k_{VA}\)), also \(K = n \cdot k_{VA} + (n+1) \cdot k_{VA}\).

Zusammenfassend basiert der Schaltkreis auf einem sequenziellen Prozess, bei dem zuerst die einzelnen Bits addiert und dann die zwei resultierenden Zahlen in einem zweiten Schritt summiert werden. Dies ermöglicht die Berechnung der Summe von drei \(n\)-Bit Zahlen mit vorbestimmter Tiefe und Kosten, abhängig von der Implementierung der verwendeten Volladdierer und des Carry-Ripple-Addierers.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community