Moin Moin, Ich habe ein Evaluation board mit einem Virtex 4 FX 12. Wer den Baustein kennt, weiß das er mit RAMB´s nicht gerade gesegnet ist. Ich muss allerdings zeitweise größere Datenmengen zwischenspeichern. Auf dem board ist zusätzlich noch ein DDR SDRAM von INFINEON mit 512Mb. Diesen Speicher würde ich gerne zum Zwischenspeichern in Form eines FIFO´s nutzen. Hat jemand Erfahrungen oder eine Idee wie ich das bewerkstelligen kann?
als erstes DDR-SDRAM-Controller programmieren oder EDK-eigenen implementieren. Dann einfach eine State-Machine in Form von if write_request and SDRAM_not_full then write_one_burst if read_request and SDRAM_not_empty then read_one_burst In C (fallst Du microblaze) nimmst, dann ist alles wohl noch einfacher. Gruß, Kest
Hm, aber wie läuft das mit der Adressierung? Die muss dann ja beim Reinschreiben von dem DDR-SDRAM-Controller übernommen werden. Und beim Auslesen muss ich die selber Adressen wieder abrufen?! oder kann man den DDR-SDRAM überreden seine DAten wie ein FIFO selber weiter zu schieben. Oder muß das wieder im Controller passieren. Wenn ja denke ich doch mal, dass das FULL und EMPTY auch im Controller erzeugt werden muss oder. Habe da momentan keine Vorstellung!!
Die Adressierung musst du uebernehmen. Das sind zwei Counter, einer zum Schreiben, einer zum Lesen. full und empty kannst du dann einfach durch Vergleich der beiden Counter erzeugen.
Das Thema ist doch etwas komplexer. Wie Jan M. (mueschel) schrieb, gibt es zwei Zähler. Beim Schreiben wird schreibzähler und beim lesen -- lesezähler inkrementiert. Die Überläufe müssen erkannt werden und so weiter und so fort. Such' mal nach FIFO in VHDL, also nicht als Black-Box sondern als source. Lies mal durch, versuch' zu verstehen, wie das funktioniert, implementiere DDR-Controller, schmeiß alles zusammen, ordentlich rühren, fertig. Grüße, Kest
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.