ich habe die Frage 4.2 und 4.3 nicht ganz gut verstanden . kann mir bitte jemand helfen. bin dankbar
Jele D. schrieb: > ich habe die Frage 4.2 Zähl die richtigen Blasen und runde den logarithmus dualis auf die nächste höhere Ganzzahl auf.
Mcn schrieb: > logarithmus dualis Entweder es ist eine Fangfrage und die Antwort ist 1 Register für den Zustand oder unsauber formuliert und nach Anzahl der Speicherstellen dieses einen Registers gemeint. Aber auch dann gilt ld nur für Kodierungen als Zahl, bei One-Hot Kodierung z.B. werden mehr 5 oder 4 (optimiert) gebraucht. Ohne explizite oder implizite (nur eine Kodierung wurde gelehrt) Angabe der Kodierung ist der zweite Teil von 4.2 unlösbar.
Wenn die Kodierung nicht vorgegeben ist würde ich alle bekannten Codierungen als möglich ansehen und die mit dem geringsten Speicherverbrauch nehmen - den benötigt man mindestens. Alles andere ist optional und verbessert die Robustheit/Performance etc.
zu 4.3) Da kann man kaum Tipps geben ohne die Lösung zu verraten... Geh das einfach mal Beispielhaft durch und überleg dir, in welchen Zuständen du wie lange bleiben kannst (z.B. in dem, der die "1" ausgibt).
Die Antwort auf 4.2 lautet "fünf Zustände, für deren Codierung mindestens 3 Register nötig sind" Bei 4.3 sind wir nach dem Reset und der vorgegebenen Vektorfolge in S_3, der bedingungslos in S_4 mit Ausgangssignal 1 übergeht und dort so lange bleibt, bis der Eingangsvektor 10 wird.
Blechbieger schrieb: > Mcn schrieb: >> logarithmus dualis > > Entweder es ist eine Fangfrage und die Antwort ist 1 Register für den > Zustand oder unsauber formuliert und nach Anzahl der Speicherstellen > dieses einen Registers gemeint. Also es wird in der Aufgabe eindeutig auf einen Zusammenhang zwischen Anzahl der Zustände und anzahl der Register verwiesen. Und mit register ist im Bereich VHDL/FPGA schon ein einzelnes Register gemeint und nicht wie in der Software-Programmierung ein Element aus dem Registersatz des Prozessors: https://en.wikipedia.org/wiki/Hardware_register#Register_varieties > Angabe der > Kodierung ist der zweite Teil von 4.2 unlösbar. Nope, die Aufgabestellung ist so lösbar! Das es abhängig von der Kodierung mehr als eine Lösungsvariante geben könnte sei dahin gestellt. Falls eine andere Kodierung als binär verwendet werden soll, muss auch eine passende Begründung für den mehraufwand gegeben werden.
Die ganze Aufgabe ist extrem schlamping und missverständlich formuliert, der Aufgabensteller ist offenbar selbst ein Anfänger. Kein Wunder, dass hier Missverständnisse entstehen. Ich formuliere mal um: 4.1 Welche allgemeinen Arten von Zustandsautomaten unterscheidet man? Von welcher Art ist der oben beschriebene Zustandsautomat? Begründen Sie Ihre Antwort. 4.2 Wieviele Bits sind zur Zustandscodierung mindestens notwendig? Begründen Sie Ihre Antwort. 4.3 Wie lange (gezählt in Takten!) hat das Ausgangssignal den Zustand "1", nachdem die vorgegebene Vektorfolge durchlaufen wurde, wenn sich die Zustandsmaschine zuvor im Zustand S_0 befand? 4.4 Erstellen Sie ein VHDL-Modell des Zustandsautomaten ausgehend von der unten vorgegebenen Entity. Zur Vereinfachung können Sie die Modellierung der Zustände S_2 und S_3 weglassen.
Lothar M. schrieb: > bedingungslos in S_4 mit Ausgangssignal 1 übergeht und dort so lange > bleibt, bis der Eingangsvektor 10 wird. nop. auch S4 "dauert" nur genau einen Takt. nur der Folgezustand hängt davon ab, ob die Eingänge auf 10 stehen oder nicht.
Achim S. schrieb: > auch S4 "dauert" nur genau einen Takt. nur der Folgezustand hängt davon > ab, ob die Eingänge auf 10 stehen oder nicht. Stimmt, die 10 nach rechts habe ich übersehen... :-/ Davon ausgehend gibt es 2 Antworten: "Prinzipiell" dauert keiner der Zustände der FSM irgendeine Zeit, weil die FSM nämlich "taktlos" ist (deshalb findet sich da als Weiterschaltbedingung nirgends ein Takt). Deshalb ist die theoretische Dauer von Ausgang=1 unendlich kurz. Allerdings braucht die Umsetzung in reale Hardware so einen Takt. Und pro Takt kann die FSM einen Zustand weiterschalten. Hier müssen 2 Zustände mit Ausgang=1 durchlaufen werden, was zu t = 2x1/fosc führt. vancouver schrieb: > der Aufgabensteller ist offenbar selbst ein Anfänger Wenn nicht, dann wäre er ziemlich fies. Denn da geht es ja quasi um philosophische Betrachtungen.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Davon ausgehend gibt es 2 Antworten: > "Prinzipiell" dauert keiner der Zustände der FSM irgendeine Zeit, weil > die FSM nämlich "taktlos" ist (deshalb findet sich da als > Weiterschaltbedingung nirgends ein Takt). Schaut man sich die entity-decleration am Ende des Aufgaben-Blattes an ist die FSM nicht notwendigerweise 'taktlos'. Natürlcih könnte aber auch mit CLK irgendetwas anderes als ein Takt gemeint sein.
Mcn schrieb: > Schaut man sich die entity-decleration am Ende des Aufgaben-Blattes an > ist die FSM nicht notwendigerweise 'taktlos'. Meine Rede von der "Umsetzung aus der Theorie in die Praxis" . Denn natürlich weiß jeder, dass da in der Realität ein Takt beteiligt ist. Asynchrone FSM sind nur in Ausnahmefällen implementierbar, weil dazu ein graycodierter Eingangsvektor nötig ist.
Lothar M. schrieb: > Denn da geht es ja quasi um > philosophische Betrachtungen. So wie die Aufgaben formuliert sind, glaube ich kaum, dass sich der Aufgabensteller um solche Dinge Gedanken gemacht hat. Er wollte die Anzahl der Takte wissen, hat aber nach einer Zeit gefragt, und wenn man ganz pingelig ist, könnte man anmerken, dass nirgendwo gschrieben steht, dass die FSM in Hardware als digitale Schaltung realisiert werden soll. Man könnte sie auch in Python oder Java implementieren, und zwar auf die unterschiedlichsten Arten. Dann ist die Aufgabe 4.3 schlichtweg nicht zu beantworten.
vancouver schrieb: > und wenn man > ganz pingelig ist, könnte man anmerken, dass nirgendwo gschrieben steht, > dass die FSM in Hardware als digitale Schaltung realisiert werden soll. > Man könnte sie auch in Python oder Java implementieren, und zwar auf die > unterschiedlichsten Arten. Dann ist die Aufgabe 4.3 schlichtweg nicht zu > beantworten. Da aber ein Lösungstemplate als VHDL-Code am Ende das Blattes steht ist nicht davon auszu gehen, das hier nach einer Python oder Java-Implementierung gefragt wurde. Auch im Titel schreibt der TO "VHDL" und nicht Java o.ä.. Ganz abgesehen davon das die Aufghabe in das Forum: FPGA, VHDL & Co. gepostet wurde. IMHO ist esganz schlechter Stil und führt schnell "zum Schuß ins eigene Knie" um Formulierungsdetails herumzudisktutieren um dann, sollte der Autor auf eine Antwort insistieren mit einer Ausrede wie "ist nicht beantwortbar" ums Eck zu kommen.
Mcn schrieb: > IMHO ist es ganz schlechter Stil Ich habe es absichtlich auf die Spitze getrieben um zu zeigen, dass eine unsaubere Formulierung des Problems leicht zu Missverständnissen führt, so wie in diesem Fall. Ist schon klar, dass es bei dieser Aufgabe um VHDL geht. Mcn schrieb: > Formulierungsdetails Es geht hier um weit mehr als Formulierungsdetails. Der TO hat ja geschriebven, dass er zwei Aufgaben nicht versteht, und beim Lesen des Blattes musste ich ihm Recht geben. Natürlich kann man das Geschreibsel auf naheliegende Weise interpretieren ("Register(Speicher)"=Bits des Zustandsregisters, "zeiliche Länge"=Anzahl der Taktzyklen, "VHDL-Programm"=synthetisierbares RTL-Modell), aber es ist nicht so ganz fair, die Studenten raten zu lassen, was der Kauderwelsch bedeuten soll. Ich habe einige Semester lang Übungen und Klausuren an der Uni betreut und machmal die absonderlichsten Antworten auf Fragen bekommen, die für meine Begriffe eindeutig gestellt waren. Dabei habe ich dann gelernt, solche Probleme wasserdicht und unmissverständlich zu formulieren, was mir heute z.B. beim Schreiben von Specs und Dokumenationen hilft. Der Autor der Aufgaben aus dem obigen Beispiel ist davon offensichtlich meilenweit entfernt.
Mcn schrieb: > Und mit register > ist im Bereich VHDL/FPGA schon ein einzelnes Register gemeint Das ist für mich ein Flipflop, ein Register impliziert für mich mehrere FF. Zumindest wenn man bei VHDL vom RTL redet sind nicht einzelne FF gemeint sondern Register beliebiger Breite.
Blechbieger schrieb: > Mcn schrieb: >> Und mit register >> ist im Bereich VHDL/FPGA schon ein einzelnes Register gemeint > > Das ist für mich ein Flipflop, ein Register impliziert für mich mehrere > FF. Zumindest wenn man bei VHDL vom RTL redet sind nicht einzelne FF > gemeint sondern Register beliebiger Breite. Bitte folge dem beigefügten Link, da steht: "Hardware register in digital electronics, especially computing, hardware registers are circuits typically composed of flip flops" Der Vergleich mit Register Transfer Level greift bei FSM im FPGA nicht, der Datenpfad ist da zu unterschiedlich: Bei RTL ist der Datenausgang des Quellregister mit dem Dateneingang des Zielregister direkt (datenbus) verbunden (chip enable-Steuerung) oder über einen Multiplexer. Bei einer FPGA FSM-Implementierung gibst es keine zwei Register, Quell- und Ziel., es gibt eine einzelne Speicherstelle (Zustandsspeicher) deren Ausgang q über ein kombinatorisches Netzwerk mit dem Eingang d verbunden ist. In der Kombinatorik wird die Kodierung des Zustands mit dem Eingangssignalen der FSM verknüpft und daraus der neue Zusandscode entsprechenden der State-transition berechnet. Diee Kombinatorik wird in der Regel aus LUT's im Logicmode gebildet, nicht aus Block- oder distributed RAM (LUT's im memory-mode) wie ein ein (klassisches) Registerfile. Man kann auch mit dem Synthesetool rumspielen, gelegentlich gibt es neben der Auswahl der Codierung auch die Auswahl der Implementierung und sich dann die erzeugten netze anschauen. STA drüberlaufen lassen ist auch spannend, da gibt es zum Teil erhebliche Unterschiede. -- >Natürlich kann man das Geschreibsel >auf naheliegende Weise interpretieren ("Register(Speicher)"=Bits des >Zustandsregisters, "zeiliche Länge"=Anzahl der Taktzyklen, >"VHDL-Programm"=synthetisierbares RTL-Modell), aber es ist nicht so ganz >fair, die Studenten raten zu lassen, was der Kauderwelsch bedeuten soll. Also IMHO kann es keine wasserdichte Formulierungen geben. Das kann man auf volksnahe Weise aus der Anzahl von Juristen und Gerichtsprozessen ableiten oder auf exakte Weise aus dem Scheitern des Hilbertsprogramm wie durch Kurt Gödel aufgezeigt. https://de.wikipedia.org/wiki/Hilbertprogramm Und diese Aufgabenstellung ist offensichtlich aus ihrem Context (Lehrbuch, Vorlesungsreihe) gerissen. Dieser Context ist nunmal erforderlich, ansonsten müsste man jede Aufgabe um ellenlangen Glossars und Definitionen ergänzen. Und diese Verbindung zum konkreten Kontext kann nur der TO selbst leisten. Aber dabei kann man es ihm schwerer machen, wenn man mit rabulistischen Eifer Fehl-Interpretationen oder Context fremde Auslegungen in die Diskussion streut. Gerade wenn es scheint, das der TO selbst "auf dem falschen Dampfer" unterwegs ist, und ihm die Unterschiede zwischen CPU-programmierung und Hardware-Programmierung (FPGA-Implementation) nicht bewußt sind. https://de.wikipedia.org/wiki/Rabulistik
Mcn schrieb: > "Hardware register in digital electronics, especially computing, > hardware registers are circuits typically composed of flip flops" Meine Worte. Are composed of flip flops, nicht are flip flops. Vom selben Link „Registers are normally measured by the number of bits they can hold, for example, an "8-bit register" or a "32-bit register".“ Mcn schrieb: > Bei RTL ist der Datenausgang des Quellregister mit dem Dateneingang des > Zielregister direkt (datenbus) verbunden (chip enable-Steuerung) oder > über einen Multiplexer. Zum einen können Quell- und Zielregister identisch sein, zum anderen werden sie meistens nicht direkt sondern kombinatorisch verbunden. Beispiel C=A+B. Mcn schrieb: > Bei einer FPGA FSM-Implementierung gibst es keine zwei Register, Quell- > und Ziel., es gibt eine einzelne Speicherstelle (Zustandsspeicher) deren > Ausgang q über ein kombinatorisches Netzwerk mit dem Eingang d verbunden > ist. Was daher keinen Widerspruch zu RTL darstellt.
Blechbieger schrieb: > Zum einen können Quell- und Zielregister identisch sein, zum anderen > werden sie meistens nicht direkt sondern kombinatorisch verbunden. > Beispiel C=A+B. Das ist aus meiner Sicht kein Registertransfer sonder die Verknüpfung zweier Registerinhalte über eine ALU. > Mcn schrieb: >> Bei einer FPGA FSM-Implementierung gibst es keine zwei Register, Quell- >> und Ziel., es gibt eine einzelne Speicherstelle (Zustandsspeicher) deren >> Ausgang q über ein kombinatorisches Netzwerk mit dem Eingang d verbunden >> ist. > > Was daher keinen Widerspruch zu RTL darstellt. Nach meinen Verständniss schon. Vielleicht musste wirklich mal einen klassischen FSM-Entwurf (Zustandstabelle, Karnough) statt HDL-synthese im Computer per Hand durchziehen um den Unterschied zwischen Register-Transfer und Zustandcodierung/Übergangsberechnung in einer FSM nachzuvollziehen. Vielleicht wird das auch heute nicht mehr gelehrt.
Blechbieger schrieb: > for example, an "8-bit register" or a "32-bit register ... or an "1-bit register", why not?
:
Bearbeitet durch Moderator
vancouver schrieb: > Die ganze Aufgabe ist extrem schlamping und missverständlich formuliert, Das habe ich mir auch auf Anhieb gedacht! Vor allem die Sprache ist so, wie es sich heutzutage auf facebook liest. Das provoziert inhaltliche Misverständnisse und ist auch noch ein schlechtes Vorbild für die Lernenden. > der Aufgabensteller ist offenbar selbst ein Anfänger. Denke ich auch, entweder - Dozent an einer dualen Hochschule - Dokorand an einer vormaligen FH - studentischer Mitarbeiter an einer Uni (die drei haben etwa das gleiche Alter und denselben Level, also mittelmäßige Lehrbefähigung. > Ich formuliere mal um nichts hinzuzufügen
Mcn schrieb: > Und diese Aufgabenstellung ist offensichtlich aus ihrem Context > (Lehrbuch, Vorlesungsreihe) gerissen. Dieser Context ist nunmal > erforderlich, Sehe ich anders! Die Formulierungen müssen in sich stimmig sein. Wenn da steht "zeitliche Länge" ist das einfach nur müllig. Es gibt die Worte "Periodendauer", "Periodenlänge", "Periodenanzahl" um absolute und relative Bezüge von Zeiten zu bezeichnen, also Sekunden, Prozente und Anzahl N. Hier wäre wohl letzteres das Beste um die Taktanzahl zu nennen. Aber in Zeiten wo es immer mehr "schnelle Geschwindigkeiten" und "langsame Zeiten" gibt ... Mcn schrieb: > Unterschied zwischen Register-Transfer und > Zustandcodierung/Übergangsberechnung in einer FSM Dieser Unterschied liegt in der praktischen Umsetzung. Das ist selbst in C so. > Vielleicht wird das auch heute nicht mehr gelehrt. Zustandsautomaten und die Formeln darum waren zu allen Zeiten in allen Studiengängen priorisiertes Thema. Wir haben das im Elektropraktikum noch mit digitalen Zählern nachgestellt, die zu Schaltungen führten, die wie die ersten SPS arbeiteten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.