Hallo und frohe Weihnachten! Ich habe eine Funktion in VHDL in mehrere Entitys zerlegt. Die so entstandene Gesamtfunktion möchte ich rekursiv für eine bestimmte Anzahl durchlaufen lassen. Dafür möchte ich einen Takt einsetzen, der bei jeder Flanke einen Durchlauf ausführt. Nun habe ich aber das Problem, dass ich in Prozessen keine Komponenten instanzieren kann. Wie kann ich da vorgehen? Ich könnte natürlich alle Anweisungen in den Prozess schreiben, nur dann geht die Übersicht verloren. Es muss nicht unbedingt getaktet sein, nur dass der Eingang dieses "Blocks" mit dem Ausgang rückgekoppelt wird und nach den z.B. 10 Durchläufen das Ergebnis am Ausgang gültig wird. Hier mein Problem als VHDL Schnipsel: entity one is ... end; architecture beh_1 of one is begin ... end; entity two is ... end; architecture beh_2 of two is component one ... end component; begin ... end; . . . entity gesamt is ... end; architecture beh_ges of gesamt is component five ... end component; begin process(clk) if (clk'event and clk = '1') ??? (z.B. 10 Mal (zähler) die Entity FIVE durchlaufen) end if; end process; end;
@ tib (Gast) >Ich habe eine Funktion in VHDL in mehrere Entitys zerlegt. Die so >entstandene Gesamtfunktion möchte ich rekursiv für eine bestimmte Anzahl >durchlaufen lassen. VHDL ist eine Hardwarebeschreibungssprache keine "normale" Programmiersprache. Ich glaub du bist auf dem Holzweg. Was willst du konkret machen? MFG Falk
Eine Rekursion muss als Datenfluss programmiert werden, also state machine mit Verwaltung, genauso wie in C. Zerlegung in Teilprozesse hat damit nichts zu tun. Ein Itereation ist einfacher, dann wird ein Wert mehrmal in diesele Pipe eingeoworfen.
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.