Hallo zusammen,
ich tue mich gerade etwas schwer, mein Problem und dessen Lösung richtig
einzuschätzen.
Ich nutze einen PowerPC und hab dort einen FPGA mit 32bit und zwei DDR2
Bausteine mit zusammen 32bit angebunden. Nun kommen vom FPGA 32bit Daten
und die sollen sortiert in den RAM gelegt werden.
Die Daten vom FPGA kommen kontinuierlich und nicht auf Abruf. Das kann
ich auch nicht ändern. Ich muss nun dafür sorgen, dass die Daten
schneller abgeholt und umsortiert werden, als sie im FPGA auflaufen.
Dabei geht es um 2048 8bit Werte, die ich in 4er-Blöcken auf den 32bit
Bus lege. Ein DMA Controller holt die Daten vom FPGA ab und schreibt sie
in den RAM. Von dort muss ich die Daten lesen, umsortieren und wieder
schreiben.
Um genau diese Lese- und Schreibzugriffe geht es mir. bei 2048 Werten zu
je 8 bit in 32bit verarbeitung, habe ich ja 512 Lese- und 512
Schreibzugriffe auf den RAM. Ich muss auch nur ein komplettes 32bit Wort
umspeichern, also nicht noch die 8bit Werte innerhalb des 32bit Wortes.
Die 2048 Bytes kommen in ca. 32us zum FPGA.
Auslesen kann ich diese 2048 Byte in ca. 19,2us.
Mir bleiben also 12,8us zum sortieren bzw. umspeichern.
Nun geht es darum, ob ich in diesen 12,8us die 512 Lese- und 512
Schreiboperationen überhaupt durchführen kann.
Das DDR2 Interface hat 133MHz.
Verbaut sind zwei Micron MT47H16M16 im 3er Speedstep.
http://www.google.de/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http%3A%2F%2Fdownload.micron.com%2Fpdf%2Fdatasheets%2Fdram%2Fddr2%2F256MbDDR2.pdf&ei=iAVITJe7N4LHsgbqh83SDw&usg=AFQjCNEQwrSIa5w1U1T2BeTXTN942NWmww&sig2=mXVr9zXq1xsaR-F4HtpN8w
Ist das realistisch, oder kann ich das von vorn herein vergessen?
Vielen Dank!
Andi