Lehrveranstaltung Hardware Acceleration Using FPGAs
Wer entwirft den schnellsten Prozessor?
Ziel dieser Lehrveranstaltung ist ein eigener Prozessor auf Basis eines FPGA. Auf dem Weg dorthin kann fächerübergreifend erworbenes Wissen vertieft werden, indem unterschiedlichste Fragestellungen zu beantworten sind, unter anderem:
- Was passiert beim Übersetzen von Assemblercode in Maschinencode und wie findet man die verwendeten Symbole im resultierenden Maschinencode?
- Wie kann die Prozessorperformance gesteigert werden, ohne den Takt zu erhöhen?
- Wie kann Prozessorperformance gemessen werden und wie macht man sie vergleichbar?
- Welche Architekturerweiterungen eignen sich für das gegebene System bzw. scheiden von vornherein aus?
- Wie kann die Prozessorumgebung ausreichend detailgetreu modelliert werden?
- Wie sollte der VHDL Code gestaltet werden, um die gewünschten Hardwarestrukturen zu erzeugen?
Nachdem die Funktion des eigenen Prozessorentwurfs durch Simulation mit Hilfe vorgegebener und optional eigener Programme nachgewiesen worden ist, wird er mit Hilfe der zur Verfügung stehenden Umgebung auf das FPGA Prototyping System abgebildet, um die Ausführungszeiten im Vergleich zu den Entwürfen der Kommilitonen zu bewerten. Im Laufe des Semesters berichten die Studenten über den aktuellen Entwicklungsstand, um den Ideenaustausch zwischen den Arbeitsgruppen zu fördern. Am Ende der Lehrveranstaltung sollten Studenten in der Lage sein, ohne Hilfe eigene Entwürfe mit unterschiedlichsten, inzwischen z.T. frei verfügbaren Entwurfswerkzeugen zu realisieren.
Die Lehrveranstaltung Hardware Acceleration Using FPGAs, bestehend aus Vorlesung und Praktikum, beschäftigt sich in einem Semester mit dem praktischen Einsatz kommerzieller Entwurfstools. Aufbauend auf dem in den Lehrveranstaltungen Schaltkreisentwurf, Systementwurf und EDA-Tools erworbenen Wissen über Entwurf, Modellierung, Beschreibung und Synthese von komplexen Systemen mit Hilfe solcher Entwurfstools wird im Praktikum eine komplexe Entwurfsaufgabe behandelt. Die Vorlesung liefert das notwendige theoretische Hintergrundwissen über Tools und Algorithmen.
Vorlesungstermine
Mittwochs, 1. Woche, 15:30 bis 17:00 Uhr im Raum 2/W451.
V1 - Designflow
- Entwurfsetappen
- Systemumgebungen und Testbenches
V2 - VHDL für FPGA (1)
- FPGA-spezifisches VHDL
- Entwurfsattribute für FPGA
- Reset- und FSM-Behandlung
V3 - VHDL für FPGA (2)
- Makros: RAM, ROM, GSR-Block
- Tipps und Tricks
V4 - Synthese hierarchischer Systeme
- Partitionierung und Validierung
- Constraints und Script-Spezifika
V5 - XILINX ISE Foundation
- Design Flow
- Einführung in die P&R-Werkzeuge
- Analyse der Protokolle
V6 - Timinganalyse und Backannotation
- Timinginformation im Design Flow
- Backannotation-Simulation
V7+V8+ZS - Bearbeitung komplexer Entwurfsaufgaben + Spezielle Synthesestrategien bei großen hierarchischen Systemen + Zwischenseminar
- V7: Arbeit im Team, Projektkonsistenz
- V7: Verifikationsstrategien
- V8: Zeitplanung
- V8: Constraint-Abhängigkeiten, spezielle Script-Konstrukte
- ZS: Auswertung der bisherigen Praktikumsarbeit
- ZS: Analyse von Fehlern und Schwierigkeiten
Praktikumstermine
Mittwochs, 14-tägl. 2. Wo. in PZ, 15:30 bis 18:30 Uhr im Raum 2/W465.
P1 - Synthesegerechtes VHDL am Beispiel Design Analyzer
P2 - Einführung Tools
- Vorstellung Precision Synthesis, ModelSim, und Xilinx P&R-Tools
- Synthesegerechtes VHDL
- Design-Flow
- Script-Programmierung