Integrale in VHDL numerisch berechnen

Moderator (Firma: Titel) Persönliche Seite #1913272
Lesenswert?

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)?
Gast #1914556
Lesenswert?

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.
Persönliche Seite #1914984
Lesenswert?

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.

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