TU Wien:Digital Design and Computer Architecture LU (Polzer)

Aus VoWi
Wechseln zu: Navigation, Suche

Daten[Bearbeiten]

Inhalt[Bearbeiten]

Diese LVA ist eine Zusammenführung der ehemaligen LVAs TU Wien:Digitales Design LU (Steininger) und TU Wien:Hardware-Modellierung VL (Lechner) aus dem alten (2009-2011) Studienplan.

Das Stoffgebiet ist Hardware-Design mittels VHDL. Es wird erlernt, wie man VHDL schreibt, wie man diesen Code in Testbenches simuliert und wie man den fertigen Code mit einem Logic Analyzer debuggt.

Es gibt 2 Übungen, bei denen die Grundlagen der Entwicklung erlernt werden, und am Ende gibt es 2 große Übungen, bei denen ein MIPS Prozessor implementiert wird, der am Ende auch Code ausführen kann.

Ablauf[Bearbeiten]

Die ersten drei Aufgaben sind in Einzelarbeit zu erledigen, für die beiden fortgeschrittenen Aufgaben sind Dreiergruppen zu bilden. Die Aufgaben können daheim oder im Labor gelöst werden, vor der Abgabe sollten die fertigen Aufgaben einem Tutor gezeigt werden. Man kann allerdings auch bis eine Woche nach Deadline bei einem Tutor abgeben.

Nach den ersten 3 Aufgaben gibt es einen Midterm-Test, bei dem mit dem Logic Analyzer Messungen durchgeführt werden und eine einfache vorgegebene State-Machine implementiert wird.

Nach den 2 MIPS Prozessor Aufgaben gibt es einen Final Test, bei dem Theoriefragen über den MIPS Prozessor beantwortet werden, eine einfache Pipeline und eine kleine ALU implementieren.

Edit für WS2015: Es gibt insgesamt 4 Übungen und eine Bonusaufgabe, in den ersten beiden Übungen werden die Grundlagen erlernt (Modelsim, Quartus, Testbenches, Logic Analyzer). Die nächsten 2 Übungen werden in Gruppen zu maximal 3 Leuten durchgeführt und beschäftigen sich mit der MIPS-Architektur und deren Implementierung. Nach den ersten zwei Übungen findet ein Midterm Test statt (Testbench, Modelsim, Logic Analyzer, State Machine implementieren), am Ende der LU gibt es einen großen Test mit Theorie-Fragen.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten]

Die Vorlesung ist empfehlenswert, aber nicht notwendig.

Übungen[Bearbeiten]

Es gibt 5 Übungsaufgaben von denen die ersten 3 in Einzelarbeit und die letzten beiden in Gruppenarbeit zu lösen sind.


Einzelarbeit[Bearbeiten]

  1. Fertige VHDL Designs mit ModelSim simulieren, auf dem Development Board testen und mit dem Logic Analyzer Messungen durchführen.
  2. Verschiedene vorgegebene VHDL Entities miteinander verknüpfen und diese simulieren und testen + Eine vorgegebene State Machine implementieren, mit der UART über eine serielle Schnittstelle zum PC möglich ist.
  3. Eine eigene State Machine entwickeln, mit der der zweizeilige LCD-Bildschirm angesprochen werden kann.

Gruppenarbeit[Bearbeiten]

  1. Eine einfache MIPS Pipeline wird implementiert
  2. Hazard Behandlung für den MIPS Prozessor, anschließend wird MIPS Assembler auf dem Prozessor ausgeführt.

Prüfung, Benotung[Bearbeiten]

Wenn man bei der Lösung der Aufgaben mitgeholfen hat und sie verstanden hat, dann sind die 2 Tests absolut kein Problem mehr. Die Benotung erscheint sehr fair.

Dauer der Zeugnisausstellung[Bearbeiten]

ca. 4 Wochen

Zeitaufwand[Bearbeiten]

Der Zeitaufwand ist sehr hoch, für die ersten 3 Beispiele hat man jeweils 2 Wochen Zeit. Das geht sich nur knapp aus und man sollte definitiv öfter als 2 mal die Woche (so viele Slot-Termine bekommt man) im Labor sein.

Die Implementierung der MIPS Pipeline ist sich nur bei 2 Gruppen innerhalb der vorgesehenen 4 Wochen ausgegangen, mit der Verlängerung hatten ein paar mehr Gruppen eine Chance abzugeben.

Das Problem an der letzten Aufgabe war das sie auf die MIPS Pipeline aufsetzt, einige Gruppen konnten diese Aufgabe nicht mehr abgeben.

Ich war sicher 4-5 mal die Woche im TILAB für ~1-2 Stunden.

Unterlagen[Bearbeiten]

Tipps[Bearbeiten]

  • Die Beispiele auf keinen Fall unterschätzen! Die Gruppenmitglieder möglichst gut einbinden, es erspart viel Arbeit.
  • Man kann im Verzeichnis, wo man die Dateien für die Nightly Testbench ablegt, die Datei version.txt anlegen. Wenn man den Testbericht zugeschickt bekommt, wird der Inhalt von version.txt auch ausgegeben. Man kann hier z.B. den Hash vom dazugehörigem Git-Commit ablegen. (Thread im Informatik-Forum [1])

Verbesserungsvorschläge / Kritik[Bearbeiten]

noch offen