review: bbcode und kleinere anpassnungen
[hwmod.git] / doc / review / designspec.txt
index 151824ba04e10322f31a165308f2e450383152fc..a306310cbd33a7af388aaab185c3ad338f4f119b 100644 (file)
-1. Korrektheit: Enthält die Spezifikation inhaltiche Fehler, widersprüchliche Aussagen oder werden falsche Annahmen getroffen? Vergeben Sie eine Note (1-5) und begründen Sie!
+1. Korrektheit: Enthält die Spezifikation inhaltiche Fehler, widersprüchliche Aussagen oder werden
+   falsche Annahmen getroffen? Vergeben Sie eine Note (1-5) und begründen Sie!
 
-2. Vollständigkeit: Enthält das Spezifikations-Dokument alle wesentlichen Requirements/Module des Designs? Vergeben Sie eine Note (1-5) und begründen Sie!
+Viele kleinere Unstimmigkeiten (vor allem bei der Schnittstellenbeschreibung),
+aber das hat wohl den Grund, dass es noch nicht die finale Abgabe ist (ein paar
+Einzelheiten werden weiter unten erwaehnt).
 
-Mir persoenlich fehlen die Zustandsmaschinen. Ich wuerde vorschlagen hier
-entweder Grafen oder Tabellen zu nehmen. Die interfaces sind grundsaetzlich
-vorhanden und tabellarisch fest gehalten, jedoch wird nicht spezifiziert wie
-diese werte zu verwenden sind. Zum Beispiel STack hat ein signal enable, aber
-ist der nun High- oder Low-Aktiv?
+Note: 2
 
-Ist das poppen des Stacks destruktiv? wenn ja wie wird die ausgabe dann
-produziert? Beim ASCII Stack bin ich mir nicht sicher ob das so gemeint ist und
-ob das auch gut ist. beim Operanden stack ist diesees verhalten jedoch
+2. Vollständigkeit: Enthält das Spezifikations-Dokument alle wesentlichen Requirements/Module des
+   Designs? Vergeben Sie eine Note (1-5) und begründen Sie!
+
+[list]
+[*]
+Statemaschinen sind zwar vorhanden, aber es fehlt an Details die man mit
+Moore-State-Maschinen gut darstellen kann. D.h. jeder Zustand hat Kanten, die
+Input und Output definieren. Wenn man in "wenign" Signalen, die wichtig sind,
+zeigen kann, dass so eine Statemaschine glaubhaft funktionieren kann, hat man
+viel gewonnen:
+
+TODO: hab ich dein beispiel richtig verstanden (und angepasst?)
+Beispiel fuer RS232:
+[list]
+[*]eine Kante hat Signale:
+[list]
+[*]input: req, char(N)[/*]
+[*]output: ack, counter_overflow, tx[/*]
+[/list]
+[/*]
+[*]die States waeren dann: startbit ,char(0), char(1), char(2), ... ,char(n-1),
+stopbit1, stopbit2, done[/*]
+[*]die Uebergaenge
+[list]
+[*]belieber state -> startbit: 0 XX ... XX / 0 0 X[/*]
+[*]startbit -> char (0): 0 XX ... XX / 0 1 0[/*]
+[*]char (k) -> char (k+1): 0 XX ... XX / 0 1 char(k)[/*]
+[*]char (n-1) -> stopbit 1: 0 XX ... XX / 0 1 1[/*]
+[*]stopbit1 -> stopbit2: 0 XX ... XX / 0 1 1[/*]
+[*]stopbit2 -> done: 1 XX ... XX / 1 1 1[/*]
+[/list]
+[/*]
+[/list]
+[/*]
+[*]
+Die Interfaces sind grundsaetzlich vorhanden und tabellarisch fest gehalten,
+jedoch wird nicht spezifiziert wie diese Werte zu verwenden sind. Zum Beispiel
+der Stack hat ein Signal "enable", aber ist das nun High- oder Low-Aktiv?
+[/*]
+[*]
+Ist das Poppen des Stacks destruktiv? Wenn ja wie wird die Ausgabe dann
+produziert? Beim ASCII-Stack bin ich mir nicht sicher ob das so gemeint ist und
+ob das auch gut ist. Beim Operanden-Stack ist dieses Verhalten jedoch
 gewuenscht.
+[/*]
+[*]
+Wichtig ist ausserdem nicht nur wer aller Zugriff auf den Stack hat sondern
+auch ob ein Zugriff auf den Stack gleichzeitig geschehen darf. Der Zugriff
+selbst auf den Stack wird auch nur sehr oberflaechig beschrieben und geht nicht
+wirklick hervor wie der tatsaechlich funktioniert.
+[/*]
+[*]
+Die Grafik koennte man entweder weglassen oder ueberarbeiten (kann auch eine
+gute Handzeichnung sein, solange klar ist was passiert).
+[/*]
+[*]
+Testfaelle fehlen komplett.
+[/*]
+[/list]
+
+Note: 3
+
+
+3. Verständlichkeit: Ist das Dokument klar und verständlich geschrieben? Besitzt das Dokument eine
+   ordentliche Struktur? Vergeben Sie eine Note (1-5) und begründen Sie!
+
+Grundssaetzlich ja, aber das Zusammenspiel einiger Komponenten ist teilweise unklar:
+
+[list]
+[*]
+im Modul "MulDiv" gibt es die Signale "quotient", mehrere "operand_out_*",
+"divisor" und "dividend" (in dieser Reihenfolge). Das ist am ersten Blick sehr
+verwirrend, am zweiten Blick (naemlich auf die anderen Module) wird erst klar
+dass diese Signale unterschiedliche Wege nehmen. Ausserdem: Warum die Division
+und Multiplikation nochmal extra in ein Modul packen?
+[/*]
+[*]
+Die Verwendung des Stacks geht leider nur sehr schwamming hervor (wie oben
+schon angesprochen).
+[/*]
+[*]
+Wieviele Stacks sind nun tatsaechlich in Verwendung? ein ASCII-Stack, ein
+Operanden-Stack und ein Operator-Stack? Haben die das selbe Interface? Wie
+speichern die Daten, sind doch eigentlich ganz unterschiedliche Datenstrukturen
+zu speichern?
+[/*]
+[*]
+Was haben signale wie "div_busy", "divisor", etc. im Modul "Encoder" zu suchen?
+[/*]
+[/list]
 
-Die Grafik koennte man entweder weglassen oder ueberarbeiten, kann meines
-erachtens auch eine gute handzeichnung sein, solange klar ist was passiert.
 
-divisor dividend sind output signale?
-und wenns muldiv heisst wieso isses dann immer nur ein operand und operator?
-(vermutlich irgendwie stack basiert aber wie greift der auf den stack zu.)
+Verbesserungsvorschlag fuer die Schnittstellenbeschreibung:
+[list]
+[*]
+eine Spalte zu welchen Module (oder externes Geraet, z.B. PS/2) die Signale
+fuehren.
+[/*]
+[/list]
 
-wichtig ist finde ich nicht nur wer alles zugriff auf den stack hat sondern
-auch, ob der zugriff auf den stack gleichzeitig geschehen darf. und wie der
-zugriff auf den stack zum beispiel passiert, es wird nirgends erwaehnt.
 
-das interface vom stack fehlt einfach total.
+Note: 3
 
-3. Verständlichkeit: Ist das Dokument klar und verständlich geschrieben? Besitzt das Dokument eine ordentliche Struktur? Vergeben Sie eine Note (1-5) und begründen Sie!
+4. Gesamtbeurteilung: Vergeben Sie eine Gesamtnote (1-5) und geben Sie Ihren Kollegen ein kurzes
+   Feedback über die Qualität ihres Spezifikations-Dokumentes!
 
-Grundssaetzlich ja das zusammenspiel einiger komponenten ist mir kurz gesagt
-unklar. vorallem im bezug auf die stacks. ich nehme an der lese meint es wird
-zwei stacks geben und immer wenn ein mal eingelesen wird kommt es auf einen
-priorisierten stack und immer wenn ein plus eingelesen wird kommt es auf einen
-anderen bzw. wird der stack von a nach b verschoben. klar kommt das aus dem
-dokument nicht heraus. auch unklar ist wie der decoder mit dem ascii stack und
-dem parser zusammenarbeiten. vermutlich ist die zeichnung unpassend vorallem
-weil womoeglich leitungen mit zugriff verwechselt wurden.
+Man erkennt grundsaetzlich eine Aufteilung in Komponenten, jedoch happerts im Detail: Die
+Zusammenhaenge der Module werden einem durch das Lesen der Spezifikation nicht ganz klar. 
 
-4. Gesamtbeurteilung: Vergeben Sie eine Gesamtnote (1-5) und geben Sie Ihren Kollegen ein kurzes Feedback über die Qualität ihres Spezifikations-Dokumentes!
+Der Stack selbst gehoert auch noch detailierter beschrieben
 
-man erkennt grundsaetzliche komponenten aufteilung jedoch sind einige dinge
-glaube ich so wie sie drinnen stehtn nicht so realisierbar wie vorgestellt.
-insbesondere wuerde ich gerne den stack zugriff sehen, also wie ist das
-interface des stacks, um feststellen zu koennen ob das funktioniert.
+Note: 2-3