Forum: FPGA, VHDL & Co. Avalon Dreaming Interface


von Bosi (Gast)


Lesenswert?

Ich verwende bei einer SOPCNIOS Geschichte mit dem Cyclone III ein 
Avalon Streaming Interface  um in einen DDR2 Controller hinein- und vor 
dort wieder heraus zu gehen.  Anders, als bei rudimentärem Zugriff über 
VHDL und eigenen state machines, dauert es gelinde gesagt EWIG, bis dort 
Daten kommen.

Irgendwie scheint der Controller  das IF  der NIOS zu pennen oder zu 
schlafen, jedenfalls sind da Latenzen bis zu 35 CCs zu beobachten.

Aus der Doku des ASI kann ich aber nicht entnehmen, wie der NIOS dort 
arbeitet, genauer: Wie lange er wofür braucht und/oder ob das normal 
ist.

Frage: Gibt es da Anhaltspunkte oder Erfahrungswerte, wie schnell man 
über SOPC NIOS mit einem DDR2 Controller arbeiten kann?

Mit welchen loop Bandbreiten (Wert1 schreiben, Wert2 Schreiben, Wert1 
holen) kann ich rechnen?

von Kest (Gast)


Lesenswert?

Wenn Du die Daten schnell verarbeiten muss, dann führt kein Weg an einem 
AVALON-Master vorbei, der direkt am DDR2 hängt.
Sonst hat NIOS ja die Möglichkeit tightly coupled ports zu 
implementieren. Damit könnte man z.B. Daten und Programm-Busse 
entkoppeln.

Damit NIOS schnell aus dem DDR2 lesen und schreiben kann, muss man mit 
Bursts arbeiten. Als erstes solltest Du mit ARBITRATION-Shares 
rumspielen. Nicht, dass der Nios ein Datenwert liest, dabei vergehen 
schon ein Paar Taktzyklen, dann den SHARE abgibt und dann ein Wert 
schreibt... Das kann ewig dauern.

Genaue Zahlen habe ich nicht im Kopf, aber Du solltest auf jeden Fall 
alles simulieren, damit Du richtig siehst, wie lange was dauert. 
Übrigens 35 CCs ist schon ganz gut. Du solltest beachten, wie breit die 
Datenwerte sind und vor allem, mit welchen Bitbreiten der NIOS maximal 
vernüftig umgehen kann.

Sonst schaue Dir mal die DMA-Controller an. Ich habe z.B. oft selber was 
geschrieben (für ganz einfache Sachen, wie Speichertransfers).

Grüße
Kest

von Bosi (Gast)


Lesenswert?

Kest schrieb:
> Übrigens 35 CCs ist schon ganz gut.
Hm....

ich hätte gedacht, dass da Potenial besteht. EIN CC ist derzeit bei mir 
nämlich gerade 1/100MHz der DDR2 läuft auf 200x2.

Schneller kann ich nicht takten, weil das FPGA-Design nicht mehr 
hergibt, bzw stark geändert werden müsste.

von Bosi (Gast)


Lesenswert?

Kann mir mal jemand erklären, wo die FRagestellung hin ist, die ich im 
embedded dev gepostet habe? Ich hatte, um mehr possible Anworten zu 
erhalten, den Artikel ins Englishe formuliert und noch einmal dort 
geostet, um ihn an das internationale Publikum zu richten - einige Zeit 
später, nachdem ich ihn zuvor schon gesehen und rückgelesen hatte, war 
er dann weg.

????

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
Noch kein Account? Hier anmelden.