Hallo, mal ne ganz dumme einfach frage Wenn ich eine loop-schleife in einen taktgesteuerten Prozess reinschreibe, also: process(clk) ... for i in 0 to N loop .... end loop; wird dieser loop in dem takt komplett durchgerechnet oder in N+1 takten? Danke!!
Er wird in einem Takt durchgerechnet. Bei der Synthese wird dein Code dann N-Mal hintereinander in Hardware implementiert. Eine richtige For-Schleife, wie aus C gibt es in Hardware nicht. Da musst du umdenken und so etwas in der Art schreiben.
1 | dummy: process (clk, rst) |
2 | variable vN : integer range 0 to X := 0; |
3 | begin -- process dummy |
4 | if rst = '0' then -- asynchronous reset (active low) |
5 | vN := 0; |
6 | elsif clk'event and clk = '1' then -- rising clock edge |
7 | if vN < X then |
8 | vN := vN + 1; |
9 | -- do something in the loop
|
10 | else
|
11 | -- do something else
|
12 | end if; |
13 | end if; |
14 | end process dummy; |
Nein brauchte ich auch nicht, hatte eher gehofft das es aufgerollt wird. Muss aber derzeit noch ne Menge verstehen. weil ja generate auch aufrollt. Daher hab ich noch nicht speed technisch zumindest nen nachteil bei loop gefunden. Aber da werd ich die nächsten Tage denke mal schlauer. Somit war es gut zu wissen, das ich es so machen kann. Auch wenn ich leider atm noch immer irgendwas falsch mache da xilinx mir sowohl als generate als auch als loop anweisung Errors auswirft, sowie ich das berechnete signal über einen port zu einem anderen Modul verknüpfe. einmal xst:1706 und xst:1847. Der einzige Tip dem ich im Inet gefunden hab, hat nicht geholfen. Naja morgen bin ich auch da sicherlich schlauer. Vielen Dank!!
Schade das man hier nicht editieren kann... problem ist das xilinx wohl 2 if-Anweisungen im loop nicht gefallen
so hab auch das mit 2 variablen gelöst nun. Danke nochmal für die Mühe und die sehr schnellen Antworten!
@ roninme (Gast) >Schade das man hier nicht editieren kann... Kann man, wenn man eingeloggt ist. >problem ist das xilinx wohl 2 if-Anweisungen im loop nicht gefallen Das geht schon. MFG Falk
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.