Forum: FPGA, VHDL & Co. FPGA state machine


von Gordon N. (Gast)


Lesenswert?

Ich will mal wissen ob das nur bei mir so ist aber bisher enden meine 
FPGA VHDL Projekte immer damit state machines zu erstellen. Wieso nicht 
einen Prozessor verwenden? Die paar Rechenoperationen mache ich dann mit 
Pipelines.

[MOD: mashine durch machine ersetzt]

: Bearbeitet durch Moderator
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ich will mal wissen, ob das nur bei mir so ist, aber bisher enden meine 
Pizzabackprojekte immer mit einem Teigfladen, der nach Tomate, 
Basilikum, Kaese oder soetwas schmeckt. Wieso nicht einfach mal eine 
Torte verwenden? Das bisschen Sahnecreme ist doch schnell gemacht...

scnr,
WK

von Gordon N. (Gast)


Lesenswert?

Und was hilft mir deine infantile Aussage?

von Dergute W. (derguteweka)


Lesenswert?

Gordon N. schrieb:
> Und was hilft mir deine infantile Aussage?

Woher soll hier irgendwer wissen, warum du unbedigt ein FPGA hernimmst, 
aber dann enttaeuscht bist, dass es kein Prozessor ist?
Und dann noch ueber Pizza und Torte motzen...

Gruss
WK

Beitrag #7094664 wurde von einem Moderator gelöscht.
von chris_ (Gast)


Lesenswert?

Gordon N. (Gast)
>Ich will mal wissen ob das nur bei mir so ist aber bisher enden meine
>FPGA VHDL Projekte immer damit state machines zu erstellen. Wieso nicht
>einen Prozessor verwenden? Die paar Rechenoperationen mache ich dann mit
>Pipelines.

Bei mir läuft das auch so ähnlich. Ich habe schon ein wenig mit 
Softcores experimentiert, aber die brauchen oft zu viel Resourcen. 
Besser ist es, wenn man sich mit der Statemachine eine Grundlage für 
einfache, selbstgebaute Softcores erstellt. Dann kann man nur speziell 
die Befehle einbauen, die man braucht. Zusätzlich ist noch ein einfacher 
Assembler z.B. mit Python nützlich, damit man die Opcodes nicht von Hand 
erstellen muss.
Auch nützlich ist es, standardmässig einen SPI-Schnittestellenblock zu 
haben, um einfach debuggen zu können.

von Vancouver (Gast)


Lesenswert?

Gordon N. schrieb:
> Wieso nicht
> einen Prozessor verwenden?

Warum keine Tunnelbohrmaschine verwenden, um eine Schraube in die Wand 
zu drehen? Statemachines sind das Mittel der Wahl, um digitale 
Schaltungen zu steuern. Wenn du jede Statemachine im FPGA durch einen 
Prozessor ersetzen willst, explodiert das FPGA-Design vor lauter 
nutzloser Logik. Ein Prozessor braucht Speicher, Software, ein 
Rechenwerk und noch eine Menge anderes Zeug. Eine Statemachine braucht 
nur ein Register und ein oder zwei Schaltnetze, und sie tut mit 
minimalem Aufwand genau das, was sie soll.

> Die paar Rechenoperationen mache ich dann mit
> Pipelines.

Welche paar Rechenoperationen? Eine Statemachine macht keine 
Rechenoperationen, sie erzeugt Sequenzen von Steuersignalen in 
Abhängigkeit von den Eingängen. Ich habe den Eindruck, du hast nicht 
ganz verstanden, was eine Statemachine ist und wozu sie gut ist.

von PittyJ (Gast)


Lesenswert?

Bei mir sind auch immer ein Menge State-Machines drin. Das ist einfach 
die Basis, wenn man zeitliche Abhängigkeiten hat.

Wenn es zu kompliziert, dann hänge doch einfach einen kleinen Prozessor 
dran. Und mache die Dinge dann dort, wo es passender ist.

Alternativ gibt es Softcores oder SOCs. Alles eine Frage des Aufwandes 
und Preises.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

PittyJ schrieb:
> Bei mir sind auch immer ein Menge State-Machines drin.
Jeder Zähler ist ein Zustandsautomat. Wenn auch meist ein recht 
einfacher...

von Christoph Z. (christophz)


Lesenswert?

Gordon N. schrieb:
> Wieso nicht
> einen Prozessor verwenden?

Und wie strukturierst du dann deine Software, damit sie lesbar und 
wartbar bleibt? Genau, oft schreibt man da auch wieder State Machines 
:-)

Gordon N. schrieb:
> Die paar Rechenoperationen mache ich dann mit Pipelines.

In der Literatur bzw. bei mir im Studium nennt sich das FSMD. Also man 
hat einen Datenpfad, da wo gearbeitet wird (ich nehme an, das ist was du 
als Pipeline bezeichnet) und daneben eine State Machine, die den 
Datenpfad steuert. Ganz grundlegend, wie Hardware gebaut wird.

von Vancouver (Gast)


Lesenswert?

Christoph Z. schrieb:
> Und wie strukturierst du dann deine Software, damit sie lesbar und
> wartbar bleibt? Genau, oft schreibt man da auch wieder State Machines
> :-)

Guter Einwand, aber im Endeffekt programmiert man implizit auch dann 
eine Statemachine, auch wenn die Software unlesbar und unwartbar ist :-) 
Also die FSM nach den bekannten Entwurfsmethoden direkt in Hardware zu 
bauen ist der effizienteste Weg.

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
Noch kein Account? Hier anmelden.