Technische Universität München, Fakultät für Informatik
Lehrstuhl für Rechnertechnik und Rechnerorganisation / Parallelrechnerarchitektur

TGI - Assembler, VHDL



Übersicht der verfügbaren Informationen

Die Bewertung meiner TGI-Gruppen des Sommersemsters 20?? ist bereits abgeschlossen. Sollten Sie zu den Gruppen gehören, die sich bis jetzt nicht bei mir gemeldet haben, wenden Sie sich bitte an den Praktikumsleiter Herrn Piochacz.


Termine im Sommersemester 20??

Der Bearbeitungszeitraum der Aufgabe, der Abgabetermin für die Ausarbeitung sowie der Vortragstermin wird in der ersten Besprechung festgelegt. Spätestens zum zweiten Besprechungstermin sind unbedingt das Pflichtenheft und die Spezifikation mitzubringen. Diese Besprechungen finden im Raum --.--.--- statt. Falls Sie weitere Termine wünschen, vereinbaren Sie diese frühzeitig per email (schmiand@in.tum.de). Geben Sie dazu unbedingt die Gruppen- und die Projektnummer an. Erscheinen Sie pünktlich und vollzählig zu allen Terminen.

Erster, verbindlicher Besprechungstermin für alle Gruppen: gruppenspezifisch, versandt per email, --.--.---
Verfügbarkeit der Homepage, auf der zum Projektende die gesamte Ausarbeitung veröffentlicht wird: Wochentag, ??.??.20??, ??:00 Uhr
Verfügbarkeit des Pflichtenhefts (Veröffentlichung auf der Homepage): Wochentag, ??.??.20??, ??:00 Uhr
Verfügbarkeit der Spezifikation (Veröffentlichung auf der Homepage): Wochentag, ??.??.20??, ??:00 Uhr
Fertigstellung der Implementierung: Wochentag, ??.??.20??, ??:00 Uhr
Abgabetermin der Ausarbeitung: Wochentag, ??.??.20??, ??:00 Uhr


Vortragstermine:

  • Wochentag, ??.??.20??, ??:?? Uhr, Raum 01.06.020 (maximal noch ? Gruppen)
  • Wochentag, ??.??.20??, ??:?? Uhr, Raum 01.06.020 (maximal noch ? Gruppen)


Projektmanager

Aufgaben des Projektmanagers

  • Der Projektmanager organisiert Treffen und Termine und garantiert deren Einhaltung.
  • Er ist für die Kommunikation mit dem Betreuer verantwortlich.
  • Im Falle eines Gemeinschaftsprojektes ist der Projektmanager für die Koordination mit den anderen Gruppen zuständig.
  • Er erstellt Besprechungsprotokolle zu den projektinternen Treffen. Erfolgt die Kommunikation über email, so sind die entsprechenden emails als Besprechungsprotokolle anzusehen.
  • Sollten gruppenübergreifende Treffen notwendig sein, sind hierzu ebenfalls Besprechungsprotokolle anzufertigen.
  • Er erstellt eine Ablaufdokumentation des Projektfortgangs. Diese Ablaufdokumentation orientiert sich am Zeitplan der Gruppe, der im Pflichtenheft veröffentlicht wurde.
  • Er hält einen Abschlußvortrag von ca. 5 Minuten über den Projektverlauf und die aufgetretenen Probleme.

Ablaufdokumentation

Die Ablaufdokumentation, soll den genauen zeitlichen Ablauf der Arbeiten im Projekt wiedergeben. Die Besprechungsprotokolle sollen sowohl in einer chronologischen Liste wiedergegeben, als auch in der Ablaufdokumentation verlinkt werden. Die Besprechungsprotokolle und die Ablaufdokumentation müssen spätestens zum Vortragstermin vorliegen und sollen ebenfalls über die Homepage, auf der die Ausarbeitung zu finden ist, verfügbar gemacht werden.


Ausarbeitung

Unabhängig von der Ablage der Ausarbeitung auf dem TGI Server senden Sie mir bitte fristgerecht eine Referenz (Link) auf die Ausarbeitung per email zu. Vermerken Sie darin auch wer für die Ausarbeitung und den Vortrag verantwortlich ist (jeweils Name, Vorname, Matr. Nr). Die Ausarbeitung muß auf den Servern der Informatik vorliegen und über folgende Adresse erreichbar sein: http://home.in.tum.de/(kennung)/tgi. Links zu kommerziellen Anbietern (z.B. Strato, etc) werden nicht akzeptiert. Die Information wie Sie eine Homepage auf den Rechnern der Halle einrichten können finden Sie im Bereich "Rechenbetrieb" auf der Homepage der Informatik. Richten Sie bitte frühzeitig eine eigene Homepage ein, da dies (wie die Erfahrung zeigt) anscheinend immer wieder mit Problemen verbunden ist.

Inhalt des Pflichtenheftes

  • Aufgabenstellung (Gesamtaufgabe, Teilaufgabe der Gruppe)
  • Aufgabenverteilung innerhalb der Gruppe (Projektleiter, Vortrag, usw...)
  • Hilfsmittel (Literatur, Werkzeuge, usw...)
  • Black-Box-Sicht der Schaltung (Eingänge, Ausgänge, allg. Funktionsweise, usw...)
  • Detaillierte Zeitplanung in tabellarischer Form (Zeitrahmen, Aufteilung der Arbeit auf die Projektbearbeiter)
  • Aufstellung der von Ihnen zu liefernden Leistungen (Vertragsverpflichtungen)

Inhalt der Spezifikation

  • Detaillierte Schnittstellenbeschreibung (Welche Ein-/Ausgänge besitzt die Schaltung, Welche Aufgaben erfüllen diese, usw...)
  • Detailierte Beschreibung der Funktionalität (Welche Algorithmen, Wie wird implementiert und wieso diese Lösung, intern verwendete Signale/Variablen, evtl. Struktogramme oder Blockschaltbilder zur Veranschaulichung, usw...)
  • Alternativen (Welche anderen möglichen Implementierungen/Algorithmen/Ideen kämen in Frage, Wieso werden diese Wege nicht beschritten, usw...)
  • Behandlung von Fehlerfällen (Wie verhält sich das Programm bei auftretenden Fehlern wie z.B. ungültige Eingabe, Zahlbereichsüberschreitung, Division durch Null ? Soweit die Projektspezifikation nichts nähers festlegt, müssen die Fehlersituationen behandelt werden, die mit vertretbarem Aufwand abgefangen werden können. Z.B. sollte ein Unterprogramm einen Parameter, durch den dividiert wird, auf Null prüfen, ebenso eine Zeigervariable (Pointer) auf NULL. Im Zweifelsfall klären Sie den Umfang der nötigen Fehlerbehandlung mit Ihrem Betreuer.)
  • Wie soll das Programm getestet werden ? (Festlegung der Testumgebung, z.B. Rahmenprogramm, das das zu testende Unterprogramm aufruft. Definition von Testdatensätzen, die möglichst alle denkbaren Fälle abdecken.)

Inhalt der Ausarbeitung

  • Pflichtenheft (Original eingefügt)
  • Spezifikation (Original eingefügt)
  • Anwenderdokumentation (Genaue Dokumentation etwaiger Abweichungen und Ergänzungen bzgl. der Beschreibung in der Aufgabenstellung, Wie sind die Eingänge zu beschalten, Welche Ergebnisse erhalte ich, etc.)
  • Entwicklerdokumentation (Wie wurde letztendlich die Spezifikation umgesetzt, Probleme und Problemlösungen die durch die Spezifikation noch nicht abgedeckt wurden, Genaue Dokumentation des Quellcodes, usw...)
  • Testläufe (Genaue Beschreibung der durchgeführten Testläfe, bei VHDL: Waveforms der Signale)
  • Alle erzeugten Dateien in Originalform (bei VHDL: inklusive Testbenches)

Die oben angegebenen Punkte stellen jeweils die Minimalanforderungen dar. Der Inhalt des Pflichtenheftes und der Spezifikation soll natürlich von der Gruppe gemeinsam erstellt werden.


Vorträge

Die Vorträge finden im Raum 01.06.011 bzw. 01.06.020 statt (die gültige Raumnummer steht bei den oben angegebenen Vortragsterminen). Beide Vorträge zusammen (zur Ausarbeitung/Implementierung und zum Projektmanagement) sollen einen Zeitraum von 15 Minuten füllen, bei einer Aufteilung von 10 zu 5 Minuten. Es stehen ein Projektor für Folien und ein Beamer mit PC (PowerPoint) zur Verfügung.

Vortrag zur Implementierung (ca. 10 Minuten)

  • Vorstellung der Aufgabe
  • Funktionalität der Schaltung
  • Beschaltung der Eingänge
  • Implementierungsprobleme und Lösungen
  • Simulationsergebnisse

Vortrag zum Projektverlauf (ca. 5 Minuten)

  • Zeitplanung (Ursprüngliche Planung, evtl. Änderungen bei der Durchführung, usw...)
  • Gruppeninterne Probleme bei der Bearbeitung
  • Probleme mit der Aufgabe bzw. der Organisation


Beispiele

Assembler Beispiel

Hier ist der vollständige Quelltext einer Assemblerfunktion, die in ein C Programm eingebunden ist (function.asm, average.c und Makefile) und das gesamte Beispiel als Sample.tar Datei. Das Beispielprogramm bezieht sich auf die Kombination von nasm und gcc unter Linux (32Bit, ELF). Für einen ersten Testlauf des Beispielprogramms empfehle ich die Rechner der "athalle" (Vorsicht: nasm ist dort nicht installiert - Sie müssen eine eigene Installation in Ihrem Homeverzeichnis auf der "athalle" vornehmen.)

Achtung: Die Lösung der gestellten Assembleraufgabe mittels Inline-Assembler ist unzulässig. Sollten Sie dennoch Inline-Assembler verwenden, gilt die Aufgabe als nicht gelöst.

Achtung: Das oben angegebene Beispiel funktioniert auf den Opteron-Linux-Maschinen in der athalle leider nicht. Unter dieser Umgebung gibt es leider wegen der verwendeten 64Bit Architektur Probleme. Auf 32Bit Intel-Architekturen funktioniert das Beispiel einwandfrei. Ich versuche eine Lösung für dieses Problem zu finden, möchte aber dennoch alle Praktikanten bitten darauf nicht zu warten und die Aufgabe auf einer geeigneten 32Bit-Maschine anzugehen.

VHDL Beispiel

Zur besseren Verdeutlichung von VHDL hier eine Beispielaufgabe samt Lösung (beispielschaltung.pdf, beispielschaltung.vhd).


Beispiel-Dokumente

Die unten angegebenen Beispiele sind (bis auf persönliche Angaben) Originaldokumente von Gruppen die ich betreut habe. Das Pflichtenheft und die Spezifikation sind ziemlich ausführlich. Beim Pflichtenheft wäre noch eine graphische Darstellung der kompletten Schaltung und der Blackbox-Sicht schön gewesen. Die Beispiele sind dementsprechend als ein erster Anhaltspunkt zu sehen, wie Pflichtenheft und Spezifikation grundsätzlich aufgebaut sein sollen. Es sind z.B. auch im Zeitplan des Pflichtenhefts durchaus Abweichungen und/oder Ergänzungen möglich.
Die Ablaufdokumentation an sich könnte ausführlicher sein. Zumindest ungefähre Arbeitszeiten (z.B. an der Implementierung) sollten ersichtlich sein. Die Besprechungsprotokolle könnten ebenfalls etwas ausführlicher sein. Der email-Verkehr hingegen wurde gut dokumentiert.


Nützliche Links und Informationen

Allgemein:

Assembler: VHDL:



Zurück zur Homepage ©, Andreas C. Schmidt