review: bbcode und kleinere anpassnungen
[hwmod.git] / doc / review / designspec.txt
1 1. Korrektheit: Enthält die Spezifikation inhaltiche Fehler, widersprüchliche Aussagen oder werden
2    falsche Annahmen getroffen? Vergeben Sie eine Note (1-5) und begründen Sie!
3
4 Viele kleinere Unstimmigkeiten (vor allem bei der Schnittstellenbeschreibung),
5 aber das hat wohl den Grund, dass es noch nicht die finale Abgabe ist (ein paar
6 Einzelheiten werden weiter unten erwaehnt).
7
8 Note: 2
9
10 2. Vollständigkeit: Enthält das Spezifikations-Dokument alle wesentlichen Requirements/Module des
11    Designs? Vergeben Sie eine Note (1-5) und begründen Sie!
12
13 [list]
14 [*]
15 Statemaschinen sind zwar vorhanden, aber es fehlt an Details die man mit
16 Moore-State-Maschinen gut darstellen kann. D.h. jeder Zustand hat Kanten, die
17 Input und Output definieren. Wenn man in "wenign" Signalen, die wichtig sind,
18 zeigen kann, dass so eine Statemaschine glaubhaft funktionieren kann, hat man
19 viel gewonnen:
20
21 TODO: hab ich dein beispiel richtig verstanden (und angepasst?)
22 Beispiel fuer RS232:
23 [list]
24 [*]eine Kante hat Signale:
25 [list]
26 [*]input: req, char(N)[/*]
27 [*]output: ack, counter_overflow, tx[/*]
28 [/list]
29 [/*]
30 [*]die States waeren dann: startbit ,char(0), char(1), char(2), ... ,char(n-1),
31 stopbit1, stopbit2, done[/*]
32 [*]die Uebergaenge
33 [list]
34 [*]belieber state -> startbit: 0 XX ... XX / 0 0 X[/*]
35 [*]startbit -> char (0): 0 XX ... XX / 0 1 0[/*]
36 [*]char (k) -> char (k+1): 0 XX ... XX / 0 1 char(k)[/*]
37 [*]char (n-1) -> stopbit 1: 0 XX ... XX / 0 1 1[/*]
38 [*]stopbit1 -> stopbit2: 0 XX ... XX / 0 1 1[/*]
39 [*]stopbit2 -> done: 1 XX ... XX / 1 1 1[/*]
40 [/list]
41 [/*]
42 [/list]
43 [/*]
44 [*]
45 Die Interfaces sind grundsaetzlich vorhanden und tabellarisch fest gehalten,
46 jedoch wird nicht spezifiziert wie diese Werte zu verwenden sind. Zum Beispiel
47 der Stack hat ein Signal "enable", aber ist das nun High- oder Low-Aktiv?
48 [/*]
49 [*]
50 Ist das Poppen des Stacks destruktiv? Wenn ja wie wird die Ausgabe dann
51 produziert? Beim ASCII-Stack bin ich mir nicht sicher ob das so gemeint ist und
52 ob das auch gut ist. Beim Operanden-Stack ist dieses Verhalten jedoch
53 gewuenscht.
54 [/*]
55 [*]
56 Wichtig ist ausserdem nicht nur wer aller Zugriff auf den Stack hat sondern
57 auch ob ein Zugriff auf den Stack gleichzeitig geschehen darf. Der Zugriff
58 selbst auf den Stack wird auch nur sehr oberflaechig beschrieben und geht nicht
59 wirklick hervor wie der tatsaechlich funktioniert.
60 [/*]
61 [*]
62 Die Grafik koennte man entweder weglassen oder ueberarbeiten (kann auch eine
63 gute Handzeichnung sein, solange klar ist was passiert).
64 [/*]
65 [*]
66 Testfaelle fehlen komplett.
67 [/*]
68 [/list]
69
70 Note: 3
71
72
73 3. Verständlichkeit: Ist das Dokument klar und verständlich geschrieben? Besitzt das Dokument eine
74    ordentliche Struktur? Vergeben Sie eine Note (1-5) und begründen Sie!
75
76 Grundssaetzlich ja, aber das Zusammenspiel einiger Komponenten ist teilweise unklar:
77
78 [list]
79 [*]
80 im Modul "MulDiv" gibt es die Signale "quotient", mehrere "operand_out_*",
81 "divisor" und "dividend" (in dieser Reihenfolge). Das ist am ersten Blick sehr
82 verwirrend, am zweiten Blick (naemlich auf die anderen Module) wird erst klar
83 dass diese Signale unterschiedliche Wege nehmen. Ausserdem: Warum die Division
84 und Multiplikation nochmal extra in ein Modul packen?
85 [/*]
86 [*]
87 Die Verwendung des Stacks geht leider nur sehr schwamming hervor (wie oben
88 schon angesprochen).
89 [/*]
90 [*]
91 Wieviele Stacks sind nun tatsaechlich in Verwendung? ein ASCII-Stack, ein
92 Operanden-Stack und ein Operator-Stack? Haben die das selbe Interface? Wie
93 speichern die Daten, sind doch eigentlich ganz unterschiedliche Datenstrukturen
94 zu speichern?
95 [/*]
96 [*]
97 Was haben signale wie "div_busy", "divisor", etc. im Modul "Encoder" zu suchen?
98 [/*]
99 [/list]
100
101
102 Verbesserungsvorschlag fuer die Schnittstellenbeschreibung:
103 [list]
104 [*]
105 eine Spalte zu welchen Module (oder externes Geraet, z.B. PS/2) die Signale
106 fuehren.
107 [/*]
108 [/list]
109
110
111 Note: 3
112
113 4. Gesamtbeurteilung: Vergeben Sie eine Gesamtnote (1-5) und geben Sie Ihren Kollegen ein kurzes
114    Feedback über die Qualität ihres Spezifikations-Dokumentes!
115
116 Man erkennt grundsaetzlich eine Aufteilung in Komponenten, jedoch happerts im Detail: Die
117 Zusammenhaenge der Module werden einem durch das Lesen der Spezifikation nicht ganz klar. 
118
119 Der Stack selbst gehoert auch noch detailierter beschrieben
120
121 Note: 2-3