Gibt es irgendwelche Tricks, wie man Integrale in VHDL berechnen lassen kann / lassen sollte? Ich habe 2-dimensionale und 3-dimensionale Integrale zu berechnen und würde jetzt einfach entsprechende Schleifen benutzen und numerisch Addieren. ?
Marco schrieb: > einfach entsprechende Schleifen benutzen und numerisch Addieren. So geht das nicht. Denn mit einer Schleife in VHDL wird parallele Logik erzeugt. Und je nach dem wie groß das Array ist, sind entsprechend viele Addierer nötig. Für ein 4x4 Array werden das also z.B. 15 Addierer... :-o Du wirst vermutlich eine FSM bauen müssen, die nacheinander jedes Element aus dem Array abholt und addiert. Wie groß sind deine Arrays? Liegen die in einem Speicher (RAMs sind nur wortweise addressierbar)?
Hallo das ist mir schon klar mit der FSM, so war es auch gemeint. Ich benutze 3 Schleifen x,y,z, die mir eine entsprechende Zahl von Durchläufen generieren und z.b. (x+2)*(y+2)*(z+2) * 10ns brauchen. Die Frage geht eher dahin, ob man nicht irgendwie was verbessern kann.
Marco schrieb: > Die Frage geht eher dahin, ob man nicht irgendwie was verbessern kann. Das kommt erst mal darauf an, wie die Daten abgelegt sind. Wenn die in einem BRAM liegen, könnte man evtl. über die Wortbreite noch etwas parallelisieren, denn da (beim Speicherzugriff) dürfte der eigentliche Flaschenhals sein...
Parallelisieren kann man, indem man z.B. Teile des Designs doppelt aufbaut und jeweils von 0... n/2-1 bzw. das parallele Design von n/2 ... n-1 zählt, integriert und hinherher addiert. Das kannst du für jede Ebene machen, wodurch du 8 designs hast, die 8 Räume eines 2x2x2 Würfels berechnen. Je nachdem, wie die Formel aussieht, kann die Synthese sogar noch Kombinatorik vereinachen und zusammenfassen, wenn die Addition der beiden Stränge VOR der Summation / Integration der logischen Schleife liegt. Du bekommst dann logischerweise 1/8 des Zeitbedarfs. >denn da (beim Speicherzugriff) dürfte der eigentliche >Flaschenhals sein... Optimal ist es, wenn man die Daten für die parallelen Stränge gleich in verschiedene RAMs reinleiten kann.
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.