Bachelor-Arbeiten
Student*in: Jakob Wenzel
Betreuer*in: Prof. Dr. Christian Hochberger / extern
Zeitraum: 15.10.2013 - 14.01.2014
Ziel der Arbeit ist es, auf einem vorhandenen FPGA-Board (Xilinx Spartan-6 mit DDR3 und USB-Verbindung zum PC) einen Logic-Analyzer mit folgenden Merkmalen zu implementieren:
- 32 Eingangskanäle, single ended
- wahlweise interner oder externer Takt
- 2 Clock-Eingänge
- programmierbarer Clock, Abtastung der Eingänge mit bis zu 1 GHz
- programmierbare Filterung der Eingangssignale
- Ringpuffer in internen Block-RAMs sowie in externem DDR3-Speicher
- einfache Trigger-Bedingungen / einfacher Trigger-Sequenzer
Student*in: Christian Rose
Betreuer*in: Changgong Li
Zeitraum: 05.08.2013 - 06.01.2014
Bisherige Arbeiten (www.amidar.de) haben gezeigt, dass ein deutliches Beschleunigungspotential für Applikationen im Bereich der eingebetteten Systeme besteht.
Ziel dieser Arbeit soll es sein, eine Floating-Point-ALU auf Basis des bestehenden Prozessormodells auf einem FPGA in Verilog zu implementieren. Die dadurch entstehende ALU soll dann alle Floating-Point-Operationen ausführen können, welche durch das AMIDAR-Modell definiert sind.
Student*in: Maximilian Flaig
Betreuer*in: Kris Heid
Zeitraum: 01.07.2014 - 30.09.2014
Es besteht bereits die Möglichkeit mehrere SpartanMC Kerne auf einem FPGA unter zu bringen und diese über einfache
send
und receive
funktionen kommunizieren zu lassen. Eine solche Kommunikation ist momentan allerdings nur möglich, wenn zwischen beiden Kernen eine direkte Verbindung besteht. Ziel der Arbeit ist die Unterstützung von Nachrichtenrouting. Mit Hilfe von Routing sollen alle Kerne unabhängig von der zugrunde liegenden Vernetzung miteinander Kommunizieren können.
Student*in: Gregor Koch
Betreuer*in: Prof. Dr. Christian Hochberger
Zeitraum: 02.12.2013 - 28.02.2014
Für diesen Mikrokontroller soll ein minimales Echtzeit-Betriebssystem entworfen werden, welches die folgenden Funktionen enthalten soll:
- Task-Verwaltung mit Prioritäten
- Semaphore als Synchronisationsmechanismus
- Einfache Speicherverwaltung
Student*in: Patrick Hentschel
Betreuer*in: Prof. Dr. Christian Hochberger
Zeitraum: 18.11.2013 - 17.02.2014
Im Rahmen dieser Arbeit soll der Befehlscode des SpartanMC optimiert werden. Durch Zuweisung verschiedener Binärmuster zu einzelnen Teilgruppen des Befehlssatzes soll die resultierende Decodierlogik im Prozessor minimiert werden. Gleichzeitig soll dabei natürlich nicht die maximale Taktfrequenz eingeschränkt werden.
Student*in: Andreas Ring
Betreuer*in: Kris Heid
Zeitraum: 01.01.2014 - 31.03.2014
Der SpartanMC wurde, wie der Name nahe legt, auf Spartan3 FPGAs von Xilinx entwickelt. Implementiert und eingesetzt wurde er bisher auch auf den FPGA-Familien Spartan6 und Virtex5. Grundsätzlich lässt sich der Prozessorkern aber auch auf beliebigen anderen FPGA-Familien (insbesondere auch von anderen FPGA-Herstellern) verwenden.
Ziel dieser Arbeit soll die Anpassung der SpartanMC- Verilog Quellen sein, um das SoC-Kit mit ALTERA FPGAs verwenden zu können. Hardware, die zur Zeit noch durch spezielle Xilinx-Primitive realisiert wird, muss entweder durch generischen Verilog-Code oder durch andere geeignete Primitive der ALTERA FPGAs ersetzt werden. Im Weiteren muss auch die Einbindung der ALTERA Synthese-Tools kontrolliert werden.
Als Plattform für die Portierung stehen DE0-Nano Boards mit Altera Cyclone IV FPGAs zur Verfügung.
Student*in: Marcel Jourdan
Betreuer*in: Changgong Li
Zeitraum: 23.10.2013 - 22.01.2014
Im Rahmen dieser Arbeit soll ein Tool entstehen, dass in einem bereits komplett gerouteten und platzierten FPGA-Design (Xilinx-Toolchain) des SpartanMC die BlockRAM-Inhalte gezielt austauschen kann, um ein verändertes Programm in den Bitstream zu schreiben.
Hierzu soll das XDL-Format verwendet werden. Dieses Format stellt eine textuelle Repräsentation des kompletten Designs dar und wird vom gleichnamigen Xilinx Tool (xdl) generiert. Ziel der Arbeit ist das Erstellen eines Tools, dass ein derartiges XDL-File einliest, und den darin enthaltenen BlockRAM-Instanzen neue Speicherinhalte zuordnet. Wichtig ist dabei insbesondere die korrekte Zuordnung der logischen BlockRAM-Instanzen auf HDL-Ebene zu den physikalischen Instanzen auf Chipebene.
Master-Arbeiten
Student*in: Philip Gottschling
Betreuer*in: Prof. Dr.-Ing. Christian Hochberger
Zeitraum: 16.06.2014 - 15.12.2014
Moderne Mikrocontroller können über Trace-Schnittstellen wie z.B. Nexus enorme Datenmengen an externe Beobachter weitergeben. Neben Instruktions- und partiell auch Daten-Traces stehen dabei auch abstraktere Informationen, wie z.B. Ownership (welcher Prozess wird gerade ausgeführt) oder sogar anwendungsgetriebene Nachrichten zur Verfügung.
Im Rahmen dieser Master-Arbeit soll ein Werkzeug entstehen, welches die Überprüfung solcher Nachrichten vereinfacht. Dazu soll eine formale Sprache zur Beschreibung einer Finite State Machine entworfen werden. Diese Beschreibung gliedert sich in einen strukturellen Teil und eine Beschreibung des Verhaltens.
Student*in: Alan Tanfer
Betreuer*in: Changgong Li
Zeitraum: 01.01.2014 - 30.06.2014
Ein effizientes Bus-System ist der Kernbestandteil des oben genannten Prozessor-Modells, da verschiedene Funktionseinheiten eines AMIDAR-Prozessors asynchron voneinander arbeiten und trotzdem riesige Informationsmengen (sowohl Befehle als auch Zwischendaten) miteinander austauschen können müssen. Hierbei kann jede Funktionseinheit gleichzeitig die Master- und Slave-Rolle einnehmen. Daher müssen in das Busprotokoll Mechanismen eingebaut werden, wie sie typischerweise in hoch performanten Multi-Master Bussen (PCI, AHB, CoreConnect) verwendet werden.
Ziel dieser Arbeit soll es sein, ein generisches Bus-Protokoll für das AMIDAR-Modell zu entwerfen und exemplarisch für einen Java-Prozessor in Verilog zu implementieren. Das dadurch entstehende Bus-System soll die Datenübertragung zwischen mehreren Funktionseinheiten möglichst effizient durchführen können (möglichst wenige Stalls).
Dafür sind die folgenden Eigenschaften des Systems gefordert:
- Multi-Master Fähigkeit des Protokolls und aller Infrastruktur-Komponenten
- Unterstützung von Burst-Übertragungen
- Möglichst "faire" Buszuteilung
- Dynamische Regulierung der Busbelastung durch Anhalten/Fortsetzen der Kommunikation zwischen zwei bestimmten Funktionseinheiten
- Unterstützung der Parametrierung der Anzahl und Bandbreite der einzusetzenden Busse
- Optionale Unterstützung der Fehlererkennung und Re-Transportierung der entsprechenden Daten
Student*in: Sheheryar Zahoor Qazi
Betreuer*in: Prof. Dr. Christian Hochberger
Zeitraum: 01.05.2014 - 30.09.2014
Das aktuelle SpartanMC SoC Kit unterstützt leider noch keine floating point Operationen. Diese Arbeit soll daher die Unterstützung für Gleitkomma Operationen bereitstellen. Die Unterstützung soll sowohl rein softwareseitig durch Übersetzung in unterstützte Befehle als auch hardwareseitig durch spezielle Peripherie gewährleistet werden.
Projektseminare Bachelor
Student*in: Roman Ness / Sebastian Fahnenschreiber
Betreuer*in: Lukas Jung
Zeitraum: 14.07.2014 - 19.09.2014
An der Professur Mikrorechner der TU Dresden wurde das Modell eines adaptiven Prozessors entwickelt, welches am Fachgebiet Rechnersysteme weiterentwickelt wird. Dieses Modell erlaubt es, dem Prozessor zur Laufzeit auf die spezifischen Anforderungen einer Applikation zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten.
Neu synthetisierte Funktionseinheiten werden auf ein Coarse Grained Reconfigurable Array (CGRA) abgebildet. Zur Vereinfachung des Debuggens solcher Funktionseinheiten soll eine grafische Oberfläche entwickelt werden, der entnommen werden kann, welche Daten in den jeweiligen Processing Elements (PE) des CGRA verarbeitet wurden. Außerdem soll ersichtlich sein, welche Daten im Speicher des CGRA abgelegt sind.
Student*in: Andrei Stefanov
Betreuer*in: Kris Heid
Zeitraum: 06.06.2014 - 07.06.2014
Es besteht bereits die Möglichkeit mehrere SpartanMC Kerne auf einem FPGA unterzubringen und diese über einfache
send
und receive
Funktionen kommunizieren zu lassen. Ziel des Seminars ist es dieses Interface zu erweitern um erweiterte Funktionen wie Gruppennachrichten etc. zu unterstützen.