mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Steuerwerk Erklärung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Rack C. (rack_c)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das gegebene Operationswerk aus Abbildung 1 basiert auf den vier 16-Bit 
Registern A, B, R und NUM, dem
4-Bit Register CNT und einer 16-Bit ALU. Sowohl die Eingänge als auch 
der Ausgang der ALU und Register
sind 16 Bit breit. Mithilfe des Steuersignals sub kann die Subtraktion A 
= A - B auf der ALU ausgeführt werden.
Ist das Ergebnis negativ, so setzt die ALU das N-Flag. Als weitere 
Kriterien stehen das U-Flag, welches bei
einem Überlauf des Registers CNT gesetzt wird, und das C-Flag, welches 
das aus dem Register R im Rahmen
eines durch lsrR hervorgerufenen Rechtsshifts herausgeshiftete Bit 
enthält, zur Verfügung. Die Steuersignale clrX (X ∈ {CNT, B , NUM}) 
setzen den Wert des entsprechenden Registers auf 0 und die Steuersignale 
incB
und incCNT inkrementieren die korrespondierenden Registerwerte. Das 
Steuersignal NUMinA erlaubt das
Kopieren des Wertes von Register NUM in Register A wohingegen BinNUM den 
Wert aus dem Register B in
das Register NUM kopiert.
Abbildung 2 zeigt ein für das Operationswerk konzipiertes Steuerwerk, 
deren Analyse Kern dieser Aufgabe
ist.

Kann mir das mal jemand erklären, verstehe das 0.
Danke

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du das wirklich gar nicht verstehst, dann mache dich mal zuerst mit 
Logikschaltungen und deren Symbolen vertraut.

Hoffentlich kennst du die aber schon. In diesem Fall nenne mal bitte 
alle Fachbegriffe aus dem Text, die du nicht kennst, damit wir 
irgendeinen Punkt zum Anfangen haben.

Ansonsten fangen wir nämlich bei Thomas Edison an.

Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Logiksymbole habe ich drauf.

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> Die Logiksymbole habe ich drauf.

Allerdings scheinbar eine sehr kurze Aufmerksamkeitsspanne. Egal, ich 
wiederhole die Bitte nochmal:

> In diesem Fall nenne mal bitte alle Fachbegriffe aus dem Text,
> die du nicht kennst, damit wir irgendeinen Punkt zum Anfangen haben.

Autor: Rack C. (rack_c)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Post kam nicht durch 2 verfasst.
Was hat das mit dem N Flag auf sich, soll ja hier zero flag sein, 
richtig? Wieso wird das 0 gesetzt, wird dann nicht ein negatives 
Ergebnis als 0 dargestellt?
Wie ist das mit der Abbildung des Steuerwerks zu verstehen?
CNT steht ohne Verbindung da, genauso wie isrR.
Was soll ein U Flag sein.
Was ist ein Überlauf eines Registers?
Wie ist so ein Entwurf zu lesen.
edit:

c und u sind anscheinend die Flags aus CNT und isrR
was geschieht dann mit denen laut Abbildung, stehen auch wieder so da.

: Bearbeitet durch User
Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> ... das U-Flag, welches bei einem Überlauf des Registers CNT gesetzt wird

Rack C. schrieb:
> Was soll ein U Flag sein.

Lies einfach nochmal die Aufgabe.

Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Werte diese Flags jeweils wann haben weiß ich immer noch nicht.
und wann isrR einen Shift durchführt und wohin dieser weitergeleitet 
wird.
Genauso was mit den Flags geschieht.

Und wird jetzt bei sub einfach nur 0 als Ergebnis kommen, oder was hat 
es mit dem N Flag auf sich?

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Rack C. schrieb:
> Post kam nicht durch 2 verfasst.

Ist das ein deutscher Satz? Ich verstehe ihn nicht.

> Was hat das mit dem N Flag auf sich, soll ja hier zero flag sein, richtig?

Laut Text zeugt es an, ob das Ergebnis negativ war. Mehr gibt es dazu 
auch nicht zu sagen. Das ist eben so bei dieser ALU. Du sollst das 
Steuerwerk analysieren, nicht die ALU.

> Wie ist das mit der Abbildung des Steuerwerks zu verstehen?

Wie ist was zu verstehen? Du hast geschrieben, dass du mit 
Logikschaltungen und deren Symbolen vertraut bist. Also sollte die 
Funktion des Steuerwerks offensichtlich sein.

> CNT steht ohne Verbindung da, genauso wie isrR.

Ich sehe da keinen "CNT" Anschluss. Nur einen "incCNT" Ausgang. Der soll 
wohl dem CNT Register das Kommando schicken, seinen Wert zu 
inkrementieren (um 1 erhöhen).

> Was ist ein Überlauf eines Registers?

Das ist, wenn der Zähler von einem alten Auto beim Fahren von 99.999 
Kilometer auf 0 springt (weil er nur 5 Ziffern hat).

Das CNT Register hat 4 Bits, daher findet Überlauf statt, wenn es den 
Wert 1111 enthält und dann inkrementiert wird. Das Ergebnis ist dann 
0000.

> Was soll ein U Flag sein.

Steht im Text. Es wird gesetzt, wenn das CNT Register überläuft.

Autor: Frank E. (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Bezeichnung der Flags ist eigenwillig (oder Prozessor-spezifisch?). 
ICH kenne das so:

- SIGN (Vorzeichen), ist 1 wenn Ergebnis der Rechenoperation negativ
- CARRY (Überlauf), ist 1, wenn Operationsergebnis nicht in Register 
passt
- ZERO (NULL), eine Operation hatte das Ergebnis Null
- ...

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Welche Werte diese Flags jeweils wann haben weiß ich immer noch nicht.

Aber die sind doch im obigen Text Beschrieben. Anscheinend sind da noch 
weitere begriffe drin, die du nicht verstehst.

> und wann isrR einen Shift durchführt

Das ergibt sich aus der Logikschaltung des Steuerwerks. Ich frage 
nochmal: Bist du mit allen Symbolen der Logikschaltung vertraut? Wenn 
nicht, musst du nämlich nochmal zurück auf Los. In meiner Ausbildung 
wäre das 1 Jahr zurück gewesen.

> und wohin dieser weitergeleitet wird.

Wer wird weiter geleitet, der Shift? "Der Shift" ist eine Operation des 
R Registers. Da gibt es nichts weiter zu leiten. Das Register führt 
diese Operation aus, wenn es vom Steuerwerk das Signal erhält.

ich denke, dass heißt "lsrR" (steht so oben im Text!). Es schiebt die 
Bits nach rechts. Auch das ist eine grundsätzliche Logik-Operation, die 
du kennen solltest.

Lies das: 
http://www.prof-heuermann.de/files/download/skripte/Digitaltechnik_Skript_04_2017.pdf
https://www.elektronik-kompendium.de/sites/dig/index.htm

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank E. schrieb:
> Die Bezeichnung der Flags ist eigenwillig (oder Prozessor-spezifisch?).

Das wird Absicht sein. Damit niemand in die Versuchung kommt, 
fälschlicherweise anzunehmen, dass alle CPU's gleich funktionieren.

Autor: Axel S. (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank E. schrieb:
> Die Bezeichnung der Flags ist eigenwillig

Ach was. Es geht offensichtlich um eine fiktive ALU.

> ICH kenne das so:

(schnipp)

Namen sind Schall und Rauch. Jede ALU darf Flags haben und nennen, wie 
sie lustig ist. Natürlich gibt es einen Satz an Flags, der für jede 
ALU wünschenwert ist und deswegen typischerweise implementiert wird. 
Bspw. wäre eine ALU ohne Carry-Flag weitgehend nutzlos.

Aber ob man ein Flag für das Vorzeichen nun S(ign) oder N(egative) 
nennt, ist ein unwichtiges Detail. Tatsächlich würde ich N(egative) 
vorziehen, weil da klar ist, was ein gesetztes Flag bedeutet. Bei S(ign) 
muß man zusätzliche Interpretationsregeln kennen, um zu wissen ob ein 
gesetztes S Flag nun positiv oder negativ bedeutet.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank E. schrieb:
> Die Bezeichnung der Flags ist eigenwillig (oder Prozessor-spezifisch?).
> ICH kenne das so:

Jeder, der so ein Steuerwerk konzipiert, darf seine Flags so nennen, wie 
er möchte und sie setzen, unter welchen Bedingungen er möchte.
Wenn das bei obigem Steuerwerk so geregelt ist, wie oben beschrieben, 
dann ist das so. Basta.

Autor: Dr.Who (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bild 2
Die Takt-Schaltung ist eh Quatsch, weil die Bedingung vom Und A^B=1
ja nie erfüllt wird. Die Wahrheitstabelle bringt es ans Licht.

Das ganze soll wohl eine Eigenkreation sein?

Beim Reset würde ich auch den R-Eingang von dem Register beschalten
und nicht einen Takteingang.

Bild 1
Wie das schon erwähnt wurde, ist das eine Alu mit den dazu gehörenden
Registern.

Grob beschrieben:
Ein Steuerwerk lädt den Befehlssatz aus dem Speicher in das dafür 
vorgesehene Register(fetch),interpretiert den Maschinencode(decode)
und erzeugt die Signale (execute)um das Datum (Singular von Daten)
logisch weiter zu bearbeiten.

https://de.wikipedia.org/wiki/Steuerwerk

Autor: Axel S. (a-za-z0-9)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dr.Who schrieb:
> Bild 2
> Die Takt-Schaltung ist eh Quatsch, weil die Bedingung vom Und A^B=1
> ja nie erfüllt wird. Die Wahrheitstabelle bringt es ans Licht.

Praktiker wissen, daß Gatter Laufzeiten haben. Der Takt und der 
invertierte Takt erreichen das AND Gatter nicht exakt zur gleichen Zeit. 
Im Ergebnis ist diese "sinnlose" Teilschaltung ein Detektor für die 
steigende Flanke des Taktsignals.

Autor: Rack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgende Aufgaben dazu.
Könnt mir sonst so weiterhelfen, geht um Klausurvorbereitung.

Um welche Art von Steuerwerk handelt es sich?

Welche Funktionalität realisiert die Teilschaltung aus Abbildung 3? 
(mit der 1 und Takt)

Analysieren Sie nun das in Abbildung 2 gegebene Steuerwerk für das 
Operationswerk aus Abbildung 1, indem Sie die nachfolgend die 
Steuersignale ergänzen.

      RT-Quellcode           Steuersignale
 declare register CNT(3:0),A(15:0),B(15:0), 
R(15:0),NUM(15:0),C,N,U
 R <- 252, CNT <- 0, A <- 0, U <- 0, B <- 0;
 LOOP:      ________________________________;    ________________ 
if _________ then
         ______________________________  _________________ 
fi,
 ________________________________; ________________ 
________________________________; ________________ 
if _________ then
         ______________________________  _________________ 
fi,
 ________________________________; ________________ 
CHECK:
      ________________________________; ________________ 
if _________ then
         _____________________________
      fi; END: goto END;


Geben Sie nun die zu den Steuersignalen korrespondierenden 
Registertransferoperationen an, indem Sie den RT-Code ergänzen. Das 
Setzen der einzelnen Flags müssen Sie nicht realisieren.

Welche der nachfolgend genannten Berechnungen wird vom Steuerwerk auf 
dem Operationswerk durchgeführt?

o Berechnung der Hamming-Distanz von A und B o Zählen der im Wert von R 
vorkommenden 1en.  o Zählen der im Wert von R vorkommenden 0en. o 
Berechnung der Länge (Anzahl an Bits) des längsten zusammenhängenden 
Blocks an 1en in R. o Berechnung der Länge (Anzahl an Bits) des längsten 
zusammenhängenden Blocks an 0en in R.  o Berechnung der Parität

Wie oft wird die im Algorithmus vorkommende Schleife (Loop) je Durchlauf 
des Algorithmus abgearbeitet?

Autor: Rack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und mit dem Steuerwerkt und CNT meinte ich, dass es ja ohne 
BUSverbindung dasteht laut Modellierung hat es keine Verbindung zu 
anderen Registern.
Genauso wie R

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Formatiere das erst einmal ordentlich. Das ist ja eine Frechheit! Wie 
kann man nur so Faul sein?

Autor: Rack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ändert das am Inhalt? Nichts

Autor: Rack (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
..

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Rack schrieb:
> was ändert das am Inhalt? Nichts

So isses. Also: Musterloesung her, aber pronto!
Nicht immer nur rummotzen.

SCNR,
WK

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Rack schrieb:
> was ändert das am Inhalt?

Es macht ihn verständlich und es zeigt, dass der TO sich die angemessene 
Mühe gibt.

Ich habe kein Mitleid mit faulen Menschen, die anderen auf der Tasche 
liegen, alle Arbeiten delegieren, arbeitende herabwürdigen, und darauf 
auch noch Stolz sind (nicht wahr, finanzberater?).

Zur eigentlichen Frage: Rack, du hast geschrieben, dass du mit der 
Logikschaltung vertraut bist. Meine wiederholten Zweifel und Rückfragen 
hast du nicht beantwortet. Dennoch zeigst du hier erneut wieder nur die 
Aufgabe ohne auch nur einen geringsten Einblick in deinen persönlichen 
Lösungsansatz vorzulegen.

So kann man Dir nicht helfen.

Wer es überhaupt nicht kann, den sollte man auch nicht zu einem 
gemogelten Abschluss verhelfen.

Also Rack, zeige uns, was du kannst und wo deine Grenzen sind. Dann 
helfen wir dir, dein Know-How zu erweitern. Wir werden hier aber an 
deiner Stelle deine Aufgaben lösen.

: Bearbeitet durch User
Autor: Rack (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
was ist das z.B. das.
Ich kann es nicht und frage nach Hilfe wo ist da ein Problem?
Dachte man bekommt hier Hilfe, wenn man etwas nicht versteht.

Autor: Rack (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
sehe da 2D und 3D aber nicht deren Verhalten und genauso mit C1 usw.

Die anderen Symbole habe ich wie bereits gesagt drauf und oder negation

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack schrieb:
> was ist das z.B. das.
> sehe da 2D und 3D aber nicht deren Verhalten und genauso mit C1 usw.

Aha, jetzt kommen wir voran. Da hat sich mein provokatives Meckern ja 
doch gelohnt.

Wenn man sich dumm stellt, findet man bei Google ähnliche Bilder und den 
Hinweis, dass es sich um ein ANSI/IEC Logiksymbol handelt. Mit dem 
Stichwort findet man zahlreiche Erklärungen der Symbole.

Im Kopfbereich zeigt das Symbol vier Steuereingänge, darunter einen 
Speicher (Schieberegister) mit 7 Bit breite.

C1 → : Der Speichereinhalt wird nach unten geschoben. Die oberste 
Speicherzelle hat danach einen undefinierten Inhalt weil ihr Eingang D1 
offen ist.
C2 ← : Der Speichereinhalt wird nach oben geschoben. Die unterste 
Speicherzelle hätte danach einen undefinierten Wert, weil dessen Eingang 
D2  offen ist. Allerdings kommt das nicht vor, weil dieser Steuereingang 
nicht benutzt wird.
C3   : Der Speicher übernimmt die Signale von seinen 3D Eingängen 
(parallel load)
R    : Der Speicher wird auf 0000000 zurück gesetzt

C steht hier übrigens für "Clock" und R für "Reset". Darunter bedeutet 
ein D auf der linken Seite "Data input" und ein Q auf der rechten Seite 
"Data output", wobei hier jemand die rechte Seite schlampigerweise nicht 
beschriftet hat. D3 sind die Eingänge für das Taktsignal C3.

Hier hat jemand beschrieben, aus welchen Grundgattern so ein komplexes 
Schieberegister bestehen könnte: 
https://www.allaboutcircuits.com/textbook/digital/chpt-12/parallel-in-parallel-out-universal-shift-register/

Ich hoffe das hilft Dir weiter. Ich will nicht alles vorsagen, deswegen 
schau erst mal, wie weit du die Funktion der Steuerung nun 
nachvollziehen kannst.

: Bearbeitet durch User
Autor: Axel S. (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack schrieb:

[Schaltzeichen]

> was ist das z.B. das.

Das ist schon mal kein Standard-Schaltzeichen. Aus dem Kontext würde ich 
auf ein Schieberegister tippen. Aber die Bezeichnungen an den 
Eingängen(?) links ergeben keinen rechten Sinn.

Wahrscheinlich wird das auf vorhergehenden Seiten bzw. überhaupt im 
Lehrmaterial erklärt.

> Ich kann es nicht und frage nach Hilfe wo ist da ein Problem?
> Dachte man bekommt hier Hilfe, wenn man etwas nicht versteht.

Du kannst Hilfe für konkrete Fragen bekommen. So wie die eben.

Andererseits:

Rack C. schrieb:
> Die Logiksymbole habe ich drauf.

Und jetzt fragst du gerade danach, was du angeblich "drauf" hast.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
C steht hier übrigens für "Clock" und R für "Reset". Darunter bedeutet 
ein D auf der linken Seite "Data input" und ein Q auf der rechten Seite 
"Data output", wobei hier jemand die rechte Seite schlampigerweise nicht 
beschriftet hat. D3 sind die Eingänge für das Taktsignal C3.

Dass die Pfeile "Schieben" bedeuten, habe ich ehrlich gesagt geraten*. 
Alle anderen Interpretationsmöglichkeiten die mir sonst eingefallen 
sind, würden keinen Sinn ergeben.

*) ich hätte es aber wissen müssen, denn ich habe das vor vielen 
Jahren gelernt.

: Bearbeitet durch User
Autor: Rack (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Danke schonmal.

Nächste Frage, wie muss ich bei den Steuersignalen der Loop usw 
vorgehen?
Linke Seite schreiben, z.B. RESET & TAKT -> 3D ^ TAKT -> IsrR ?
Wenn man das gerade nachvollziehen kann was ich meine.
Also einfach, wann diese Signale gesetzt werden?

Autor: Rack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe die Schaltung jetzt simuliert und dadurch gecheckt.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack schrieb:
> Linke Seite schreiben, z.B. RESET & TAKT -> 3D ^ TAKT -> IsrR ?
> Wenn man das gerade nachvollziehen kann was ich meine.

Kann ich leider nicht nachvollziehen.

Ich gehe doch mal stark davon aus, dass der Reset Impuls einmalig zum 
Initialisieren ausgelöst wird und der Takt danach fortlaufend 
stattfindet. Alles Andere ergibt sich daraus (und aus dem Programm 
natürlich).

Überlege dir lieber, welche Befehle diese CPU ausführen kann und wie sie 
das tut.

: Bearbeitet durch User
Autor: Rack (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Reset 1 und Takt 1 ergibt 1 für 3D_1.
Dann nochmal Takt 1 ergibt 3D_2 und somit IsrR

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Überlege dir lieber, welche Befehle diese CPU ausführen kann und wie sie
> das tut.

Sorry, das war blöd formuliert.

Ich meinte, du sollst Dir überlegen in welchem Zustand das 
Schieberegister nach dem Reset ist und wie es dann pro Takt weiter geht.

> Reset 1 und Takt 1 ergibt 1 für 3D_1.
> Dann nochmal Takt 1 ergibt 3D_2 und somit IsrR

Genau, darauf wollte ich hinaus.

Der Nächste Takt wäre incB, aber nur wenn C=1 ist.

: Bearbeitet durch User
Autor: Rack (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Und Reset 0 bleibt.
Wie schreibt man das als RT Quellcode auf? Soll soweit ich es jetzt 
verstanden habe rechts immer die Signale angeben, die dann aktiviert 
werden.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Rack schrieb:
> Wie schreibt man das als RT Quellcode auf?

Keine Ahnung. Ich würde erstmal mit einer Tabelle anfangen. Eine Zeile 
pro Takt und horizontal die Signale.

Wenn die Kreuzchen eingetragen sind, kann man vielleicht als Text 
daneben Schreiben, was die Operationen bewirken.

: Bearbeitet durch User
Autor: Rack C. (rack_c)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Soll dann sowas sein.
Jetzt weiß ich nicht weiter wie ich das auf die Aufgabe anwende.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, so ist das gemeint.

Dann beschreibe halt in diesem Stil, was beim Reset/Init passiert und 
was danach passiert.

Mehr kann ich dazu nicht sagen, ohne gleich alles vorzusagen.

Hilft Dir jetzt nicht, ich weiß. Sorry.

Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mit den Registern grad wenig anfangen.

Was sagt mir, dass R 1111 1100 ist?
Soweit ich es verstehe wie oft der 2. Takt erreicht wurde oder nicht?
Kann aber dadurch dass CNT 0 ist ja auch irgendwie nicht sein, außer es 
ist zufällig dann n Überlauf

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die initiale Belegung der Register muss irgend jemand (du?) vor dem 
Programmstart festlegen. In der Aufgabenstellung ist das offen gelassen. 
Für die Analyse des Steuerwerks spielt es auch keine Rolle.

: Bearbeitet durch User
Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wurde eben nicht offen gelassen die Register werden initialisiert
      RT-Quellcode
 declare register CNT(3:0),A(15:0),B(15:0),
R(15:0),NUM(15:0),C,N,U
 R <- 252, CNT <- 0, A <- 0, U <- 0, B <- 0;

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> Wurde eben nicht offen gelassen die Register werden initialisiert

Das konnte ich nicht wissen, diesen Teil der Aufgabenstellung hast du 
nicht gezeigt. Den Rest kriegst du alleine gelöst, nehme ich an. 
Richtig?

: Bearbeitet durch User
Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, siehe weiter oben, als ich darauf hingewiesen wurde richtig zu 
formatieren.
Nein, eben nicht, habe für den Teil keinen Ansatz.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> Doch, siehe weiter oben, als ich darauf hingewiesen wurde richtig zu
> formatieren.

Aaah, sehr gut. Das habe ich übersehen.

Die erste Aktion (nach der Initialisierung und Reset) ist lsrR. Hast du 
selbst erkannt:

> Dann nochmal Takt 1 ergibt 3D_2 und somit lsrR
R = 252 = 0000 0000 1111 1100
shift     0000 0000 0111 1110 = 126

R hat jetzt also den Wert 126.
Das C Flag ist danach 0 weil eine 0 herausgeschoben wurde.

> Der Nächste Takt wäre incB, aber nur wenn C=1 ist.

C ist aber nicht 1. Parallel dazu führt der selbe Ausgang des 
Steuer-Registers zur Aktion NUMinA. Ich habe keinen Startwert für NUM 
gefunden, also lassen wird das mal als Variable so stehen. A <- NUM.

Beim nächsten Takt wird die Aktion sub ausgelöst. A <- (A - B)
Da B den Wert 0 hat, bleibt A unverändert.

Du musst nach jeder Aktion überlegen, welche Register beinflusst werden 
und danch welche Flags durch die Änderung der Register beeinflusst 
werden, denn davon hängt teilweise ab, wie das Steuerwerk weiter macht.
...

Irgendwann wird C=1 sein und dann wird incB ausgeführt und zugleich 
wegen dem Takt C3 ein neuer Wert von den D3 Eingängen parallel in das 
Steuer-Register geladen.

Das wäre ein bedingter Sprung, vermutlich der Punkt, wo entschieden 
wird, ob eine Schleife (loop) wiederholt wird, oder nicht.

: Bearbeitet durch User
Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie gebe ich da dann einen shift an? R(1:1) <- R(2:1)?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> wie gebe ich da dann einen shift an? R(1:1) <- R(2:1)?

Das würde nur ein Bit schieben.

Weiss ich nicht. Vollständig dargestellt müsste man wohl so etwas 
schreiben:

C <- R(0), R(14:0) <- R(15:1), R(15) <- 0,

Aber frage das mal liebe deinen Lehrer/Professor. Denn mit dieser 
Schreibweise bin ich nicht vertraut.

: Bearbeitet durch User
Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also is das immer R(x,y) x bis y?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> also is das immer R(x,y) x bis y?

Wenn du das Komma durch einen Doppelpunkt ersetzt, dann ja. Komma ist 
eine Auflistung einzelner Bits. Der Doppelpunkt gibt einen Bereich 
von-bis an. Da bin ich mir absolut sicher.

Autor: Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack schrieb:
> Könnt mir sonst so weiterhelfen, geht um Klausurvorbereitung.

Sehr gut! Klausuren bei denen gesiebt wird, erfüllen ihren Zweck zu 
100%.

Hoffentlich wird in der Klausur möglichst viel vom Stoff abgefragt, und 
zwar so, dass auswendig lernen nichts nützt, sondern nur verstehen!

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist schon schräg, ein Realschüler (ich) hilft einem Akademiker bei 
seiner Klausur. Kann das gut gehen?

: Bearbeitet durch User
Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C <- R(0), R(14:0) <- R(15:1), R(15) <- 0;  (IsrR)
LOOP:
if c = 1 then
B <- B+1 (incB)
fi
A<- Num
A<- A-B

if N = 1 then
NUM <- Num
fi
B <- 0


CHECK:

CNT <- CNT + 1         incCnt

if CNT < 15 then
goto Loop
fi

END:
goto END;

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rack C. schrieb:
> if c = 1 then
>    B <- B+1 (incB)
> fi

Da passiert noch mehr:
if c = 1 then
   B <- B+1 (incB)
   if U=0 && SteuerRegister.6=1 then
      SteuerRegister <- 01000001 (binär)
   else
     SteuerRegister <- 01000000 (binär)
   fi
fi

Ich denke, das musts du noch weiter auflösen, so dass in deinem 
Pseudo-Quelltext das Steuerregister gar nicht mehr genannt werden muss.

Den Rest habe ich nicht geprüft. Das ist jetzt nur noch eine 
Fleißarbeit, durch die du durch musst.

Autor: Erich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.)
Was hat das hier im Unterforum
 >Analoge Elektronik und Schaltungstechnik
zu suchen?

2.)
Sollte man nicht generell ein Unterforum
 >Hausaufgabenhilfe für faule Schüler und Studenten
einrichten?

Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SteuerRegister.6=1 wieso .6? meinst du damit 3D.2 ?
Muss das also wahrscheinlich mitangeben, hat mich schon gewundert, diese 
zu ignorieren.

: Bearbeitet durch User
Autor: Erich (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Rack schrieb:
> Könnt mir sonst so weiterhelfen, geht um Klausurvorbereitung.

Rack C. schrieb:
> Das ist keine Hausaufgabenhilfe ich versuche dadurch das Thema zu
> verstehen.

Hä?????

Autor: Rack C. (rack_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorbereitung auf eine Klausur ist Lernen, versuche das gerade zu lernen.
Und eine Hausaufgabe ist das nicht, nämlich eine Aufgabe einer 
Altklausur, die ich verstehen will.

Autor: Dr.Who (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat der TO eigentlich kein Script von der Vorlesung?
Da müsste doch alles drin stehen.

Beitrag #5996509 wurde vom Autor gelöscht.
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> SteuerRegister.6=1 wieso .6?

So benenne ich das Bit 6 vom Steuerregister (also das unterste), weil es 
keinen Namen hat. Man könnte auch Steueregister(6) schreiben.

> meinst du damit 3D.2

Nein, das gibt es nicht. Das wäre Bit 2 vom Register 3D, es gibt aber 
kein Register mit diesem Namen.

: Bearbeitet durch User
Autor: Dr.Who (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erich schrieb:
> Rack C. schrieb:
>> Das ist keine Hausaufgabenhilfe ich versuche dadurch das Thema zu
>> verstehen.
>
> Hä?????

Der TO scheint zu glauben, er bekäme hier Nachhilfe.
Das kann das Forum vom Aufwand wohl nicht leisten.
Schon deshalb nicht, weil der Bildungsstand jedes Posters
ja ein anderer ist.
Wenn er ausgesiebt wird, wohl zu recht.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt hört doch mal auf zu lästern. Ich finde, das deutlich erkennbar 
ist, dass meine Anreize fruchten. Er hat sich zu den Punkten selber 
weiter informiert und Schlüsse gezogen (nicht alle richtig, aber sei's 
drum). Wir haben hier bestimmt keinen rotzfaulen Menschen vor uns, der 
andere für sich arbeiten lässt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.