Forum: FPGA, VHDL & Co. loop-Schleife


von Bustle (Gast)


Lesenswert?

Ich würde gerne mal eine For-Loop-Schleife testen aber irgendwie komme
ich noch nicht ganz damit klar.

Hier meine Frage:

1. Von was hängt die Durchlaufgeschwindigkeit einer Schleife ab?
2. Gibt es eine Methode in der ich auf ein Signal warten kann, bevor
ich den nächsten Schleifen durchlauf starte? Sowas wie "wait for
<rising_edge (clock)>"

Gruß
Bustle

von Daniel R. (daniel_r)


Lesenswert?

In VHDL gibts keine Schleifen. Sie werden alle hardwaremäßig parallel
ausgeführt.

von Bustle (Gast)


Lesenswert?

Klar gibt es in VHDL Sprache Schleifen. Mir ist vorerst egal wie diese
anschließend hardwaretechnisch aufgebaut sind.

Mir geht es ausschließlich darum, wie eine Loop-Schleife eingesetzt
werden kann.

@Daniel: Wenn's keine Schleifen in VHDL gibt, warum wurde dann in
diese Sprache eine Loop-Schleife aufgenommen? Aus Simulationsgründen?

von T.M. (Gast)


Lesenswert?

Also loops werden oft nur zum Instanziieren von paralleler HW benutzt.
Wie zB. ganz primitiv ein OR über einen Vektor:
1
FOR index IN vektor_a'RANGE LOOP
2
  vektor_out(index) <= vektor_a(index) OR vektor_b(index);
3
END LOOP
Damit werden soviele ORs erstellt, wie der Vektor breit ist. Wie man
solche "Schleifen" noch misbrauchen kann (sogar mit
Abbruchbedingung), kann man auch in deiesem Wiki sehen:
http://www.mikrocontroller.net/articles/VHDL_schnipsel_or_vectorbits

Man muss sich aber vor Augen halten, dass selbst mit der
Abbruchbedingung immer die komplette HW über den gesamten Vektor
erzeugt wird.
In der Simulation kann man solche loops besser nutzen...


T.M.

von Daniel R. (daniel_r)


Lesenswert?

@Bustle

Softwerker. Streng mal dein Hirn an, dann musst Du auch nicht wegen
jedem Käse einen Thread eröffnen(5 an der Zahl auf einen Blick).

;)

von FPGAküchle (Gast)


Lesenswert?

#Softwerker. Streng mal dein Hirn an, dann musst Du auch nicht wegen
#jedem Käse einen Thread eröffnen(5 an der Zahl auf einen Blick).

Na, aber!

Für FPGA/cpld's reicht für einen Elektroniker denken, für VHDL dagegen
muss mal als "geborenere Informatiker" umdenken. Und Umdenken ist
schon ein Stück härter als denken. Gerade weil VHDL nach C/Pascal
aussieht aber verdammt anders ist sind an jede Steller Fragen
gestattet. Mit Analogie-Schlüssen (was ja Teil vom denken ist) kommt
man da schnell in die Hölle.
Beispielsweise kannte ich mal einen der Festplattentreiber (Software)
programmiert hat und dan in VHDL eine Festplattencontroller
"schrieb". So wie er es eben gewohnt war mit rekursiven Aufrufen.
Irgendwie hat er es auch durch die Synthese geprügelt und es lief wohl
auch aufm FPGA. Allerdings höchstens mit 200 kHz Takt :-o .

von Daniel R. (daniel_r)


Lesenswert?

Das ist mir klar. Ich hab ja auch nichts dagegen, dass jemand
fragt(siehe smiley), aber man kann doch auch mal was nachlesen und muss
nicht immer gleich einen Thread eröffnen.
Ich empfehle VHDL-Kompakt. Das ist ein PDF in dem so ziemlich alles gut
beschrieben ist. Ich habe leider grad keinen Link dazu.

von Mirco (Gast)


Lesenswert?

Ich finde es schon vom Ansatz her irreführend, dort überhaupt das Wort
"for" einzuführen.

von Klaus F. (kfalser)


Lesenswert?

Hallo Bustle,
Auf deine Frage :
> Wenn's keine Schleifen in VHDL gibt, warum wurde dann in
> diese Sprache eine Loop-Schleife aufgenommen? Aus
Simulationsgründen?

kann man nur ja antworten.
VHDL ist ein SIMULATIONS-Sprache. Sie wird nur AUCH verwendet, um
bestimmte Konstrukte wieder in Hardware "zurückzuübersetzen".

Grüße
Klaus

von Alexander Lindert (Gast)


Lesenswert?

Für Anfänger mag es verwirrend sein, dass nur ein kleiner Teil von dem
das VHDL an Beschreibungsmöglichkeiten zulässt, synthesefähig ist.
Ziemlich von Vorteil ist es, wenn dass was man synthesefähig
beschreibt, sich selbst als Hardwaremodule vorstellen kann.
Der Vorteil an VHDL ist, dass man zum Testen keine synthesefähigen
Module benötigt. Man darf alle Testfälle bequem in der selben Sprache
nicht synthesefähig schreiben.
Anmerkung: Es gibt sogar POINTER und rekursive Funktionen sind auch
erlaubt. Die Wahrscheinlichkeit, dass sie jemand benützt, ist sehr
gering.

von Jürgen Schuhmacher (Gast)


Lesenswert?

Jetzt, nachdem du es betont hast, dürfte die Wahrscheinlichkeit rapide
gestiegen sein. :-) Ich halte aber von der "for"-Konstukt auch nicht
besonders viel. "generate" ist da schon aussagefähiger.

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.