loop-Schleife

Gast #417863
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
Gast #417865
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?
Gast #417866
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.
Gast #417868
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 .
#417869
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.
#417871
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
Gast #417872
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.
Gast #417873
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren