LU HW/SW Codesign

Exam informations

Am Anfang des Semesters muss eine kleine Aufgabe in Einzelarbeit gelöst werden. Diese dient zum Kennenlernen der bereitgestellten Entwicklungsplatform (Terasic DE2-115) wie auch der benutzten Software Tools (Altera Quartus, QSYS, NiosII-IDE) und des verwendeten Prozessors (NiosII) mit seinen Anbindungsmöglichkeiten (Avalon-Bus). Wer diese Aufgabe erfolgreich löst, darf in die Gruppenphase, wo in Dreiergruppen die eigentliche Angabe bearbeitet wird. Diese wird in einem Abgabegespräch abgenommen und dabei Implementierungsdetails wie auch Details über die in der Applikation verwendeten Algorithmen abgefragt.

Für die Einzelarbeit gibt es maximal 15 Punkte, für die Präsentation auch maximal 15 Punkte, die Applikation mit dem Abgabegespräch wird mit maximal 70 Punkten bewertet (d.h. Gruppenmitglieder können unterschiedlich bewertet werden).

Der Notenschlüssel ist (S1) bis 87,5 P., (U2) bis 75 P., (B3) bis 62,5 P., (G4) bis 50 P., (N5) darunter.

Workload for exams

Description

Praktische Umsetzung eines kombinierten Hardware / Software Systems. Optimierung mittels Aufteilung in Hardware und Software Komponenten.

Lösung einer praktischen Aufgabe aus dem Bereich des HW-SW Codesign - Entwurf, Inbetriebnahme und Optimierung eines Gesamtsystems aus Prozessor, selbst entworfenen HW-Modulen (auf FPGA), Software (incl. Treibern). Didaktisches Vorgehen: Die Aufgabe besteht darin, die vorgegebene Applikation auf dem FPGA zu Implementieren. Typischerweise wird dabei eine reine Softwarelösung erstellt, deren Performanz sehr wahrscheinlich das vorgegebene Minimum nicht erreichen wird. In nächster folge werden Schwachstellen in einer geeigneten Analyse identifiziert und systematisch beseitigt. Beispiele für notwendige Schritte sind:

  • Codeoptimierung (auf C-Ebene)
  • Funktionen, die der Compiler nicht gut genug Optimiert, in Assembly neu schreiben
  • Applikationspezifische Befehle für häufig ausgeführte Operationen zum Befehlssatz des Prozessors hinzufügen
  • Funktionen in Hardware auslagern (dafür entsprechende Module (finden oder) entwerfen und einbinden)

Dazu erforderliches Wissen beinhaltet insbesondere:

  • VHDL Hardware Design
  • C Software Entwicklung
  • Rechnerstrukturen - Befehlsatz, Pipelining, Speicheraufteilung (SRAM, DRAM, I-/D-Cache, Scratchpad, Register)
  • Verständnis von Algorithmen - Loop unrolling, Pipelining, Parallelisierung
  • LVA-Nummer: 182.701
  • ECTS: 4.5
  • Stunden: 4

Module

Lecturers

Examples

Möchtest du die Beispiele bewerten musst du dich einloggen. Derzeit funktioniert das über Facebook, wir arbeiten an einem Login über TISS! Facebook Login

Download all as ZIP File
Add files...