/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/old-cs-2-03/2021-05-09-states/Aufgabe/AufgabeXY.txt


Es gibt einen Zähler, I

dieser wird bis N nach oben gezählt. In C

n = x;
for (i = 0;  i < n;  i++)

Dabei wird also die Operation n mal wiederholt, bzw. x mal.

Die Operation lautet:

p = p * f;
s = s + p;

f ist dabei drei. Am Anfang ist p = 1

Also lauten die Schritte: 3, 6, 9, 12, 15 usw. 

Dieses wird zu s addiert und s ist am Anfang = 0.

Also, wird die Reihe dargestellt:

3 + 6 + 9 + 12 + 15

In der Mathematik würde diese Lauten

SUM_(i = 1)^n (3*i)

Es braucht einen Vergleicher, wegen i == n
Addierer, Inkrementierer braucht es: zwei:

Einen Inkrementierer: i = i+1
Und einen Addierer: s = s + p

Multiplizierer braucht es einen, wegen: p = p * f

Multiplexer braucht es 3

Wegen

1. P <- P*F und P <- 1
2. S <- S+P und S <- 0
3. I <- I+1 und I <- 0


Register: Für

N, P, F, S, I

also, 5 Register

Man denke, es ist ein Moore-Steuerwerk. Das kann man das an Aufgabe (c) sehen. Hier sind bei der Ausgabe keine Abhängigkeiten vom Eingang vorhanden. 

Es gibt nur einen einzigen Eingang, das heißt, Eingabe:

Das ist I == N

Diese hat einen Zustand als Folgezustand. Das wäre ein Moore-Schaltwerk.

Das ist allerdings nicht richtig. Was eindeutig darauf hinweist, dass es ein Mealy-Schaltwerk ist, ist die Runde Box. Das ist eine bedingte Zustandsbox. I <- I+1 und wenn wir uns diesen Zustand angucken, dann ist das kein eigener Zustand. Wir könnten I <- I+1 als eigenen Zustand definieren. In Wirklichkeit gehört all das zu Z1. Und: Das ist abhängig von der Bedingung.

Das heißt wir bei Mealy gucken

Z X Y
0 0 x
0 1 x
1 0 x
1 x x

Das heißt: Wenn der Zustand gerade und gleichzeitig ist die Ausgabe, ist der Output entsprechend. 


Das soll das Mikroporgrammsteuerwerk darstellen:


Wir verwenden Hot-One-Codierung, damit wird die Sache sehr übersichtlich

Z0  Z1  Z2      Z0+J    Z1+J    Z2+J        Z0+N    Z1+N    Z2+N        SN  SP  SF
1   0   0       0       1       0           0       1       0           1   1   1
0   1   0       0       0       1           0       1       0           1   1   1
0   0   1       1       0       0           1       0       0           0   0   0

Das schaltwerk berechnet wie oben gesagt: 

SUM_(i = 1)^n (3*i)

Aufgabe 3

a) Vor die Register B und C - deswegen weil, B und C einerseits y und x zugewiesen wird, außerdem: B <- B+D und C <- C-D

b) Was wir hier haben ist eine Entscheidungsbox, Bedingung, was auch immer.

Im Schaltwerk selber bedeutet das: Hier wird eines unser Eingabepins überprüft. Wenn wir uns zurückerinnern, dann sieht die Wahrheitstafel es eines Automaten etwas so Ausgabe

z1 z0 x
...   0
...   1

Dabei ist x unser Eingabepin. Selbst, wenn wir so zu sagen, keine Ausgabe erzeugen, die Eingabe ist immer Teil eines Zustandes. Wenn wir den Zustand haben und verzweigen, heißt das, dass bei einer Eingabe, also ein Pin/Bit dieses Bit so oder so steht, entsprechend verzweigen wir anders.
Das ist Teil des Zustandes. 

Doch würden wir nur die Bedigungsbox aufstellen, hätten wir keinen Zustand z1. Gravierend ist das, wenn wir von z0 kommen, aber auch, wenn wir von z2 kommen. Die Box wäre dann Teil von z2. Das ist insofern schon nicht gut, weil wir dann von z0 nach z2 kämen. 

Hot-One-Kodierung: 4 Zustände: Macht 4 Flipflops

d) 


    SA  SB  SC  SD
Z0  1   1   1   1
Z1  1   1   0   0
Z2  0   1   1   1
Z3  0   0   1   0   

e) Na ja, probieren wir es aus:

100-10-10-10-10-10 = 50
0+10+10+10+10+10 = 50

Ich würde sagen die gerundete Mitte, wie ist es mit 48 und 49

Das stimmt nicht, weil ich gedacht habe, da steht C > B

Da steht aber A < B

Na, was das mathematisch darstellt, weiß ich nicht. 

Wahrscheinlich irgendeine Form von Modulo.