Servus, in einem anderen thread wurde am Beispiel FSM-Erstellung die These aufgestellt, das sich dies zwischen FPGA und µC-Spezialisten unterscheidet: > Meistens Autodidakten, die aus der C-Ecke kommen und von > Elektronik nichts verstehen. Digitaltechnik haben sie nicht erlernt, > kennen die Mechanismen nicht und programmieren state machines. Dann > arbeiten sie viel mit Code-Generatoren und wundern sich, ... (siehe: Beitrag "Re: Projektverzug und Bugdichte in der FPGA-Entwicklung") Ich hab da mal ein paar Fragen aufgestellt, um heraus zu loten, wo ob einer eher ein allgemeiner FSM-Kenner ist, mit C-Programmierung desselben Erfahrung hat oder ein FPGA-Experte ist. Sicher ist diese Auswahl sehr subjektiv, mal zu detailiert, an anderer Stelle werden Teile des Know/Hows nicht getestet, dessen Fehlen erst später zu "bösen Erwachen" führt. Da kann diese Auflistung sicher ergänzt respektive verfeinert werden: Fragen FSM Design allgemein: * Was ist mealy/Moore * was ist ein Sackgassen-Zustand * Was ist ein unerreichbarer state * wie dokumentiert man eine FSM (Automatengraph, Zustand, Transition, * Transitionbedingung, output) * wie macht man eine FSM robust? * was bedeutet "Lebendigkeit" im Zusammenhang mit FSM Fragen Schwerpunkt (embeddded) programmierer: * was ist Enumeration/Aufzählungstyp ? * wie organisiert den Sourcecode einer FSM damit es übersichlich bleibt (header, funktional) ? * wie organisiet man eine wartbare (leicht anpassbaer) FSM * Gibt es ein LoC-Limit für FSM * testunit für FSM * wie spaghetti ist fsm * switch case break * was schreibt man in default: * code style/lint für FSM * typische Fehler die man bei FSM gemacht hat/kennt * Welche Testabdeckung (test coverage) kann man wie erreichen ? Fragen bzgl. FPGA-Aspekte: *(VHDL) Ein oder zwei process Darstellung * Anzahl states bezüglich schaltgeschwindigkeit * Statcodierung ONE-HOT versus binary versus GRAY Vor-, Nachteile, Möglichkeit. *P robleme beim (asynchronen) reset * warum states beim Debugging (nach Synthese/Implementierung) nicht mehr sichtbar * was bedeutet fully encoded * implementierungsunterschiede FF-FSM versus RAM-FSM * VHDL: syntax gepulste signale (nur einen Takt lang aktiv) * Auswirkungen single event upset auf FSM, wie gegenmassnahmen. sind die designprizipien für Zähler/counter auf FSM übertragbar. * wenn ein LFSR die scnellste Implementierung für einen Zähler ist, kann man mit LSFR besonders schnelle FSM bauen ? * wie macht man eine FPGA-FSM schneller? (schnell meint hier eine kürzeres period constraints setzen zu können. * was verlangsamt eine FPGA-FSM (bei gleichen Ablauf), was nicht * was macht ein FSM größer (mehr Logikelemente)
Moin, Ganz hervorragende Arbeit. Aehnlich wichtig waere bestimmt auch ein detaillierter Fragenkatalog zum differenzierten Einsatz von 17er Schluesseln bei Kfz-Mechatronikern und Industriemechanikern. scnr, WK
> Aehnlich wichtig waere bestimmt auch ein > detaillierter Fragenkatalog zum differenzierten Einsatz von 17er > Schluesseln bei Kfz-Mechatronikern und Industriemechanikern. Och, manche erkennen die Wichtigkeit der richtigen Besetzung einer Stelle erst, wenn sie in einem Flieger sitzen auf desem Bordrechner "Gurkensoftware" läuft. Oder unter einem Medizingerät liegen, dessen Zustandsautomat von einem Programmierer runtergeschrieben wurde, der nicht bedachte, wie schnell manche Assistentin die Tasten drückt: https://de.wikipedia.org/wiki/Therac-25#Programmfehler Manchmal ist der "Schrauber" auch zu 'bequem', die richtige Schraube zu finden und dem Flieger fliegt beim Flug die Frontscheibe weg: https://de.wikipedia.org/wiki/British-Airways-Flug_5390#Unfallursache SCNR,
:
Bearbeitet durch User
Als Merkliste beim Interview sicher OK. Es muss aber klar sein, dass * es zu den meisten Fragen keine allgemeingültige Antwort gibt. Die Frage muss daher nicht "wie macht MAN das" lauten sondern "DU" und in dessen Kontext interpretiert werden. * dass nicht die Antworten an sich wichtig sind, sondern wie sicher sich jemand in dem Gebiet bewegt. z.B. bei "LOC Limit" hast Du als Bewerber keine Chance auf eine sinnvolle Antwort, wenn Du Dein Gegenüber nicht schon sehr gut kennst.
Bradward B. schrieb: > Statcodierung ONE-HOT versus binary versus GRAY Vor-, Nachteile, > Möglichkeit. Woran kann es liegen, wenn bei der One-Hot-FSM auf einmal mehrere FFs/States gleichzeitig "hot" sind? > *P robleme beim (asynchronen) reset Wann kann Metastabilität zum Problem werden? Und warum ist sie meistens nicht das Problem?
:
Bearbeitet durch Moderator
> * es zu den meisten Fragen keine allgemeingültige Antwort gibt. Die > Frage muss daher nicht "wie macht MAN das" lauten sondern "DU" und in > dessen Kontext interpretiert werden. > > * dass nicht die Antworten an sich wichtig sind, sondern wie sicher > sich jemand in dem Gebiet bewegt. Entscheidend ist IMHO, ob der Befragte sich schon mal mit diesem Thema in der Praxis beschäftigt hat/wurde. Oder ob er sich was anhand seiner Erinnerungen an Gehörtes "was aus den Fingern saugt". Egal, wie sicher er/sie beim "Finger saugen" rüberkommt. > z.B. bei "LOC Limit" hast Du als Bewerber keine Chance auf eine > sinnvolle Antwort, wenn Du Dein Gegenüber nicht schon sehr gut kennst. Die Frage, wieviel Zeilen ein source-File resp. function/class maximal enthalten sollte, ist bei einer FSM eher eine "Fangfrage". Lt. ISBN: 978-3897215672 (Das Buch mit dem Esel) ist es sinnvoll, FSM wegen der Gesamtheit/Ganzheitlichkeit in einem File zu halten. https://de.wikipedia.org/wiki/Fangfrage
:
Bearbeitet durch User
Bradward B. schrieb: > * wenn ein LFSR die scnellste Implementierung für einen Zähler ist, kann > man mit LSFR besonders schnelle FSM bauen ? Die hier finde ich noch pfiffig, ansonsten geht alles andere mir etwas in Richtung 'academic nitpicking'. Betreffend Safety koennte man die Robustheit einer FSM ausfuehren, oder ueber die formale Verifizierbarkeit reden. Bei einer Bewerbung oder einem Assessment reicht mir eigentlich, wenn ich genuinen Sourcecode des Probanden zu Gesicht bekomme. Waehrend der Covid-Zeit haben wir dazu einfache Tests auf Jupyter-Notebook-Basis eingesetzt, hat sich auch bewaehrt.
Bradward B. schrieb: > Die Frage, wieviel Zeilen ein source-File resp. function/class maximal > enthalten sollte, ist bei einer FSM eher eine "Fangfrage". > Lt. ISBN: 978-3897215672 (Das Buch mit dem Esel) > ist es sinnvoll, FSM wegen der Gesamtheit/Ganzheitlichkeit in einem File > zu halten. Das stimmt meistens. Darum sollte man auch eher die maximale Anzahl Zeilen/Funktion bzw. case im Blick haben. Man kann problemlos Dutzende kleine Funktionen bzw. State in einer Datei unterbringen. > > https://de.wikipedia.org/wiki/Fangfrage Ja, aber diese entwickeln sich sehr schnell zum Religionskrieg und Klugscheißerei. Und das in einem Vorstellungsgespräch? Naja.
FSM Fliegendes Spaghetti Monster?
Bradward B. schrieb: > Fragen FSM Design allgemein: > > * Was ist mealy/Moore Zwei Typen von FSMs. EInmal mit 3 Logikdekodern, einmal mit einem. Frag mich nicht, welcher was ist. Ohne Googel würde ich sagen Moore hat nur einen. > * was ist ein Sackgassen-Zustand Ein Zustand einer FSM ohne Ausweg zu anderen States (außer hartes Reset) > * Was ist ein unerreichbarer state Ein Zustand einer FSM, welcher nie erreicht wird. (Apfelmus ist Mus aus Äpfeln) > * wie dokumentiert man eine FSM (Automatengraph, Zustand, Transition, * > Transitionbedingung, output) Die meisten "Helden" tun das gar nicht . . . Steht doch alles im Quelltext > * wie macht man eine FSM robust? Möglichst alle komischen Fälle von Eingangssignalen prüfen und passend reagieren incl. Fehlerzuständen. > * was bedeutet "Lebendigkeit" im Zusammenhang mit FSM Keine Ahnung > * was ist Enumeration/Aufzählungstyp ? Eine Zuordnung von Wörtern (z.B. Rot, Grün, Blau) zu Zahlen zwecks menschenlesbarer Kodierung. > * wie organisiert den Sourcecode einer FSM damit es übersichlich bleibt > (header, funktional) ? Mit einem Switch/Case Statement (Kleine bis mittlere FSM) oder über eine Tabelle mit Funktionszeigern. > * wie organisiet man eine wartbare (leicht anpassbaer) FSM Modular ;-) > * Gibt es ein LoC-Limit für FSM Das gleiche wie bei Funktionen, welches aber von der "Philosopie" der Firma/Entwicklungsabteilung abhängt. Wenn eine Funktion deutlich länger als eine normale Bildschirmseite ist, wird es langsam zuviel. > * testunit für FSM Ist mehr oder minder das Gleiche wie für normale Funktionen. > * wie spaghetti ist fsm So sehr wie es der Koch verzapft hat. Eigentlich gar nicht, denn Zustandsübergänge einer FSM sind immer eineindeutig. > * switch case break Ist eine Möglichkeit zur Umsetzung einer FSM. > * was schreibt man in default: "Ich war hier" > * code style/lint für FSM Kommt drauf an. > * typische Fehler die man bei FSM gemacht hat/kennt > * Welche Testabdeckung (test coverage) kann man wie erreichen ? Theoretisch 100%, wenn die FSM nicht zu groß und die Zustandsübergänge nicht zuviele sind. > *(VHDL) Ein oder zwei process Darstellung Logik und Speicher ein einem oder zwei VHDL-Prozessen. Die Ein-Prozess Variante ist kompakter und meistens besser. > * Anzahl states bezüglich schaltgeschwindigkeit Ist je nach Kodierung langsamer oder egal. > * Statcodierung ONE-HOT versus binary versus GRAY Vor-, Nachteile, Resourcenverbrauch (Logikzellen) gegenüber Geschwindigkeit > Möglichkeit. > *P robleme beim (asynchronen) reset Der asynchrone Start der FlipFlops. > * warum states beim Debugging (nach Synthese/Implementierung) nicht mehr > sichtbar Der Optimierer ist Schuld. > * was bedeutet fully encoded Ungenutzte States/Codes werden vollständig dekodiert und im Fehlerfall erkannt. > * implementierungsunterschiede FF-FSM versus RAM-FSM RAM kann im Allgemeinen nur kleine FSM kodieren, denn sonst wird zuviel RAM benötigt. Dafür sehr kompakt und schnell. > * VHDL: syntax gepulste signale (nur einen Takt lang aktiv) x and not x_old oder so ähnlich > * Auswirkungen single event upset auf FSM, wie gegenmassnahmen. Passende Kodierung mit Redundanz und Hamming-Distanz >1. > sind die designprizipien für Zähler/counter auf FSM übertragbar. Welche denn? Jain. > * wenn ein LFSR die scnellste Implementierung für einen Zähler ist, kann > man mit LSFR besonders schnelle FSM bauen ? 1 aus N Kodierung (one hot) > * wie macht man eine FPGA-FSM schneller? (schnell meint hier eine > kürzeres period constraints setzen zu können. Pipelining, one hot encoding > * was verlangsamt eine FPGA-FSM (bei gleichen Ablauf), was nicht Lange Liste > * was macht ein FSM größer (mehr Logikelemente) Zuviel Logik, komplexe Vergleiche mit breiten Signalen. Wieviele Punkte habe ich erreicht? ;-)
Moin, Falk B. schrieb: > Wieviele Punkte habe ich erreicht? ;-) Der Kandidat hat 99 Punkte. Ab 100 Punkte gibt es eine aufblasbare Waschmaschine. Jury, wieviele Punkte sind das in oesterreichischen Schillingen? scnr, WK
Dergute W. schrieb: > Jury, wieviele Punkte sind das in oesterreichischen Schillingen? Drölfundfuchzig.
Harald K. schrieb: > Dergute W. schrieb: >> Jury, wieviele Punkte sind das in oesterreichischen Schillingen? > > Drölfundfuchzig. Das spielt doch überhaupt keine Rolle. Da Falk zwar nicht alle Fragen beantworten konnte, er aber weit und breit der Einzige ist, der sich dem Bewerbungstest unterzug, wird der Zuschlag für den Job in Bradwards Firma wohl an ihn gehen. @Falk: Herzlichen Glückwunsch zu deinem neuen Arbeitgeber :)
Yalu X. schrieb: > wird der Zuschlag für den Job in Bradwards > Firma wohl an ihn gehen. Ich weiß gar nicht, welchen Aufwand ich treiben würde, um so einen Job nicht zu bekommen. Aber ich bin ja auch ein alter Sack, in absehbarer Zeit (< 10 Jahre) aus dem Erwerbsleben scheidend ... und ich hab' das Glück, als Embedded-Entwickler von derartigen Dingen verschont zu bleiben. Also nicht von State Machines, aber dem selbstverliebten theoretischen Überbau, der da breitgetreten wird, wie in jeder Erstsemestervorlesung bei den Wirtschaftsinformatikern, die sich gegenseitig mit stolzgeschwellter Brust die Akronyme herunterbeten, um zu beweisen, wie sehr sie in der Vorlesung doch aufgepasst haben. Daß der Kram, den ich so zusammenfrickele*, ausreichend gut funktioniert, belegt mein seit Jahrzehten regelmäßig eingehendes Gehalt (und nein, ich bin kein Ödi, würde ich also dauerhaft Mursk abliefern, wäre mein Arbeitgeber schon lange nicht mehr mein Arbeitgeber) *) für die wahren Freunde der hohen akademischen Lehre benutze ich die falschen Werkzeuge, die falsche Programmiersprache und mache sowieso alles falsch, deswegen schreibe ich nicht "entwickle".
Harald K. schrieb: > für die wahren Freunde der hohen akademischen Lehre benutze ich die > falschen Werkzeuge, die falsche Programmiersprache […] O je, dann bist du also auch einer von der Bascom¹-Fraktion ;-) ───────────── ¹) Mir fällt gerade keine Programmiersprache ein, die von der hohen akademischen Lehre mehr abgelehnt werden könnte.
Yalu X. schrieb: > O je, dann bist du also auch einer von der Bascom¹-Fraktion Nee - ich nutze sehr überwiegend C. Und das ist, wenn man so hochdekorierten Fachkoryphäen wie unserem seit einiger Zeit als "Beobachter" schreibenden Programmiersprachenversteher und -Würdiger folgt, quasi der Grund für diverse Kernschmelzen in Atomreaktoren, der "Challenger"-Katastrophe, dem Börsencrash von 2008 und mindestens auch dem 30-jährigen Krieg.
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.