ContactProjectsTeachingLRRTUM Info

Leitfaden zum

TGI Praktikum

Daniel Stodden <stodden@cs.tum.edu>

Welcome

Diese Seite ist notoroisch im Aufbau befindlich und wird gelegentlich noch erweitert oder ergänzt. (So taucht zur Zeit immer mal wieder ein neues Tool für VHDL auf.) Sie beschreibt Ergänzungen und Details, die die Durchführung des TGI-Praktikums erleichtern sollen.

Letzte Instanz bleibt eigentlich die TGI-Praktikumsordnung, die hier nur an den Stellen, an denen es notwendig ist, ergänzt werden soll.

Von Max Walter gab es mal ein ähnliches Dokument, mit Schwerpunkt Mikroprogrammierung. Leider existiert diese Seite nicht mehr. Somit pflege ich meine eigene Version.

Wir behalten den Link trotzdem in guter Erinnerung. Vor allem Max, der eigentlich wissen sollte, daß man sowas nicht macht.

Auch diese Seite geht derzeit häufig noch vom Mikroprogrammierpraktikum aus, da es sich um den von mir am häufigsten betreuten Teilbereich handelt. Jedoch läßt sich Die Mehrheit der Hinweise lässt leicht auch auf andere Bereiche übertragen. Erst seit dem SS06 betreue ich auch VHDL, dementsprechend wird ein Teil der Informationen hier – nach und nach – für das VHDL-Praktikum ergänzt.

Viel Spaß bei Entwickeln,

Daniel

Inhalt

Valid XHTML 1.1!

Hinweise zur Organisation

Vorbesprechung

Eine zentrale Vorbesprechung für alle Teilnehmer ist nicht nötig. Ihr müsst euch also zu Beginn nicht unbedingt persönlich bei mir vorstellen, obwohl ich natürlich nichts dagegen habe. Ihr schickt schickt mir nach und nach Ergebnisse und ich korrigiere bzw. hake das dann ab.

Termine

Im Prinzip lässt sich das Praktikum durchführen, ohne das wir uns vor dem Vortragstermin auch nur einmal persönlich getroffen haben. Das bedeutet nicht das unbedingt der Fall sein soll. Nur das es von meiner Seite eben nicht zwingend vorausgesetzt wird, daß ihr zu mir zu einer Vorbesprechung kommt.

Ich bin nicht ständig im Hause. Wer eine individuelle Besprechung wünscht, sollte einen Termin per Mail mit mir ausmachen. Wer schon vor Ort ist und nicht warten möchte, kann es auch gerne ohne Termin versuchen. Wenn ich nicht direkt am Platz bin, fragt in den Nachbarräumen nach.

Support

Unterstützung bei der Lösung der Praktikumsaufgaben gibt es erster Linie durch die TGI-Tutoren. Wenn Probleme oder Fragen auftauchen, die nicht zusammen mit den dortigen Betreuern beseitigt werden können, helfe ich natürlich gern.

Abgabe

Das ist ein wichtiger Punkt: Abgabe aller eurer Produkte erfolgt indirekt, und zwar durch eure Projektseite, die laut Praktikumsordnung für die Projektdokumentation erstellt werden muß. Das bedeutet, daß keine Dokumente egal in welchem Format, per Mail bei mir abgeliefert werden sollten. Grundsätzliches dazu im Abschnitt Dokumentation.

Deadlines

Deadline für die Beendigung des Praktikums ist das Ende des Semesters. Von meiner Seite aus gibt es sonst keine Fristen die ich bestimme. Vielmehr wird der von euch anvisierte zeitliche Rahmen im Pflichtenheft festgelegt. Es werden also durchaus Fristen benötigt, diese können aber bevorzugt durch euch bestimmt werden.

Präsentation

Die Durchführung des Praktikums endet von auch aus gesehen mit dem Präsentationstermin.

Wie bei allen anderen Abgabefristen gibt keine festen Präsentationstermine. Der Vortragstermin wird gemeinsam bestimmt, und orientiert sich zunächst am Zeitpunkt der Fertigstellung durch euch. In der Regel habt ihr auch nach Abgabe der Dokumentation noch ca. 2 Wochen bis zum Präsentationstermin. Ich fasse in der Regel 2-4 Gruppen in einem Treffen zusammen. Gelegentlich werden auch gemeinsame Termine mit anderen Praktikumsgebieten und -betreuern organisiert, falls es die Raumbelegung oder zeitliche Umstände verlangen.

Mehr Hinweise zur Präsentation findet ihr im Abschnitt Vortrag.

Anschriften

Meine Raumnummer, Telefonnummer, usw. finden sich hier.

Die Vorträge zum Praktikumsende finden in der Regel in Raum 01.06.20 statt.

Scheine und Laufkarten

Die Laufkarten dienen dazu, eure regelgerechte Praktikumsteilnahme unabhängig von der Notenübermittlung durch mich noch einmal belegen zu können. Ihr braucht darauf eine Unterschrift von mir. Diese bekommt ihr sobald ich die Dokumentation eingesehen und den Vortrag abgenommen habe. In der Regel ist das gleich nach dem Vortragstermin. Denkt daher bitte daran, die Karten alle zum Vortrag mitzubringen.

Wenn euer Schein erstellt worden ist, werdet ihr von der Praktikumsleitung per Mail benachrichtigt. Die Scheinerstellung erfolgt nicht direkt durch mich. Ich vergebe nur die Noten. Normalerweise sind die Noten direkt nach der Präsentation verfügbar. Bis der Schein gedruckt und unterschrieben ist, dauert es in der Regel ein paar Tage länger.

Mehr Informationen hierzu auf den Seiten der TGI-Verwaltung.

Werkzeuge

VHDL

VHDL ist ein Sprachstandard, mit dem man bei der Wahl der Tools prinzipiell die Wahl zwischen einer Vielzahl unterschiedlicher Hersteller hat.

Angesichts der Komplexität der meisten ernstzunehmenden Lösungen, fällt die Wahl gerade im Hinblick auf die Praktikumsdurchführung nicht immer leicht. In der Regel gilt: Weniger ist meistens mehr.

Das Problem ist, daß wir VHDL lediglich lehren, um Stundenten zumindest ein Gefühl für Rechnerarchitektur auf Ebene der Schaltungslogik zu vermitteln. Die Mehrheit der Werkzeuge werden allerdings eher dafür gebaut, reale Schaltungen zu entwerfen und auch zu implementieren. Zwischen den zwei Anliegen liegen leicht einige 10.000 € Anschaffunskosten, mehrere Millionen Zeilen Code, leider auch eine entsprechende Komplexität (sprich: Einarbeitungszeit).

Quartus & Co.

Seitens der TGI-Leitung und Tutoren scheint Altera Quartus® vorgeschlagen zu werden.

Wer damit nicht klarkommt, möge einen Blick auf das Xilinx ISE® WebPack® werfen.

Davon existiert auch eine Motifbasierte, notorisch nur für Redhat 3 zertifizierte (die meinen das ernst, es gibt da wirklich Probleme) Version für Linux. Ich rate davon ab.

Nicht von Linux, um Gottes Willen, vom WebPack® dafür.

Wer damit nicht klarkommt, möge sich allerdings auch der Tatsache bewußt sein, das Support primär von den Tutoren kommt, nicht von mir. Ergo haben die Tutoren das sagen. Das gilt auch für die Werkzeuge.

Als weitere Alternative, und echte Empfehlung, wären noch zwei weitere Werkzeuge zu nennen: GHDL, und seit neuestem Signs.

GHDL

GHDL ist ein komplett quelloffener, GCC-basierter VHDL-Compiler, der dementsprechend je nach Plattform nativ laufenden Code produziert. Vorteil ist bei diesem Ansatz vor allem die hohe Geschwindigkeit.

Ein Nachteil ist das Fehlen eines Waveform-Editors zum Testen. Stattdessen schreibt man sich eine eigene Testbench zum Austesten seiner Komponente. Das bedeutet zwar ein wenig Mehrarbeit, das Resultat ist allerdings sehr flexibel. Lehrreich ist es allemal. Die Vorgehensweise ist z.B. im GHDL-Manual beschrieben.

Ein einigermassen brauchbarer Waveform-Viewer, um die Resulate betrachten zu können, steht mit GTKWave zur Verfügung.

Signs

Signs ist eine Enwicklungsumgebung für unterschiedliche Sprachen zur Hardwarebeschreibung in Forschung und Lehre. Derzeit wird u.A. eine Untermenge von VHDL93 unterstützt.

Zu den Besonderheiten zählen:

  • Komplett in Java entwickelt, auf entsprechend vielen Plattformen verfügbar.
  • Das Programm ist als Plugin für die Entwicklungsumgebung Eclipse programmiert.
  • Integrierte Visualisierung von Netzlisten. Ist besonders für Lehrzwecke im Rahmen kleine Projekte sehr lehrreich.

Dokumentation

Projektseiten

Zu den Ergebnissen einer Praktikumsarbeit gehören Dokumentation sowie Quelltexte, Listings, Mitschnitte ausgewählter Testläufe (z.B. in der JMic), Meßreihen, etc.

Während der Durchführung des Praktikums werden alle diese Ergebnisse in einer Website zusammengefasst. Bewertet werden nur die Ergebnisse die sich auch in der Website wiederfinden. Das impliziert das keines eurer Dokumente per Mail an mich geht. Statt dessen wird der Inhalt der Site inkrementell erweitert.

Das gibt einerseits euch die Möglichkeit, die Arbeit als eine Art Produkt zu gestalten, und das ist mehr als nur ein paar Zeilen Code und ein README. Andererseits macht es mir das Leben leichter, weil Verwaltung der kompletten Dokumentation von 10-15 Gruppen einen ganz schön auf Trab halten kann, ich zum Ende des Praktikums die Ergebnisse ganz gerne vergleiche. Auf diese Weise wird die Wahrscheinlichkeit geringer wird, daß ich was [positives ;)] übersehe.

Die Projektsite sollte bevorzugt auf dem durch die RBG betriebenen Webserver der Informatik zum liegen kommen.

Inhalt und Struktur der Site

Die Praktikumsordnung sieht neben der Lösung nur die unten beschriebenen Dokumente zur Benotung vor. Dem schließe ich mich natürlich an, das heißt alle in dieser Sektion beschriebenen Vorschläge sind optional und können ignoriert werden.

Im Prinzip reicht also eine kleine Frontseite mit Links zu allen Dokumenten, Programm- und Datenfiles. Wer es aber richtig gut machen will, sollte zumindest über folgende Erweiterungen nachdenken:

Die folgenden Bestandteile sind größtenteils freiwilliger Natur. Die Projektmanager sollten sich zumindest mit dem Gedanken daran auseinandersetzen, jenseits einer zumindest mit Eckdaten versehenen Projektseite wird allerdings kaum etwas mir wirklich verlangt.

Versionierung

In der Praxis kommen Projekte mit mehr als einem Entwickler (eigentlich nicht mal diese) nicht ohne Versionsmanagement aus.

Dafür gibt es Tools, z.B. für Quelltextverwaltung (SCM). Weiterhin Dokumenten- und Content-Managementsysteme, die wir aber hier sicher kaum einsetzen werden. Sinnvoll ist aber bereits, auch die Entwicklung der Dokumentation ihrerseits zu dokumentieren.

Das bedeutet zunächst das alle Revisionen ein und des selben Dokumentes auf der Projektseite verfügbar bleiben. Alte Versionen werden also auf keinen Fall gelöscht. Zur Vereinfachung des Zugangs dienen höchstens Links die z.B. auf die jeweils neueste Version eines Dokumentes verweisen.

Im Minimum erweitert man die Dateinamen um eine Versionsnummer und belässt es dabei. Schon realistischer sind Changelogs, d.h. Zusammenfassungen aller einer jeweiligen Version zugrund liegenden Änderungen.

Meetings & Minutes

Bei größeren Projekten kommt man nicht umhin, über alle in Treffen der Arbeitsgruppe besprochenen Themen, getroffenen Entscheidungen und Argumentation die zu diesen geführt haben, offene Punkte, etc. zu protokollieren. Das ist typischerweise Aufgabe des Projektmanagers.

Solche Dokumentation werden in einem separaten Teil der Site archiviert und zumindest nach Datum sortiert. Sie beinhalten Aufstellungen aller bei der Besprechung anwesenden (und nicht anwesenden), Datum und Uhrzeiten, Tagesordnungspunkte und alle relevanten Inhalte und Entscheidungen der Besprechung. Auch Punkte bei keine Entscheidung erreicht oder deren Entscheidung aufgeschoben wurde.

Projektmanager die für die Praxis lernen möchten sollten es versuchen.

News und Summaries

Für komplexe Projekte die sich schnell und in unterschiedlichen Richtungen weiterentwickeln sind Zusammenfassungen sinnvoll.

Im einfachsten Fall beschränkt man sich auf eine gut strukturierte, tabellarische Aufstellung aller Änderungen im Projektstatus. Die wird nach Datum sortiert (die aktuellsten ganz oben) typischerweise gleich auf der Einstiegsseite plaziert.

Content Syndication ist in wenigen Jahren ein eigener Zweig des World Wide Web geworden, der vielen TGI-Studenten vielleicht schon vertraut ist.

Vor allem wer sich für elektronisches Publizieren interessiert (und das sollte dieser Tage praktisch jeder sein der sich mit Informationsverarbeitung befasst) sollte einen Versuch wagen.

Formate

Sämtliche Dokumentation ist in HTML zu erstellen. Pro Dokument ist mindestens eine separate Datei anzulegen. Wer gerne viel schreibt kann natürlich auch weiter untergliedern, das setzt jedoch eine Inhaltsangabe mit entsprechenden Verweisen voraus.

Die Dokumentation ist neben der Präsentation einer der wesentlichsten Teile des Praktikums. Ich kann oft nur den Teil eurer Entwicklungen beurteilen der auch dokumentiert oder präsentiert worden ist. Das Praktikum besteht allerdings aus mehr als nur die Implementierung. Es soll euch auch den Entwicklungsprozeß als solchen nahebringen.

Der besteht im Entwicklungsprozeß aus Phasen wie Anforderungsanalyse, Spezifikation, System Design, etc. Vieles davon wird euch natürlich erst im Hauptstudium beigebracht werden, aber das Praktikum kann zumindest ein Anfang sein.

Die Praktikumsordnung sieht ein Anzahl unterschiedlicher Dokumente vor, im Folgenden in Reihenfolge ihrer Erstellung und Lieferung:

  1. Pflichtenheft
  2. Spezifikation
  3. Dokumentation

    Diese wiederum ist aufgegliedert in

    1. Benutzerdokumentation
    2. Entwicklerdokumentation

Das klingt als ob mehr Zeit für die Dokumentation verwendet werden muß als schon für Lösung und Implementierung. Das ist nicht ganz richtig. Wichtig ist, daß die Mehrheit dieser nicht sehr lang sein muß – die Aufgaben sind es ja auch nicht. Es geht lediglich darum, daß das jeweilige Dokument inhaltlich vollständig ist.

Programme und Dateien

Die eigentliche Lösung der Praktikumsaufgabe besteht, Abhängig vom Teilbereich, aus:

Quelltexte und Assemblercode
  • VHDL-Programmcode
  • IA-32-Assemblercode (NASM)
  • MIC-Speicher/Registerdumps
Traces ausgewählter Testläufe
Mikroprogrammierung
Ablaufprotokolle der Mic, etc.
VHDL
Testbenches (eine weitere entity, welche nur dazu dient die Loesung zu testen) werden gerne akzeptiert. Bei mit Waveform-Editoren erstellten Tests werden eben solche in einem für die jeweilige Entwicklungsumgebung passenden Format benötigt.
Insgesamt
Alles, was es dem Betreuer eine Beurteilung der korrekten Funktion eurer Lösung leichter macht.
Meßreihen

z.B. Assemblerprogrammierung: Performancevergleiche bei Experimenten mit unterschiedlichen Varianten der Lösung.

Alle dieser Dateien kommen auf die Projektseite. Wo es sich anbietet, können sie wie die Dokumentation im HTML-Format mit eingebunden werden

Ältere Versionen der Mic konnten das. Bei der jMic bin ich mir nicht sicher).

Aus immer wieder aktuellem Anlaß: Wenn es etwas zu übersetzen gibt, übersetze ich den Code selber. Mir also, idealerweise noch per Mail, Binaries zuzuschicken ist völlig unnötig.

Bitte die Datenfiles nicht in HTML formatieren. Schon gar nicht hexkodierte Mikroprogramme. Der einzige mir bekannte Fall in dem man das ganz gerne macht sind PGP-Keys in ASCII-Transferkodierung.

Pflichtenheft

Bedeutung

Das Pflichtenheft (Requirements) beschreibt, wie der Name schon sagt, was die Ergebnisse eures Projektes leisten sollen.

Das klingt überflüssig, wenn die Aufgabenstellung wie im TGI-Praktikum eigentlich schon vorgegeben ist. Tatsächlich ist der am häufigsten gemachte Fehler, die Aufgabenstellung abzuschreiben und gleich zur Spezifikation überzugehen.

In der Praxis sollte die Bedeutung solcher Dokumente jedoch nicht unterschätzt werden. Für mich als Betreuer (nennt es Kunde) repräsentiert es den Erwartungshorizont dessen was ich bei Abnahme erwarten darf. Es präzisiert also vielmehr die Erwartungen, die mit meiner Aufgabenstellung bereits formuliert wurden.

Dieses Dokument wird nun aber von euch als Bearbeiter geschrieben, nicht etwa von mir. Diese Kleinigkeit impliziert einen entscheidenden Unterschied: Es wird nicht nur festgelegt was das Ergebnis leisten wird, sondern auch was es nicht leisten wird.

Kurz: Je präziser die Analyse und deren Ergebnisse im Pflichtenheft dargestellt sind, desto besser eure Position wenn ihr eure Ergebnisse bei der Präsentation verteidigen müsst, d.h. ob das Result auch dem Rückblick auf die Anforderungen stand hält.

Inhalt

Im folgenden ein paar Anhaltspunkte für den Inhalt. Die Liste erhebt keinen Anspruch auf Vollständigkeit.

Vorsicht: Die vorliegende Aufteilung deckt sich nicht unbedingt mit einer sinnvollen Gliederung. Diese bleibt euch überlassen.

Autor, Projektmitarbeiter

Klar. Namen und Rollenverteilung bzw. Verantwortlichkeit aller Gruppenmitglieder.

Datum, Revision

Änderungen werden normalerweise wie oben beschrieben in der Regel durch Revisionsnummern und ChangeLogs ihrerseits dokumentiert.

Anforderungen (Soll-Analyse)

Der Inhalt der Soll-Analyse baut i.d.R. zunächst auf der Aufgabenstellung auf. Wichtig bei der Soll-Analyse ist dabei die Beschränkung auf eine Black-Box Sicht, d.h. es werden keine unnötigen Details über die Realisierung vermitteln.

Beispiel Mikroprogrammierung: Zusammenfassung der zu realisierenden Befehle, jeweils mit deren Adressierungsart.

Die Darstellung in der Black-Box Sicht beschränkt sich auf:

Eingabe
Eingabeparameter, sowie deren im Rahmen der Aufgabenstellung zulässige Wertebereiche.
Ausgabe
Ausgabeparameter, und wieder deren im Rahmen der Aufgabenstellung zulässige Wertebereiche.
Operation

Da die Funktionsbeschreibung schon vorgegeben ist, erscheint der Punkt zunächst trivial. In vielen Fällen ist dem jedoch nicht so. Ein Beispiel: Was passiert mit unzulässigen oder zumindest nicht sinnvollen Eingabewerten? Gibt es solche? Ist eine Erkennung möglich? Ist das Resultat dann auch definierbar?

Kleiner Tip: Diese Sichtweise ähnelt i.d.R. stark der des Benutzers auf das fertige System. Sie kann später für die Benutzerdokumentation entsprechend aufbereitet werden.

Vorsicht: Diese Beschreibung ist nicht unbedingt indentisch mit der Benutzerdokumentation. Warum? Sie geht noch nicht genau auf die (Programmier-)schnittstelle ein (Diese ist abhängig von Anforderungen, die an dieser Stelle im Entwicklungsprozeß noch gar nicht betrachtet wurden).

Ist-Analyse

Die Ist-Analyse beschreibt die Ausgangssituation, also die Umgebung in der das Projekt durchgeführt wird und in der die Ergebnisse eurer Arbeiten zum Einsatz kommen.

Vorsicht: Es sollte bis hier klar geworden sein, das das Projekt nicht nur aus etwas Code besteht.

Zielsystem
Beschreibung aller im Hinblick auf die Anforderungen relevanten Eigenschaften, z.B. der mikroprogrammierbaren Maschine (jMic), des Zielrechners (ASM).
Dokumentationen
Welche Dokumentation ist verfügbar?
Infrastruktur

Was für steht zur Durchführung des Projektes zur Verfügung, bzw. was wird benötigt? Welche Software und Tools kommen zum Einsatz?

Arbeitsplan

Der Arbeitsplan beschreibt den geplanten Ablauf der Projektdurchführung:

  • Identifizierte Teilaufgaben
  • Arbeitsschritte und eventuelle Abhängigkeiten
  • Aufteilung der Leistungen auf einzelne Gruppenmitglieder
  • Zeiteinteilung
  • Fertigstellungstermine
  • Überprüfungs- und Abgabetermine

Spezifikation

Während das Pflichtenheft sich darauf konzentriert was das das System nach seiner Fertigstellung leistet, setzt sich die Spezifikation schließlich mit dessen Realisierung auseinander.

Lösungsansatz

Eine Vielzahl der gestellten Aufgaben erlaubt Alternativen in der Vorgehensweise. Entscheidet euch für eine Lösung, aber begründet eure Wahl. Alternativen sollten diskutiert und abgewägt werden. Dieser Teil ist ein sehr wichtiger Bestandteil der Spezifikation.

Bei komplexeren Aktionen sollte zunächst die globale Vorgehensweise dargelegt werden. In der Regel bezeichnet dies den Algorithmus, den ihr implementieren wollt. Die Beschreibung solcher Algorithmen teilt das Vorgehen zunächst in numerierte Einzelschritte auf. Diese können dann durch erneute Teilung in Unterschritte weiter verfeinert werden.

Achtung: Bei komplexen Schritten zunächst die allgemeine Vorgehensweise kurz beschreiben, dann daraus resultierende Einzelschritte verfeinern. Selbst bei einfachsten Algorithmen greift diese Vorgehensweise: Egal wie einfach der Algorithmus aus Sicht des Autors ist – die zugrunde liegende Idee wird immer durch ein oder mehrere einleitende Sätze zusammengefasst.

Am Anfang stellt man sich wahrscheinlich die Frage: Wie kann ich etwas spezifizieren mit dem ich keine Erfahrung habe? Oder besser: Wie kann ich wissen ob etwas funktioniert bevor ich es implementiert habe? Das ist doch nicht praxisnah?

Doch. Bei komplexen Systemen sind Fehler sogar fast unvermeidlich und durchaus erwartet. Das Geheimnis liegt darin, die Spezifikation im Bedarfsfall zu zu ergänzen, respektive zu korrigieren, den Vorgang jedoch auch für Außenstehende nachvollziehbar zu gestalten.

Zielgruppe

Die Beschreibung dieser Schritte erfolgt nicht etwa in einer formalen Notation, und schon gar nicht in Maschinensprache, sondern in ganzen Sätzen. Hier ist vor allem auf die Zielgruppe zu achten: Der Leser ist in der Regel mit Rechnerarchitekturen im Allgemeinen vertraut, aber nicht unbedingt mit dem konkret vorliegenden System. Programmierer können auf Basis der Spezifikation das System so implementieren wie der Verfasser es vorgesehen hat. Andere, z.B. der Projektbetreuer, können auf Basis der Spezifikation die Funktionweise des Systems nachvollziehen.

Beispiel Mikroprogrammierung: Begrifffe wie Datenbus, Adreßbus, ALU, Befehlszähler etc. können vorausgesetzt werden. Bezug auf R0 ist akzeptabel, der Ausdruck Y-MUX=AB gehört ganz klar nicht in die Spezifikation, sondern eher in die Entwicklerdokumentation.

Man gehe in der Spezifikation auf relevante Eigenschaften der Architektur ein, natürlich ohne die schon im Pflichtenheft inventarisierte Dokumentation nochmal zu schreiben, es genügen Verweise. Die einzelnen Schritte sollten schließlich detailliert genug dargelegt werden um glaubhaft zu machen, daß Ihre geplante Vorgehensweise auf Basis der vorliegenden Maschine tatsächlich realisierbar ist. Die geforderte Genauigkeit der Spezifikation beantwortet zu jedem Schritt u.A. schließlich folgende Fragen:

  • Wie sind die Daten strukturiert?

    Mikroprogrammierung: Über die nötige Präzision solcher Angaben kann man streiten. Für komplexe Datenstrukturen reichen im Prinzip schon verbindliche Bezeichner für einzelne Felder. Da man bei der Spezifikation aber schon präzise auf die Zielarchitektur eingeht, sind auch hier schon exakte Angaben mit Basis- und Offset-Adressen legitim.

  • Welchen Weg nehmen die Daten?

    Mikroprogrammierung: Welche Funktionseinheiten werden dabei benutzt?

    Solche Beschreibungen, die relativ genau auf die Mikroarchitektur eingehen, tendieren dazu die Dokumentation durch Wiederholungen unleserlich zu machen. Es bietet sich in solchen Fällen an, einen gegebenen Schritt in der Mikroarchitektur einmal zu beschreiben und danach einfach mit Verweisen zu arbeiten.

  • Hat die jeweilige Funktionseinheit laut Dokumentation auch die geforderte Funktionalität?

    Es genügt im Zweifelsfall ein Hinweis, daß auf solche Fähigkeiten Rücksicht genommen, bzw. diese mit Hilfe der Dokumentation verifiziert wurden (Verweis auf Kapitel/Abschnitt).

Dokumentation

Benutzerdokumentation

TBD

Entwicklerdokumentation

TBD

Hinweise zum Vortrag

Organisatorisches

Dauer

Der Vortrag sollte ca. 10 Minuten dauern.

Ort

Die Vorträge finden üblicherweise in den Räumen 01.06.011 oder 01.06.020 statt (FMI Südseite, 1. Stock, Nähe HS2). Diese Räume verfügen über Videoprojektoren. Bevorzugt ist 01.06.020, hauptsächlich wegen der größeren Projektionsfläche.

Ausstattung

Bevorzugt sind Vorträge mit Videoprojektor auf eigenem Notebook.

Wer keine Hardware mitbringen kann oder will bekommt sie natürlich gestellt. Ohne weiteres geht in der Regel Powerpoint, OpenOffice oder schlicht PDF. In jedem Fall bitte vorher anmelden, da ich sonst nichts mitbringen kann.

Für den Notfall sind auch Overheadprojektoren vorhanden. Das Verfahren ist jedoch in den letzten Jahren ein wenig aus der Mode gekommen. Wer für das richtige Leben lernen möchte versucht es bitte in Software.

Inhalt

Keine Prosa! Versucht bitte nicht, eure Ausarbeitung als Präsentation verkaufen zu wollen. Es braucht Folien, keine Lesung.

Folien dienen zur Unterstützung beim Zuhören. In dem Sinne werden sie nicht einmal wirklich gelesen. Sie stellen nur einen Seitenkanal zur Ergänzung eurer Erläuterungen dar.

Kein Code! Manchmal ist der Versuchung, Codefragmente aufzulegen, schwer zu wiederstehen. Wer es nicht lassen kann, findet bei mir die einmalige Gelegenheit es zu versuchen, unter der Bedingung es nicht noch einmal zu tun. Es geht garantiert schief, aber ich kann damit leben.

Ich kann es allerdings auch entsprechend benoten.

Beispiel Mikroprogrammierung: Nichts verbindet mehr als gemeinsam ein paar Minuten auf ein paar hundert Byte tabellarisch formatierten Hexcode und Mnemonics zu starren, während der stolze Entwickler versucht zu erläutern was dort alles gleichzeitig passiert. Probiert es einfach zu Hause mit Freund/Freundin oder Familie einmal aus.

Struktur

10 Minuten sind eine kurze Zeit. Im folgenden ein paar Vorschläge zur Strukturierung. Diese können allerdings als unverbindlich betrachtet werden.

Aufgabe
Die Aufgabe muß zunächst erläutert werden, vor allem da mehr Praktikanten als Betreuer anwesend sind. Uninteressante Details können ausgelassen werden um Zeit zu sparen.
Lösung
Algorithmus in Grobdarstellung (siehe entsprechenden Teil der Spezifikation). Wo es angebracht erscheint, geht auf Alternativen und Begründungen ein.
Implementierung

Die folgenden Anmerkungen beziehen sich mehrheitlich auf die Mikroprogrammierung. Für VHDL oder Assembler gilt sinngemäß ähnliches, nur eben mit anderer Entwicklungsumgebung.

Wie oben beschrieben: Bitte kein Code. Lediglich die interessanteren Teile, i.d.R. die jenseits Load/Store-Operationen hauptsächlichen Vorgänge im Algorithmus sollten beschrieben werden. Kniffligen Teilen, beispielsweise wenig genutzten Features in der ALU, sollte i.d.R. der Vorrang gegeben werden, da sie oft einen Kern der Aufgabenstellung ausmachen.

In der Regel beschränkt man sich auf eine abstrakte Sicht der Funktionalen Einheiten und eine auch für Außenstehende leicht nachvollziehbare Zusammenfassung der Operationen darauf. Das bedeutet ihr beschreibt das Zusammenspiel der einzelnen Maschinenteile, gerne auch grafisch.

Gewonnen hat, wer am wenigsten erklären mußte um plausibel zu klingen. Nicht etwa versuchen möglichst viel Stoff zu vermitteln. Die Vortragszeit ist bewußt so kurz gewählt.

Durchführung
Kurze Zusammenfassung: Wieviel Zeit wurde benötigt? Wie wurde diese auf einzelne Teilarbeiten aufgeteilt. Entsprach diese Zeiteinteilung dem Arbeitsplan? Wurde irgendwo unverhältnismäßig viel Zeit aufgewendet?

Format

Eine Einführung in Präsentationstechniken würde hier den Rahmen sprengen. Daher nur ein paar grundsätzliche Hinweise.

Schriften

Die allerminimalste rechtfertigbare Fontgröße auf Folien liegt bei 18pt. Der Standard deutlich über 24pt. Das ist vor allem wichtig wenn wir in Raum 01.06.11 sind, da Projektor und Auflösung dort deutlich kleiner sind als mittlerweile üblich.

Serifen dienen nur bei gedrucktem Material zur Verbesserung der Lesbarkeit. Auf Bildschirmen und Projektionsflächen kehrt sich dieser Effekt interessanterweise um. Auch bei Präsentationen sind daher serifenlose Schriftarten (z.B. Helvetica, Arial, Vera) zu bevorzugen.

Auflösung
Standardauflösung ist auch 2005 immer noch 1024x768px, mehr geben die Projektoren in der Regel nicht her. Wer mit seinem Notebook noch nicht präsentiert hat sollte prüfen ob das Umschalten der Auflösung reibungslos klappt. Das gilt insbesondere unter Linux. Die Präsentation muß aber auch auch bei 800x600px noch lesbar sein.
Kontrast

Eierschalenfarbene Schrift auf diesem speziellen hellgelbem Hintergrund mag am Vorabend auf dem heimischen CRT noch besonders feinsinnig gewirkt haben. Für Wandprojektionen bei Tageslicht kommen nur kontrastreiche Farbschemata in Frage.

Vorsicht, selbst einige der in modernen Office-Paketen mitgelieferten Templates gehen diesbezüglich manchmal von recht gewagten Voraussetzungen aus.

Bei Unsicherheit: Schwarz auf Weiß. Das funktioniert praktisch immer. Ansonsten: Im Winter Hell auf Dunkel, im Sommer umgekehrt.

Animationen

Animationssequenzen, z.B. in PowerPoint, sind in der Regel keine Gute Idee. Das gilt vor allem für herumfliegende Textfragmente. Animationen, die zur Visualisierung von z.B. Prozeßabläufen dienen sind dem gegenüber natürlich prima.

Wenn sie zur Verdeutlichung des vorgestellten Materials dienen, sind sie aber tatsächlich ein gutes Werkzeug. Allerdings auch ein zeitaufwändiges in der Vorbereitung und nie ein Ersatz für gut strukturierten Inhalt.

Audio

Um Gottes Willen keine Sounduntermalung.

Seid versichtert: Es gab öfters mal Gründe warum das hier extra erwähnt werden musste.

Document Revisions:

2005-06-28
2005-06-14 Weitere Anmerkungen zu den Abgabefristen.
2005-06-16 Updates für Inhalt, Spezifikation, ... Rechtschreibung.
2005-06-17 Hinweise zum Vortrag.
2006-06-13 Hinweise zu VHDL-Werkzeugen.