Skip to main content.

Offene Bachelor- und Master-Arbeiten

Das Fachgebiet eingebettete Systeme und ihre Anwendungen bietet ein umfangreiches Spektrum von studentischen Arbeiten an. Die folgenden Kurzbeschreibungen aktueller Themen können dabei nur einen groben Überblick geben. Bei den meisten Arbeiten kann der Umfang je nach Art (Bachelor- oder Master) angepasst werden. Sprechen Sie uns bitte auch auf kurzfristige, hier noch nicht gezeigte Angebote an, wir werden uns bemühen, eine Ihren Neigungen entsprechende interessante Arbeit für Sie zu finden!

Vergebene Bachelor- und Master-Arbeiten

Einen Überblick über vergebene oder schon laufende Arbeiten soll die folgende Auswahl geben.

(vergeben) OpenCL-Implementierung einer Simulation von Fahrzeugbelastungen
Am Institut für Mechatronische Systeme im Maschinenbau (FB 16) werden neuartige Methoden zur Berechnung von Bauteilbelastungen im Fahrzeugen untersucht. Auf Basis der Berechnungsergebnisse werden während der Fahrzeugentwicklung passende Bauteile ausgewählt und ausgelegt. Die komplexen und rechenintensiven Zusammenhänge werden zurzeit zum Großteil in MATLAB/Simulink abgebildet. Ziel dieser Arbeit ist die Portierung der MATLAB Simulation in eine OpenCL-Architektur, die sowohl serverbasiert (CPU, GPU) als auch auf einem Hardware-Beschleuniger (FPGA) ausgeführt werden kann. Dabei soll die Ausführung der Simulation soweit wie möglich parallelisiert werden. Die Arbeit gliedert sich in folgende Teilaufgaben: Entwicklung einer OpenCL-Implementierung der in MATLAB vorgegebenen Algorithmen; Analyse und Parallelisierung des Berechnungsablaufs; Vergleich von funktionaler Korrektheit und Performanz zwischen der OpenCL und der MATLAB Implementierung auf einer CPU; Optional: Erste Tests mit FPGAs bzw. GPUs; Benötigte Kenntnisse: Sicherer Umgang mit MATLAB und C, Grundkenntnisse in OpenCL oder CUDA.
Ansprechpartner: Andreas Engel

(vergeben) Evaluation von AXI4 On-Chip Bussystemen für Speicherzugriffe
Moderne FPGAs verfügen über hunderttausende von Logikzellen und sind mit einer einzelnen Funktion kaum noch auszulasten. State-of-the-Art FPGA Designs bilden daher zunehmend ein ganzes System-on-Chip (SoC) ab, ein System mit zahlreichen verschiedenen Kernfunktionen, die durch Busse mit dem Speichersystem verbunden sind. Standardbusse auf Xilinx FPGAs basieren auf dem frei verfügbaren AMBA AXI4 Standard (ARM Corporation): Ein memory-mapped AXI4 Master-Interface kann wahlfreie Zugriffe auf Speicher ausführen, ist aber genauer betrachtet eigentlich kein Bus, sondern eine Punkt-zu-Punkt-Verbindung, die durch sogenannte "Interconnects" ad-hoc verschaltet wird. Wollen mehrere solche Master gleichzeitig auf Speicher zugreifen, entstehen Latenzen, die den Speicherdurchsatz reduzieren. Ziel dieser Arbeit ist es, solche Latenzen präzise zu quantifizieren. Es soll untersucht werden wie sich a) die Anzahl Master, b) die Burst Size und c) die Taktfrequenz auf den Speicherdurchsatz auswirken. Dazu erforderlich ist die Einarbeitung in den AXI4 Standard zur Entwicklung eines theoretischen Modells für eine best case und worst case Abschätzung. Anschließend soll dieses Modell praktisch validiert werden, indem Messungen auf realer Hardware durchgeführt werden. Dazu wird es notwendig sein, IP Cores für konfigurierbare Master zu entwickeln (vorzugsweise in Chisel oder Bluespec, aber Verilog oder VHDl sind ebenfalls möglich), um die verschiedenen Szenarien messen zu können. In der Fachgruppe existieren Vorarbeiten, die es ermöglichen die softwareseitigen Messungen aus einfachem C/C++ Code heraus anzusteuern. Abschließend sollen die Meßergebnisse grafisch aufbereitet und ausgewertet und die prognostische Qualität des theoretischen Modells evaluiert werden. Vorraussetzungen: solide Kenntnisse in C/C++ (bspw. aus GDI3), Grundkenntnisse Rechner- und Speicherarchitekturen (TGDI1/2), sicherer Umgang mit UNIX shells und make-basierten builds; Grundkenntnisse in Scala hilfreich, idealerweise bereits Erfahrung im Umgang mit der Vivado Design Suite und praktische Erfahrung mit FPGAs.
Ansprechpartner: Jens Korinth, Andreas Koch

(vergeben) Hardware-Beschleunigung eines optischen Systems zur Drahtdurchmesser-Bestimmung
Während der Produktion von (beschichteten) Drähten muss deren tatsächlicher Durchmesser laufend überwacht werden, um gewisse Qualitätsanforderungen zu garantieren. Dafür werden bspw. optische Systeme eingesetzt, welche Beugungsbilder mit Hilfe eines Charge Coupled Device (CCD) erfassen und dieses analysieren. Die Firma KJM setzt dafür bspw. ein Altera Cyclone III Field Programmable Gate Array (FPGA) ein. Während die Ansteuerung der Peripherie-Geräte (Sensor, Speicher, Display etc.) bereits durch entsprechende FPGA Hardware-Module realisiert wird, findet die eigentliche Datenanalyse noch in Software auf einem NIOS II Softcore Prozessor statt. Die mit diesem System realisierbaren Abtastraten sind durch die Ausführungsgeschwindigkeit der Datenanalyse auf wenige Hertz beschränkt, während der Sensor mehrere Kilohertz unterstützen würde. Im Rahmen einer Bachelorarbeit sollen daher als C-Programme vorgegebene Datenanalyse-Algorithmen mit der rekonfigurierbaren Logik des FPGAs beschleunigt werden. Im Einzelnen sind dabei folgende Aufgaben umzusetzen: Markt-/Literaturanalyse zu existierenden Algorithmen und Geräten für das Vermessen von Drahtdurchmessern; Auswahl aktueller Hardwarekomponenten (Sensoren und Recheneinheit), mit denen bestimmte Zielvorgaben bezüglich Genauigkeint und Wirtschaftlichkeit erfüllt werden können. Dafür ist insbesondere die Parallelisierbarkeit des Datenanalyse-Algorithmus zu bewerten; Aufsetzen von Simulationsmodellen, mit denen die Funktionsfähigkeit und Performanz der Durchmesserberechnung in Software und Hardware verifiziert werden kann; Implementierung des Datenanalyse-Algorithmus in VHDL/Verilog. Dafür können auch High-Level Synthesewerkzeuge eingesetzt werden; Evaluierung von Funktionsfähigkeit und Performanz der Hardware-beschleunigten Durchmesser-Bestimmung im Feldexperiment; Der Arbeitsfortschritt ist durch regelmäßiges Einpflegen der Quelldateien in ein Versionsverwaltungssystem (Git) nachzuweisen. Die Quelldateien müssen angemessen dokumentiert werden.
Ansprechpartner: Andreas Engel

(vergeben) Auswahl und Implementierung von CGRA-Makrooperationen
Ein Coarse Grain Reconfigurable Array (CGRA) besteht aus einer Menge von miteinander verbundenen Recheneinheiten, die jeweils mehrere (verschiedene) Operationen ausführen können. Damit werden Algorithmen auf Instruktionsebene parallelisiert und somit beschleunigt. Um ein CGRA zu programmieren, werden die Operationen des Datenflussgraphs (DFG) einer Anwendung von einem Scheduler auf die einzelnen Recheneinheiten abgebildet. Da der Datenaustausch zwischen den Operatoren mit einem gewissen (zeitlichen) Overhead verbunden ist, kann die Programmausführung durch das Zusammenfassen mehrerer Operationen beschleunigt werden. Die Implementierung solcher Makrooperationen ist aber nur für häufig verwendete Operatorkombinationen sinnvoll, da sie die Komplexität der Recheneinheiten vergrößern. Im Rahmen einer Bachelorarbeit sollen (Java) Werkzeuge für das anwendungsspezifische Erstellen von (Verilog) Makrooperationen entwickelt werden. Dafür sind folgende konkrete Aufgaben zu realisieren: Analyse von DFGs zur Identifikation häufig verwendeter Operator-Kombinationen; Modifikation von DFGs zum Ersetzen von Operator-Kombinationen durch Makrooperationen; Implementierung von Makrooperationen durch Verschmelzen der einzelnen Operator-Implementierungen. Dabei muss die Schnittstelle der Makrooperation durch Verkettung verschiedener Ein-/Ausgänge an die Vorgaben für Basisoperatoren (zwei Eingänge, ein Ausgang) angepasst werden; Manuelle Implementierung verschiedener Makrooperationen (bspw. FFT, FIR); Evaluation der Ausführungsbeschleunigung mit automatisch und manuell erstellten Makrooperationen für verschiedene (vorgegebene) Anwendungen. Der Arbeitsfortschritt ist durch regelmäßiges Einpflegen der Quelldateien in ein Versionsverwaltungssystem (Git) nachzuweisen. Die Quelldateien müssen angemessen dokumentiert werden.
Ansprechpartner: Andreas Engel

(vergeben) Auslagerung von FPGA Laufzeitdaten in nicht-volatilen Speicher
Um Field-Programmable Gate Arrays (FPGAs) effizient als eingebettete Systeme mit begrenztem Energie-Budget einzusetzen, müssen diese abgeschaltet werden, solange sie keine Daten verarbeiten. Manche FPGAs unterstützen zwar einen Schlafmodus mit reduzierter Leistungsaufnahme, im Vergleich zu modernen Mikrocontrollern benötigen diese dann aber immer noch etwa die 100-fache Leistung, um die Daten in ihren verteilten SRAMs zu halten. Oftmals ist aber nur ein kleiner Teil dieser Daten (bspw. aggregierte Messwerte) für den weiteren Betrieb des FPGAs nach dem Aufwachen notwendig. Wenn man diese in einen nicht-volatilen Speicher (NVM) außerhalb des FPGAs auslagert, dann kann man das FPGA auch vollständig abschalten. Da das Auslagern (und spätere wieder Einlesen) der Laufzeitdaten zusätzliche Energie benötigt, lohnt sich dieser Swapping-Mechanismus erst ab einer bestimmten Schlafdauer, die unter anderem abhängig von der Menge der relevanten Laufzeitdaten ist. Im Rahmen einer Bachelorarbeit soll dieser Trade-off analysiert werden. Dafür sind folgende konkrete Aufgaben zu realisieren: Analyse und Vergleich verschiedener NVM-Typen (bspw. Flash, FRAM, PCM); Theoretische Analyse der minimalen notwendigen Schlafzeit für verschiedene FPGAs und NVMs; Analyse verschiedener WSN- und IoT-Anwendungen bezüglich auszulagernder Datenmenge und typischer Schlafdauer; Auswahl des für das Auslagern von Laufzeitvariablen am besten geeigneten NVM-Typs; Prototypische Implementierung eines NVM-Boards, das neben dem Speicher auch durch einen Mikrocontroller (MCU) steuerbare Schalter zum Unterbrechen der Spannungsversorgung von FPGA und NVM sowie Abgriffe zum Messen der Leistungsaufnahme bereit stellt; HDL-Implementierung (VHDL oder Verilog) zur Ansteuerung des NVM durch das FPGA. Diese sollte möglichst generisch (FPGA- und Anwendungs-unabhängig) und effizient sein. So sollten keine Daten ausgelagert werden, die sich seit dem letzten Aufwachen nicht geändert haben; Validierung der minimal notwendigen Schlafzeit für ein Microsemi IGLOO FPGA durch Leistungsmessungen am NVM-Board mit und ohne Auslagerung von Laufzeitdaten. Der Arbeitsfortschritt ist durch regelmäßiges Einpflegen der Quelldateien in ein Versionsverwaltungssystem (Git) nachzuweisen. Die Quelldateien müssen angemessen dokumentiert werden.
Ansprechpartner: Andreas Engel

(vergeben) Charakterisierung von hochdynamischen Leistungsverbrauchern
Eingebettete Systeme können sehr schnell zwischen verschiedenen Betriebsmodi (Schlafen, Daten erfassen, Berechnen, Kommunizieren) wechseln. Damit kann sich aber auch deren Leistungsaufnahme innerhalb weniger Mikrosekunden um etwa 10 Größenordnungen (1 µW ... 10 W) ändern. Viele Systeme arbeiten außerdem mit mehreren Versorgungsspannungen (bspw. für Rechenkern und Peripherie), die über einen längeren Zeitraum synchron beobachtet werden müssen, um die Energieeffizienz des Gesamtsystems bewerten zu können. Diese Anforderungen (hohe Dynamik, lange Messdauer, mehrere Kanäle) werden von den meisten Allzweck-Messgeräten (Multimeter, Oszilloskop) nicht ausreichend erfüllt. Ziel dieser Arbeit ist daher der Entwurf und die Realisierung eines spezialisierten Messsystems zum mehrkanaligen Erfassen von Strom- und Spannungsverläufen mit hoher Präzision und langer Messdauer. Die Basis dieses Systems bildet ein Field-Programmable Gate Array (FPGA), welches einen Vorverstärker (G) je Verbraucher steuert, um die aktuelle Stromaufnahme dieses Verbrauchers in einen per Analog-/Digitalwandler (ADC) erfassbaren Spannungsbereich zu konvertieren. Jeder Verbraucher signalisiert dem Messsystem Start und Ende des relevanten Messzeitraum über ein active Signal. Die erfassten Daten werden gepuffert und blockweise über eine Ethernet-Schnittstelle (IEEE 802.3) an einen PC für die weitere Verarbeitung bzw. langfristige Speicherung gesendet. Folgende konkrete Aufgaben sind für eine Masterarbeit zu realisieren: Auswahl einer passenden steuerbaren Verstärkerschaltung (bspw. mit Operationsverstärker, Widerstandsnetzwerk) für Versorgungsspannungen bis 12 V; Auswahl von ADC und FPGA; Entwurf und Realisierung einer PCB-Schaltung für 4 Verbraucher inklusive Spannungsversorgung und Konfigurations-/Kommunikationsschnittstellen für das FPGA; Beschreibung der Hardwaremodule (Verilog oder VHDL) zur Ansteuerung der Verstärker, der ADCs und der Ethernet-Schnittstelle; Integration von Kalibrierungsmechanismen; Implementierung einer PC-Software zum Abfragen und Speichern der Messdaten über die Ethernet-Schnittstelle; Evaluation der Messgenauigket. Der Arbeitsfortschritt ist durch regelmäßiges Einpflegen der Quelldateien in ein Versionsverwaltungssystem (Git) nachzuweisen. Die Quelldateien müssen angemessen dokumentiert werden.
Ansprechpartner: Andreas Engel

(vergeben) Untersuchung und Auswertung von Benchmark-Sammlungen für die Hardware-Synthese (BA)
Während es für gewöhnliche Prozessorarchitekturen und eingebettete Systeme weit verbreitete Benchmark Suites mit einer Vielzahl detailliert charakterisierter Testfälle gibt, die es ermöglichen, Compiler für solche Systeme fair zu vergleichen, existieren nur wenige, kleine Suites, die sich für die High-Level Synthese (HLS), also die Übersetzung von C/C++ Code in verhaltensäquivalente Hardware, eignen. Da mittlerweile jedoch eine große Zahl solcher HLS Compiler existiert (bspw. Nymble, LegUp, Vivado HLS, ROCCC, uvm.), besteht erheblicher Bedarf an einer geeigneten Benchmark Suite, um die stark heterogenen Ansätze der verschiedenen Tools fair vergleichen zu können. Dazu sollen in dieser Arbeit existierende Benchmark Suites detailliert untersucht werden. Neben üblichen Eigenschaften wie räumlicher und zeitlicher Lokalität soll insbesondere herausgearbeitet werden, wie gut der Quelltext für HLS Compiler geeignet ist (die üblicherweise nur eine Untermenge von C/C++ unterstützen), welche HLS-spezifischen Schwierigkeiten sich in den einzelnen Testfällen ergeben, sowie ein Profiling durchgeführt werden, dass die computational hotspots identifiziert. Dabei sollen selbstständig aktuelle Analysetools (wie bspw. WIICA) recherchiert und verwendet werden. Voraussetzungen: solide Kenntnisse in C/C++ (bspw. aus GDI3), Grundkenntnisse Rechner- und Speicherarchitekturen (TGDI1/2), sicherer Umgang mit UNIX shells und make-basierten builds; idealerweise Grundkenntnisse HLS (bspw. Vivado HLS).
Ansprechpartner: Jens Korinth, Andreas Koch

(vergeben) Hardwarebeschleunigung von Echtzeitbetriebssystemen (BA/MA)
Echtzeitbetriebssysteme (RTOS) koordinieren die Ausführung nebenläufiger Prozesse, synchronisieren deren Zugriff auf gemeinsam genutzte Ressourcen und organisieren die Interprozesskommunikation. Die Verwaltung der dafür benötigten Listen erhöht den Bedarf an Rechenzeit, Programm- und Datenspeicher, was insbesondere bei den ressourcenbeschränkten Mikrocontrollern (MCU) kleiner eingebetteter Systeme zu Engpässen führen kann. Bei der am FG ESA entwickelten heterogenen Sensorplattform wird die MCU durch eine rekonfigurierbare Recheneinheit (RCU) in Form eines FGPAs zur Beschleunigung anwendungsspezifischer Aufgaben unterstützt. Diese Architektur soll nun auch zur Beschleunigung essenzieller Bestandteile von freeRTOS verwendet werden. Dazu wird freeRTOS unter Verwendung der SDCC-Toolchain auf zwei verschiedene 8051-MCUs (TI CC2530 und Microsemi Core8051) portiert. Danach wird die Ausführungszeit und der Kommunikationsaufwand typischer RTOS-Funktionen (Scheduling, Taskwechsel, Semaphore, ...) ermittelt, um anschließend ausgewählte RTOS-Funktionen (mit langer Ausführungszeit und geringer Kommunikationsbandbreite) durch das FPGA zu beschleunigen. Abschließend wird die Performanz der unbeschleunigten Systeme mit den beschleunigten Varianten verglichen. Für diese Arbeit werden belastbare Kenntnisse in C und VHDL oder Verilog vorrausgesetzt.
Ansprechpartner: Andreas Engel

(vergeben) Entwurf, Fertigung und Evaluation einer Hardware-beschleunigten Reglerplattform (BA/MA)
Die zentralen Aufgaben eines Regelkreises sind die Erfassung von Ist-Größen, deren Vergleich mit Soll-Größen und die Berechnung von zur Reduktion der Regelabweichung geeigneten Stellgrößen. Zur Realisierung von Reglerplattformen werden häufig Digitale Signalprozessoren (DSPs) verwendet, da diese wichtige Berechnungsschritte parallel ausführen können. Neben der reinen Berechnung lassen sich aber häufig auch Sensorik und Aktorik gut parallelisieren, weshalb FPGAs eine sinnvolle Alternative zu DSPs sein können. Ziel dieser Arbeit ist daher der Entwurf einer Reglerplattform, deren zentrales Element ein Spartan-6 FPGA ist. Daneben sind Kommunikations- und Konfigurationsschnittstellen, Datenspeicher und Datenkonvertierungsmodule sowie Spannungswandler zu integrieren. Die analoge Signalaufbereitung ist hingegen nicht Teil der Arbeit. Zur PCB-Umsetzung der entworfenen Plattform wird der Altium Designer verwendet. Eine als Matlab-Modell vorgegebenen Regler-Anwendung ist dann sowohl auf der entwickelten FPGA-basierten Reglerplattform als auch auf einer bereits vorhandenen DSP-basierten Referenzplattform umzusetzen. Abschließend sollen Vorteile des FPGAs gegenüber dem DSP nachgewiesen (oder widerlegt) werden. Für diese Arbeit werden belastare Kentnisse in C sowie VHDL oder Verilog benötigt. Grundkenntnisse in Matlab und Elektrotechnik sind hilfreich.
Ansprechpartner: Andreas Engel

(vergeben) Steuerung für einen Piezomotor (BA/MA)
Am Institut für Elektromechanische Konstruktionen (EMK, FB 18) werden Servomotoren mittels Piezoaktoren betrieben. Die dazu notwendige Regelungselektronik umfasst das Auslesen und Auswerten von Sensoren (aktuelle Drehzahl und Drehmoment), das Empfangen von Benutzereingaben (Zielwerte für Drehzahl und Drehmoment), das Berechnen einer Ist-Soll Regelung für Drehzahl und Drehmoment sowie das Ansteuern der Aktoren. Ziel dieser Arbeit ist die FPGA-basierte Realisierung einer solchen Regelungselektronik. Dabei kann auf Vorarbeiten zur Sensorauswertung (in Form eines LabVIEW-Modells) und zur Aktoransteuerung (Modulierung von Sinussignalen) aufgebaut werden. Die eigentliche Regelung soll als Matlab oder LabVIEW-Modell entworfen und mit Werkzeugen der High-Level-Synthese für die Hardware aufbereitet werden. Benötigte Grundkenntnisse sind Grundlagen der Regelungstechnik und der FPGA Programmierung.
Ansprechpartner: Andreas Engel

(vergeben) Portierung von Linux und Speicherschnittstelle auf eine neue rekonfigurierbare Rechnerplattform (MA/2xBA)
Das Fachgebiet ESA hat in den letzten Jahren erfolgreich rekonfigurierbare adaptive Rechner auf Basis von IBM PowerPC-Prozessoren aufgebaut und unter einer speziell angepassten Linux-Version betrieben. Da diese PowerPC-CPUs auf neueren FPGAs nicht mehr zur Verfügung stehen, sollen die Modifikationen auf die portablen MicroBlaze-CPUs portiert werden. Diese können, als sogenannte Soft-Cores, automatisch auf aktuelle und zukünftige FPGAs realisiert werden. In der Arbeit soll es zum einen um die Integration der PowerPC-Patches des FG ESA in einen bestehenden Linux-Kernel für die MicroBlaze-CPU gehen, zum anderen muß die Schnitstelle des Speichersystems vom IBM CoreConnect-Protokoll auf das neuere ARM AXI4-Protokoll umgestellt werden. Ersteres erfordert Kenntnisse in systemnaher C- und Assemblerprogrammierung, letzteres Kenntnisse des Hardware-Entwurfs in Verilog/VHDL. Die Gesamtaufgabe kann entweder als eine Master-Arbeit, oder, in die Linux/Speicherteile getrennt, als zwei Bachelor-Arbeiten durchgeführt werden.
Ansprechpartner: Thorsten Wink

(Vergeben) Entwurf einer direkten Speicherschnittstelle für den OpenSPARC T1 Multicore-Prozessor (MA)
Der Oracle (ehemals Sun) UltraSPARC T1 Prozessor hat 4-8 parallele Prozessorkerne, auf denen jeweils vier Threads gleichzeitig ablaufen können. Als einer der wenigen industriellen Prozessoren liegt er im Rahmen der OpenSPARC-Initiative komplett als Verilog-Quellcode vor. Dieser läßt sich zu Forschungszwecken auch auf FPGAs abbilden. Allerdings wurde in der von OpenSPARC vorgeschlagenen FPGA-Lösung aus Platzgründen das Speicherprotokoll durch Software emuliert. Ein Vorgehen, das zu mehrstündigen Boot-Zeiten des Systems führt und in Anbetracht von wachsenden FPGA-Größen nicht mehr zeitgemäß ist. In dieser Master-Arbeit soll daher die Software-Emulation durch eine echte Hardware-Schnitstelle ersetzt werden. Dabei kann auf Vorarbeiten des FG ESA zu Speichersystemen zugegriffen werden, die nun mit dem internen Speicherprotokoll des T1 Prozessors verknüpft werden müssen. Die Master-Arbeit erfordert belastbare Kenntnisse des Hardware-Entwurfs in Verilog. Weiterführende Informationen, einschliesslich von Vortragsaufzeichungen zur Prozessorarchitektur, finden sich hier. Ein verwandtes Projekt, dessen Ergebnisse auch einbezogen werden könnten, wird hier diskutiert.
Ansprechpartner: Thorsten Wink

(Vergeben) Emulation der Nintendo Entertainment System-Architektur auf einem FPGA (BA/MA)
Bei dieser Arbeit Arbeit aus dem Bereich des Retro-Computing soll die Architektur der Videospielkonsole Nintendo Entertainment System (1983-1995) auf einem FPGA nachgebildet werden. Für viele Basiskomponenten (z.B. den Prozessor) existieren dazu schon fertige IP-Blöcke. Einige Peripherieschnittstellen sollen dabei aber modernisiert werden (z.B. Einsatz von HDMI und USB). Vorkenntnisse für diese Arbeit sind Hardware Entwurf mit VHDL oder Verilog sowie Systemprogrammierung (Assembler).
Ansprechpartner: Benjamin Thielmann

(Vergeben) Hardware-beschleunigte String-Suche mit regulären Ausdrücken (BA/MA)
Für Netzwerksicherheitsanwendungen (z.B. Intrusion Detection/Prevention-Systeme) ist es erforderlich, auch den Inhalt der übertragenen Datenpakete auf bestimmte Suchmuster hin zu untersuchen (z.B. eine Virensignatur). Die Suchmuster selbst werden dabei häufig durch reguläre Ausdrücke beschrieben. Um auch mit den hohen Durchsatzanforderungen aktueller und zukünftiger Datennetze (10 Gb/s, 40 Gb/s, 100 Gb/s) mitzuhalten, soll im Rahmen der Arbeit ein Software-Werkzeug in Java realisiert werden, das für reguläre Ausdrücke die genau passenden Sucheinheiten als Hardware-Modelle in VHDL oder Verilog erzeugt. Sie sollten daher Kenntnisse sowohl in Java als auch im Hardware-Entwurf mit VHDL/Verilog haben.
Ansprechpartner: Sascha Mühlbach

(Vergeben) Hardware-beschleunigte Entschlüsselung für SSL-verschlüsselten Datenverkehr (MA)
Innerhalb einer Server-Infrastruktur kann es sinnvoll sein, den für die Weitverkehrsübertragung mit SSL verschlüsselten Datenverkehr zu entschlüsseln, um z.B. bestimmte Firewall- oder Intrusion Detection/Prevention-Funktionen zu realisieren. Dazu soll im Rahmen der Arbeit ein Hardware-Block in Verilog oder VHDL erstellt werden, der mittels eines vorgegebenen Server-Zertifikats aus dem SSL-Datenstrom den Session Key extrahiert und daraus den restlichen Datenstrom entschlüsselt. Dabei kann auf bereits existierende Krypto-Blöcke z.B. für RSA oder AES zugegriffen werden. Für diese Arbeit sollten Vorkenntnisse in Kryptographie und im Hardware-Entwurf mit VHDL oder Verilog vorhanden sein.
Ansprechpartner: Sascha Mühlbach

(Vergeben) Datenkompression für drahtlose Sensorknoten (BA/MA)
Drahtlose Sensorknoten (wireless sensor nodes, WSN) haben oftmals nur ein kleines Energiebudget zur Verfügung (gespeist z.B. aus Solarzellen, Vibrationen, Temperaturdifferenzen), das durch das Einschalten der Funkkommunikation stark belastet wird. In dieser Arbeit soll überprüft werden, inwieweit es energetisch sinnvoll ist, zu übertragende Daten auf der WSN vor dem Versenden vorzukomprimieren (was ja auch wieder Energie benötigt). Dazu sollen verschiedene adaptive Datenkompressionsverfahren sowohl auf dem 8b-Mikrocontroller der WSN in Software, als auch als dedizierte Hardware-Blöcke implementiert und evaluiert werden. Hierzu sind Kenntnisse der C- und ggf. Assembler-Programmierung sowie im Hardware-Entwurf mit Verilog oder VHDL erforderlich.
Ansprechpartner: Andreas Engel

(Vergeben) Aufbau einer Bibliothek von hardware-synthetisierbaren MATLAB Simulink-Blöcken (BA/MA)
MATLAB Simulink ist ein gängiges Werkzeug zur Entwicklung von Algorithmen der digitalen Signalverarbeitung. Es bietet sich an, die fertigen Algorithmen hocheffizient in Hardware-Recheneinheiten auf FPGAs zu realisieren. Zu diesem Zweck existieren bereits eine Reihe von industriellen Entwurfswerkzeugen. Diese erfordern aber oftmals das manuelle Ersetzen der generischen Simulink-Blöcke durch die vom Werkzeughersteller bereitgestellte Hardware-abbildbare Version. In dieser Bachelor-Arbeit soll eine Bibliothek von Hardware-Blöcken entstehen, die direkt zu den generischen SIMULINK-Blöcken kompatibel sind und so leicht automatisch ausgetauscht werden können. Für diese Arbeit, die je nach Anzahl der erstellen Blöcke als Bachelor- oder Master-Arbeit durchgeführt werden kann, sind Kenntnisse in MATLAB Simulink sowie wie im Hardware-Entwurf mit Verilog oder VHDL erforderlich.
Ansprechpartner: Björn Liebig

Adaptive Regelung aktiver Hilfsrahmenlager auf einem FPGA (BA/MA)
Im Rahmen einer Zusammenarbeit am LOEWE-Zentrum in Kranichstein soll eine dort entwickelte aktive, d.h. elektronisch geregelte Lagerung eines PKW-Hilfsrahmens auf einem FPGA umgesetzt werden. Die Regelungshardware kann dazu mit verschiedenen Verfahren der High-Level Synthese erzeugt werden. Zusätzlich zur Regelung sollen auch die Verbindungen zur Außenwelt implementiert werden, so dass am Ende ein geeignetes FPGA-Board den Platz des derzeit im Versuchsfahrzeug eingesetzten i7 einnehmen kann. Abschließend soll der Energieverbrauch von FPGA und i7 verglichen werden. Im Falle einer Diplom- oder Masterarbeit soll außerdem noch eine handoptimierte Version der Regelungshardware erstellt und vermessen werden.
Ansprechpartner: Björn Liebig

(Vergeben) Taktgenauer Simulator für den VLIW-Ausbildungsprozessor VEX (BA/MA)
Der einfache VLIW-Prozessor VEX wird am FG ESA beispielsweise in der Vorlesung Prozessorarchitekturen für rechenstarke eingebettete Systeme diskutiert. Zwar gibt es schon eine Reihe von Werkzeugen (C Compiler, Assembler), aber der bisher eingesetzte Compiled-Code Simulator beachtet nicht zyklengenau die Datenabhängigkeiten zwischen Operanden und Ergebnissen. Um diesem Umstand abzuhelfen, soll in der ausgeschriebenen Arbeit ein zyklengenauer Simulator entstehen, der VEX-Assemblerprogramme auch in Bezug auf das Timing korrekt ausführt. Dabei können je nach Neigung der Bearbeiterin/des Bearbeiters die unterschiedlichsten Techniken zum Einsatz kommen. Denkbar sind ein in Java verfasster Interpreter ebenso wie in Verilog/VHDL oder SystemC verfasste parallele Maschinenmodelle. Für die Arbeit sind Programmierkenntnisse in der gewählten Implementierungssprache und der erfolgreiche Besuch der o.g. Vorlesung erforderlich.
Ansprechpartner: Andreas Koch