Bachelor-Arbeiten
Betreuer*in: Christoph Flothow
Frühester Beginn: sofort
Eines der Forschungsgebiete des Fachgebiets Rechnersysteme ist die Logiksynthese für Field Programmable Gate Arrays (FPGAs). Ein wichtiger Schritt dabei ist das sogenannte Technology Mapping, bei dem die gewünschte Funktionalität - in Form einer Booleschen Beschreibung vorliegend - auf die Look-up Tables (LUTs) des FPGAs abgebildet wird. Aktuell wird an einem Technology Mapping Verfahren basierend auf Binary Decision Diagrams (BDDs) geforscht.
Bei Technology Mapping mit BDDs ist die Anzahl an Knoten direkt unter dem Cut sehr wichtig. Sie beinflusst sowohl die Anzahl an Variablen, die in die LUT unter dem Cut passen, als auch die Anzahl an Hilfsfunktionen, die aus dem Teil über dem Cut hervorgehen. Insofern ist es meistens Vorteilhaft, eine möglichst kleine Anzahl an Knoten direkt über dem Cut zu haben. Allerdings ist die Anzahl an Knoten, die in einem (reduzierten) BDD vorhanden sind, sehr stark von der aktuellen Variablenreihenfolge des BDDs abhängig.
Das Ziel dieser Bachelorarbeit ist das Entwickeln und Auswerten von neuen Strategien, um eine möglichst gute Variablenreihenfolge zu finden, gegeben dass ein Cut an einer bestimmten Höhe gemacht werden soll.
Es würde sich anbieten, sich zuerst mit einem vorangestellten Projektseminar in die Thematik einzuarbeiten. Alternativ könnte der Umfang der Aufgabenstellung auch für eine Masterarbeit angepasst werden.
Master-Arbeiten
Betreuer*in: Leon Mayrhofer
Frühester Beginn: sofort
Am Fachgebiet Rechnersysteme wird ein RISC-V Soft-Core in Chisel portiert. Dieser dient vorwiegend für die Verwendung in FPGAs. Aufgrund dieser Zielausrichtung bietet es sich an, einen Soft-Core-Generator zu implementieren, mit dem der RISC-V Prozessor an die anwendungsspezifischen Anforderungen angepasst werden kann.
Bisher ist der RISC-V Soft-Core in einer sehr einfachen Basisvariante implementiert. Erweiterte Funktionen wie beispielsweise eine Floating-Point-Recheneinheit sind nicht vorhanden. Die Aufgabe in dieser Master-Arbeit besteht darin, die vorhandene Implementierung um eben solche fortgeschrittenen Funktionen zu erweitern.
Der Aspekt des Generierens von verschiedenen Ausbaustufen des RISC-V Soft-Cores kann durchaus elegant durch den Einsatz der Chisel HDL erreicht werden. Chisel arbeitet auf einer höheren Abstraktionsebene als zum Beispiel Verilog oder VHDL und erlaubt es mit sehr wenig Aufwand einfach zu konfigurierende generische Module zu erstellen. Da das bereits vorhandene System in Chisel vorliegt, ist der Einsatz von Chisel bei dieser Arbeit verpflichtend. Es werden allerdings auch Verilog-Kenntnisse vorausgesetzt, da Chisel-Code vor der Synthese zu Verilog konvertiert wird.
Projektseminare Master
Betreuer*in: Leon Mayrhofer
Frühester Beginn: sofort
Am Fachgebiet Rechnersysteme wird ein SoC-Kit rund um den SpartanMC Soft-Core entwickelt. Dieser ist ein speziell für die Verwendung in FPGAs entwickelter CPU-Core. Aufgrund dieser Zielplattform nutzt der SpartanMC eine Befehls- und Datenbreite von 18 Bit, welche die Strukturen aktueller FPGAs optimal ausnutzt.
Um bei Änderung des Programms nicht eine volle Synthese zur Änderung des Speicherinhaltes durchführen zu müssen, wurde für das SpartanMC SoC-Kit eine Library entwickelt, die auch einen nachträglichen Ausstausch von Speicherinhalten im fertigen Bitstream in Sekunden ermöglicht. Da dieser Austausch nicht für alle Konstellationen aus FPGA und Speicherstruktur funktioniert, soll das neue Tool FPGoAt entwickelt werden.
Ziel dieses Projektseminars ist es, einen Überblick über die vorhandenen Tools zur Modifikation von Speicherinhalten in Bitstreams, deren Möglichkeiten und Einschränkungen zu gewinnen. Dazu gehören etwa Rapidwright, das für den Microblaze Soft-Core angebotetene updatemem
und weitere. Das korrekte Verhalten des jeweiligen Tools soll mit einer Reihe an Beispielprojekten überprüft werden.
Aufbauend auf diesem Projektseminar soll im Rahmen einer Master-Arbeit die am besten geeignete Technik zur Manipulation des Bitstreams benutzt werden, um das Tool FPGoAt zu entwickeln. Dieses Tool soll somit die nachträgliche Aktualisierung von beliebigen Speicherinhalten ermöglichen (nicht nur für SpartanMC Systeme, sondern auch für weitere am Fachgebiet genutzte Anwendungen)
Dieses Projektseminar kann nur zusammen mit einer darauf aufbauenden Master-Arbeit bearbeitet werden.
Betreuer*in: Christoph Flothow
Frühester Beginn: sofort
Aktuell wird im Fachgebiet Rechnersysteme an einem Technology Mapping verfahren für FPGAs geforscht, dass auf Binary Decision Diagrams (BDDs) basiert. Bei Technology Mapping wird die gewünschte Funktionalität einer Schaltung - in Form einer Booleschen Beschreibung vorliegend - auf die Look-up Tables (LUTs) des FPGAs abgebildet. Mit dem Verfahren wurden schon einige gute Ergebnisse erreicht, aber vor allem größere Schaltungen sind problematisch, da die Größe von BDDs unter Umständen sehr schnell zunehmen kann.
Nun soll eine bereits existierende hoch optimierte BDD Bibliothek (CUDD, in C geschrieben) angepasst werden, um BLIF Dateien direkt einzulesen, und die Performanz mit dem aktuell verwendeten Framework verglichen werden. Insbesondere soll auch ausprobiert werden, ob einige große Dateien die bisher nicht eingelesen werden konnten mit dieser Bibliothek behandelt werden können.
Betreuer*in: Christoph Flothow
Frühester Beginn: sofort
Ein wichtiger Schritt der Logik Synthese ist das sogenannte Technology Mapping, bei dem die gewünschte Funktionalität - in Form einer Booleschen Beschreibung vorliegend - auf die Elemente der Zieltechnologie abgebildet werden. Bei FPGAs sind diese die Lookup Tables.
Es existieren diverse Verfahren, um das Technology Mapping durchzuführen. Das akademische Tool ABC verwendet eins, dass auf sogenannten "Priority Cuts" basiert. Dies ist ein heuristisches Verfahren, dass den Suchraum stark eingrenzt und daher sehr effizient ist, aber trotzdem sehr gute Ergebnisse erreicht. Die Güte der Ergebnisse, im Vergleich zu erschöpfender Suche, soll in dieser Arbeit betrachtet und ausgewertet werden.
Generelle Hinweise
Es werden grundsätzlich keine Arbeiten angeboten, für die ausschließlich Kenntnisse in der Programmiersprache Python eine ausreichende Grundlage an Programmiererfahrung darstellen.
Wenn Sie eines der Themen interessiert, es sich aber um die falsche Art der Arbeit handelt, können Sie trotzdem Kontakt mit dem/der Betreuer/in aufnehmen. Möglicherweise kann die Arbeit Ihren Bedürfnissen angepasst werden oder es findet sich ein ähnliches Thema.
Die hier aufgeführten Bachelor-Projektseminare werden nur an Studierende vergeben, die nicht Datentechnik (B.Sc. ETiT) vertiefen. Projektseminare werden häufig in einem ähnlichen Themenbereich wie die anschließende Bachelor-Arbeit absolviert. Daher können Sie bei der Suche nach einem Projektseminar auch nach den Themen für Bachelor-Arbeiten schauen.