¨Ubungen zur Vorlesung CPU-Design SS 2010 ¨Ubungsblatt 1

Transcription

¨Ubungen zur Vorlesung CPU-Design SS 2010 ¨Ubungsblatt 1
Übungen zur Vorlesung
CPU-Design
SS 2010
Übungsblatt 1
Arithmetic Logic Unit
Aufgabe 1 (Logische Operationen):
Schreiben Sie jeweils VHDL Komponenten für folgende logischen Operationen: AND, OR, XOR
Die Eingabe bestehen aus 2 Operanden mit jeweils 32 Bit. Die Ausgabe umfasst einen Ausgang
mit 32 Bit, welcher das Resultat der logischen Operation ist. Schreiben Sie eine Testbench,
compilieren und simulieren Sie anschließend Ihr Design. Wie können Sie die Vorgänge automatisieren? Entwickeln Sie entsprechende Skripte!
Aufgabe 2 (Addierer / Subtrahierer):
Schreiben Sie einen 32 Bit Addierer / Subtrahierer welcher als Eingaben zwei Summanden, ein
eventuelles Carry und den Opcode bzw. einen Teil davon erhält. Ausgabe soll das Ergebnis und
ein eventuelles Carry sein.
• Machen Sie sich mit der Funktionsweise und dem Aufbau eines Volladdierers vertraut!
• Wie können Sie mehrere Volladdierer zu einem Ripple-Carry-Addierer verbinden?
• Was ist der kritische Pfad, wie können Sie diesen verkürzen?
• Welche (schnelleren) Alternativen gibt es zum RCA?
• Wiederholen Sie die Subtraktion mit Hilfe des 2er Komplements!
• Wie können Sie den bestehenden Addierer um die Subtraktion erweitern? Gehen Sie dabei
speziell auf die Verwendung des Carrys ein!
Aufgabe 3 (Barrel Shifter):
Schreiben Sie Implementierungen für folgende Schiebeoperationen: rcr, rcl, ror, rol, shr, shl, sar
• Machen Sie sich mit den einzelnen Schiebeoperationen vertraut und fertigen Sie eventuell
Skizzen an!
• Welche Unterschiede bestehen zwischen Barrel Shifter und gewöhnlichen Schiebegregistern welche bspw. mit D-Flip Flops umgesetzt sind?
• Wie können Sie die Berechnung beschleunigen?
Aufgabe 4 (ALU):
Verbinden Sie alle Ihre Komponennten zu einer neuen Komponente ALU. Diese bekommt neben
den Operanden und dem Carry als Eingabe zusätzlich den Opcode. Fügen Sie einen Mux hinzu,
welcher das richtige Ergebnis auswählt und nach außen weiterleitet. Fügen Sie außerdem die
Ausgänge Zero (Ergebnis = 0), Signum (Vorzeichen) und Carry hinzu.

Documents pareils