Ich schreibe jetzt in Worten auf, was Sache ist:
Ich hatte bisher - die Bits s0, s1, s2, s3, ... für die Multiplexer - und für das WRITE-Signal an den Flip-Flops.
Und wenn man sich genau daran erinnert - habe ich bei einer Aufgabe, geschrieben - wenn ein Steuerbit = 1 war, zum Beispiel
Zustand 2, s7 = 1, s2 = 1
Das schreibt man anders: Man gibt den kompletten Steuervektor an. Steuervektor heißt der!
-> Steuervektor!
Das gibt man so an
s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
0 1 0 0 0 1 1 1 0 0 1
Das ist der Steuervektor. Der gilt natürlich für einen Zustand. Man kann das erklären, wie Karl Marx, mit der relativen Wertform, allgemeinen Wertform, entfalteten Wertform - das ist ja auch eine andere Ausdrucksweise, dafür, was eigentlich das gleiche ist. Jetzt führe ich mal die verschiedenen Formen auf.
Meine wäre:
Gehen wir mal von Zustand 3 aus
-----------------------------------------------
Zustand 3:
s1 = 1, s5 = 1, s6 = 1, s7 = 1, s10 = 1
-----------------------------------------------
Jetzt die allgemeinere Form:
-----------------------------------------------
Zustand 3:
s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
0 1 0 0 0 1 1 1 0 0 1
-----------------------------------------------
Jetzt in der Lösung steht was anderes. Was man hier sieht, ist "Zustand 3"
Und die nächste Form ist:
z0 z1 z2 z3 z4 z5 z6
s0 0
s1 1
s2 0
s3 0
s4 0
s5 1
s6 1
s7 1
s8 0
s9 0
s10 1
Das muss man sich für alle Zustände, z0 bis z6 vorstellen und ist der Steuervektor.
Jetzt lässt sich noch etwas erkennen, bzw. erweitern und so weiter.
Zustände lassen sich entweder
1.) So hinschreiben: z0, z1, z2, z3, ...
2.) Hot-One-Codiert: 000001, 000010, 000100, 001000, 010000, 100000
3.) Binär Codiert: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, ...
Die letzten beiden sind eine Frage der Kodierung. Und das taucht auf im Mikroprogrammsteuerwerk. Genau darauf hin weißt die Lösung und der Kurstext hin. Wir haben mehr als den reinen Steuervektor. Das ist bei meinen Beispielen auch so.
Zum Beispiel, auf Zustand 0, folgt Zustand 1, auf Zustand 1, Zustand 2, usw. Schreiben wir das mal so hin
z0 -> z1
z1 -> z2
z2 -> z3
z3 -> z4
...
Das entspricht sowohl dem ASM-Diagramm, als auch meinem Code, mit IF
Der Witz bei der Geschichte ist - bei IF haben wir zwei Mögliche Folgezustände
Wir haben
1.) Ohne IF in linearer Reihenfolge 0, 1, 2, 3, 4, ...
2.) Ohne IF nicht linear, 0, 4, 3, 1, 2, 5, 8
3.) Mit IF (0, 1, 4), 2, 3, (4, 5, 8), ...
Das mit IF drückt im Steuerwerk, ja die beiden Vektoren aus - das sind nicht die Vektoren des Steuervektors, sondern des Folgezustands. Das IF geschieht über einen Multiplexer.
Und ohne das Mikroprogrammsteuerwerk hin zu schreiben, können wir einfach den Vektor angeben, Beispiel:
nein ja Steuervektor
z0+1 z1+1 z2+1 z0+1 z1+1 z2+1 SN SP SF
0 1 0 0 1 0 1 1 1
0 1 0 0 0 1 0 1 0
1 0 0 1 0 0 0 0 0
Fazit: Was ich bei meinen Aufgaben noch nicht gemacht habe: Ich muss den Steuervektor komplett hinschreiben. Erstens darf das gar nicht fehlen, zweitens muss, das nicht so geschrieben werden
Zustand 3: s0 = 1, s5 = 1
sondern wirklich Spalte, z3: 1 0 0 0 0 1 0 0 0
Und so weiter