TU Wien:HW/SW Codesign LU (Steininger)

Aus VoWi
Zur Navigation springen Zur Suche springen

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Florian Ferdinand HuemerAndreas Steininger
ECTS 4,5
Letzte Abhaltung 2023WS
Sprache „if required in english“ ist kein zulässiger Sprachcode.
Mattermost hw-sw-codesignRegisterMattermost-Infos
Links tiss:182701 , Homepage
Zuordnungen
Masterstudium Technische Informatik Wahlmodul Digital Circuits and Systems


Inhalt[Bearbeiten | Quelltext bearbeiten]

Ein Projekt wird als Software Lösung zur Verfügung gestellt und soll mittels HW/SW Codesign (massiv) beschleunigt werden. Wie man das macht, ist vollkommen freigestellt.

Ablauf[Bearbeiten | Quelltext bearbeiten]

Zuerst eine Einzelphase (ca. ein Monat) wo ein kleines Projekt gemacht werden muss. Dieses dient dazu mit den Tools vertraut zu werden und ein paar Möglichkeiten wie man HW mit SW verbindet kennen zu lernen. Hier sind die Vorgaben relativ strikt um alles mal kennen zu lernen. Die Aufgabe ist aber so gewählt, dass man Teile davon für den Maintask übernehmen kann.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

VHDL muss man schon vorher sehr gut können! Digital Design and Computer Architecture ist auf alle Fälle notwendig.

Vortrag[Bearbeiten | Quelltext bearbeiten]

Es gibt keinen regelmäßigen Vortrag. Neben einem Tutorial im Lab gibt es einen Termin an dem der Maintask vorgestellt wird. Das Tutorial sollte auf alle Fälle besucht werden oder sich nachträglich von Kolleg_inne oder Bereuenden erklären lassen.

Übungen[Bearbeiten | Quelltext bearbeiten]

Einzelphase[Bearbeiten | Quelltext bearbeiten]

Hier wird klar vorgegeben was Schritt für Schritt gemacht werden muss. Dies dient eher als ausführliches Tutorial und ist keine große Herausforderung.

Gruppenphase (Maintask)[Bearbeiten | Quelltext bearbeiten]

Hier wird ein lauffähiges FPGA Projekt zur Verfügung gestellt, welches aber außer einen Prozessor und HW für Ausgabe/Darstellung keine weitere HW enthält. Entsprechend ist die Ausführung ganz in SW und auf dem Embedded Prozessor sehr langsam. Ziel ist es durch erweitern der HW mit speziellen Funktionen die Berechnungen massiv zu beschleunigen. Für diesen Task gibt es zwei Präsentationen: eine Midterm Presentation, um den Plan/die Idee vorzustellen und eine Final Presentation für das fertige System.

Es gibt hier verschiedene Aufgaben die sich jedes Jahr abwechseln:

  • WS19, WS21: es musste eine Raytracing Anwendung von 40 Sekunden pro Frame auf ca. 20 Frames pro Sekunde beschleunigt werden.
  • WS22: Es sollen vier verschiedene Fraktale in weniger als 40 bzw. 54 Sekunden berechnet werden.

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

Es gibt keine Prüfung. Die Benotung erfolgt anhand der Einzelaufgabe, der Präsentation des Plans für den Maintask, die Performance der Abgabe und des Abgabegesprächs. Dazu gibt für die Besten der Einzelphase noch Bonuspunkte.

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

noch offen

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

Sehr, sehr hoch. Auf alle Fälle im Klaren sein, dass die 4.5 ECTS in keinem Verhältnis zum tatsächlichen Aufwand stehen. Meist ist aber die Deadline nicht strikt. Man hat noch bis zum Ende des darauf folgenden Semesters Zeit, also in Summe fast 8 Monate. Wie bei DDCA sollten man wirklich früh anfangen. HW-Entwicklung ist einfach zeitaufwändig und man sollte viel Zeit einplanen. Insgesamt wurden in einer 2er-Gruppe ca. 200h aufgewendet.

Unterlagen[Bearbeiten | Quelltext bearbeiten]

Neben Links zu Manuals der Tools und der Hardware, wird zum Maintask passende Lektüre verlinkt.

Tipps[Bearbeiten | Quelltext bearbeiten]

  • Den Maintask gut planen und nicht einfach drauf los arbeiten
  • Bald mit dem Maintask beginnen und gut einteilen.
  • Die Softwarelösung genau hinterfragen und nicht 1:1 in HW übersetzten. Vielleicht können Ergebnisse anders berechnet oder approximiert werden, sodass sich das in HW besser einfacherer machen lässt.
  • Die Aufgaben gut partitionieren und inkrementell einzelne Software-Teile durch HW ersetzen. So spart man sich viel Fehlersuchen.
  • Die Gruppenarbeit gut einteilen. Es müssen alle mitmachen, sonst wir das noch viel mehr Aufwand.
  • Von Anfang an die Beschränkte Größe des FPGAs im Auge behalten. Früher oder später gibt es Platzprobleme.

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

noch offen

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

  • Leider sind die wirklich guten Lösungen immer Lösungen wo sehr viel (fast alles) durch Hardware ersetzt wird. Da wird es oft so, dass die SW am Ende nur mehr die HW startet und auf Fertigstellung wartet. Das ist dann nicht mehr wirklich HW-SW Codesign, sondern eher SW to HW compiling.