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