Synthese "for loop" vs. "for generate"

Gast #1422869
Hallo,

worin besteht eigentlich der Unterschied zwischen einer "For loop" und 
"for generate" Anweisung in der Synthese? Das man mit der Generate 
Anweisung parallele Strukturen generiert und die loop Anweisung 
normalerwiese für iterative Schleifenkontrukte innerhalb von Prozessen 
verwendet wird ist mir soweit klar. In der synthese wird die Loop 
Schleife dann zu einer Unrolled for Schleife. Was passiert aber, wenn 
ich, mal angenommen zur Erstellung von parallelen Strukturen eine Loop 
Anweisung verwende? Kommt das aufs selbe raus wie eine generate 
Anweisung?

Beispiel: Ich habe eine zwei Vektorarrays und möchte den Wert jedes 
Eintrages  um eins erhöhen.

for i in 0 to ende-1 generate
process(clk)
begin
 risingedge.....
vektor(i) <= vektor1(i)+1;
end process;
end generate


process (clk)
begin
for i in 0 to ende-1 loop
vektor(i) <= vektor1(i)+1;
end loop;
end process;



Grüße
Fabian
Gast
Für das o.g. Beispiel würde ich einfach mal den RTL-Viewer bemühen ... 
oder ein Äquivalent wenn du nicht mir der ISE arbeitest. Falls dein 
Beispiel mit beiden Schleifen funktioniert, würde ich davon ausgehen, 
dass ein identisches Design raus kommt.

Nach meinem Wissen, ist generate für die mehrfache Instanziierung von 
Komponenten gedacht. Sodass man nicht 100 gleichartige Komponenten 
händisch verdrahten muss.
Moderator (Firma: Titel) Persönliche Seite
Mal davon abgesehen, dass im 2. Beispiel der Takt nicht verwendet wird, 
kommt das selbe Syntheseergebins heraus.

Du wirst hier aber wirklich parallele Hardware erzeugen, da ist nichts 
zu machen mit irgendwelchen Hardware-RAM-Strukturen (z.B. 
DistributedRAM, BRAM). Denn in einer solchen Komponente kann jeweils nur 
1 Element bearbeitet werden. Du willst aber alle gleichzeitig 
manipulieren :-o

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.