2014

Bachelor-Arbeiten

Student*in: Jakob Wenzel
Betreuer*in: Prof. Dr. Christian Hochberger / extern
Zeitraum: 15.10.2013 - 14.01.2014

FPGAs sind heute in der Lage, externe digitale Signale mit sehr hoher Abtastrate zu erfassen. Zusätzlich enthalten moderne FPGAs auch noch DRAM-Kontroller, die in der Lage sind, die abgetasteten Signale mit hoher Bandbreite abzuspeichern. Somit hat man alle Zutaten beisammen, die für einen Low-Cost Logic Analyzer gebraucht werden.
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
Die Arbeiten sind in Verilog auszuführen, optional kann eine Visualisierung hinzugenommen werden (am besten in Java, da plattformunabhängig).

Student*in: Christian Rose
Betreuer*in: Changgong Li
Zeitraum: 05.08.2013 - 06.01.2014

Am Fachgebiet Rechnersysteme wird an adaptiven Prozessorstrukturen geforscht. Die Familie der AMIDAR Prozessoren basiert dabei auf einem Modell, welches an der Professur Mikrorechner der TU Dresden entwickelt wurde. Dieses Modell erlaubt es dem Prozessor zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten.
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

Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
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

Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
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
Gegebenenfalls müssen hierfür auch noch Änderungen an der Hardware des Prozessorkerns durchgeführt werden.

Student*in: Patrick Hentschel
Betreuer*in: Prof. Dr. Christian Hochberger
Zeitraum: 18.11.2013 - 17.02.2014

Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
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

Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
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

Der SpartanMC ist ein an der TU Dresden / Professur für Mikrorechner entwickelter CPU-Core, der speziell für die Verwendung in FPGAs zugeschnitten ist. Aufgrund dieser Zielplattform nutzt der SpartanMC eine Befehls- und Datenbreite von 18 Bit, welche die Strukturen aktueller FPGAs optimal ausnutzt.
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

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.
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

Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
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

Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
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.