Forum: FPGA, VHDL & Co. SDRAM interface FPGA


von Roman (Gast)


Lesenswert?

Guten Tag!

Ich muss 10 Gbyte SDRAM (DDR oder DDR2) mit einem FPGA ansprechen. Am
besten 10x1Gbyte parallel (d.H. ich lese und schreibe bei allen RAMS
von/auf dieselbe Adresse). In Frage kommt ein CycloneII von altera, da
gibt es auch eine Appnote über DDR und DDR2. Ich verstehe das aber noch
nicht ganz, gibt es da schon Projekte, z.B. Ansprechen von SDRAM? Mein
Verständnisproblem ist folgendes: DDR2-Module werden anscheinend über
einen Advanced Memory Buffer angesprochen, bei den Datenblättern vom
FPGA aber nicht (vielleicht sind es da RAM-Komponenten? kommt aber
nicht mit den Pins hin, Komponenten haben deutlich weniger als 200
Pins).

Kann mir jemand mit einem Link, tutorial oder einer Erklärung helfen.

Über Hilfe wäre ich echt dankbar!
Roman

von Tobias (Gast)


Lesenswert?

Hallo,

ich habe zwar noch kein SDRAM angesteuert, aber ich habe schon eine
Schnittstelle für einen SRAM programmiert und zwar in VHDL.
Also ich habe eignetlich bloß das Timing zum Schreiben und Lesen des
SRAM aus den Datenblättern hergenommen und ind VHDL porgrammiert und
dann funktionierte das abspeichern von Daten.

von Roman (Gast)


Lesenswert?

Danke für die schnelle Antwort. SRAMs habe ich auch schon angesteuert,
aber die neuen SDRAM-Module werden in einem Daisy-chain (implementiert
duch den Advenced Memory Buffer auf dem Modul)
hintereinandergeschaltet, und darüber habe ich keinerlei
Ansteuerinformation.

Danke! Roman

von Jörn (Gast)


Lesenswert?

Darf man frag was du mit 10 GByte RAM an einem FPGA machst?

Hast du die HW schon oder mußt du die auch noch erstellen?

Von Altera / Xilinx gibt es schon SDRAM Controller, die das Timing für
die RAM erzeugen. DDR und DDR2 Controller müßten auch verfügbar sein.

Gruß Jörn

von Roman (Gast)


Lesenswert?

Hallo!

Nein, die HW habe ich noch nicht. 10 Gig Ram für Film im HDTV-Format.
Sind die erwähnten SDRAM-Controller dann im FPGA, oder externe
Bausteine? Kann ich da das RAM parallel anschliessen? Ich suche dann
mal nach Controllern, bin aber weithin für Tipps dankbar!

Vielen Dank!
Roman

von Roman (Gast)


Lesenswert?

Alles klar, der Controller ist dann nahcher im FPGA. Das mit dem
parallelen Ansteuern muss ich ausprobieren, wenn dich die Quartus Web
edition habe, kann noch dauern. Achso: Für die Produktion muss man dann
Lizenzgebühr bezahlen!

Nochmals Danke für die Hile!

von Jörn (Gast)


Lesenswert?

Die SDRAM Controller sind im FPGA.

Das mit dem parallel anschließen bezweifle ich sehr stark. Teilweise
haben die FPGAs spezielle Pins für die Speicherinterfaces.
Hast du schon mal die benötigte Pinanzahl ausgerechnet, die du für 10
GByte Speicher brauchst ?

Unter

http://www.altera.com/literature/lit-an.jsp

findest du Application Notes über RAM-Controller.

von Roman (Gast)


Lesenswert?

O.K, ich entscheide mich wahrscheinlich für "normale" PC-133 SDRAMs.
Altera unterstützt nur 8 Chip-Select Ausgänge, damit ist das schon mal
KO . Jetzt die Pins: 15 Adressleitungen geshared zwischen den Modulen +
8 Datenleitungen pro Modul * 10 Module = 95 Pins. Sollte also kein
Problem sein.

Danke nochmal!

von Thorsten (Gast)


Lesenswert?

Warum kannst du nicht einfach eine Festplatte nehmen? Schnell genug ist
die und billiger auch.

von Jörn (Gast)


Lesenswert?

Wie kommst du auf 8 Datenleitungen pro Modul? Mein SDRAM Modul auf
meinem Stratix II Board ist 32 Bit breit angebunden...

von Roman (Gast)


Lesenswert?

Modulbreite: Da habt ihr recht, es müssen 64 bit pro Modul sein. Mit
einer Festplatte wird das ganze zu schwer, und mit der Datenrate bin
ich nicht sicher... 3Gbit/s muss die locker schaffen können!

von Markus (Gast)


Lesenswert?

133MHz SDRAM schafft etwa 1GByte/s. Da sollte man die doch einfach
parallel schalten können?

Wieviele Datenströme hast Du eigentlich? 3GBit/s ist doch wohl etwas
viel für eine Kamera.

Markus

von Roman (Gast)


Lesenswert?

Ja, durch eine Parallelschaltung will ich die Geschwindigkeit bekommen.
Darüberhinaus wird streng sequentiell (also die Adresse wird immer um 1
inkrementiert) zugegriffen, da hoffe ich im Burst-Modus auf wahre
Wunder!
Das HDTV-Signal für 1080p über Dual-link ist 2x1.485 Gbit/s, also knapp
3 Gbit/s (wird seriell über 2 Koax-Kabel übertragen).

von Markus (Gast)


Lesenswert?

Da habe ich mich gerade mißverständlich ausgedrückt. Mit parallel meinte
ich, daß Du die alle zusammen schließen könntest (wenn das die
Leitungstreiber schaffen).

Ein einzelnes SDRAM macht 8GBit/s, Du brauchst knapp 3GBit/s. Wenn Du
die 10 Speichermodule getrennt ansteuerst, dann hast Du halt 80GBit/s
Bandbreite und bist damit um Faktor 26 schneller als nötig.

Ich glaube auch nicht, daß ein Design mit 1000 Leitungen so wirklich
Spaß macht.

Markus

von Roman (Gast)


Lesenswert?

Alles klar, danke für den Hinweis, ich muss das jetzt in Ruhe
durchrechnen. Inzwischen war ich von 2x5 Modulen ausgegangen, also 2
paralelle Blöcke von 5 in Reihe geschalteten Modulen. Das wären 15
Adressleitungen und 2x64 I/O-Leitungen. Ich bräuchte dann alle 5 Takte
(133 MHz) einen Transfer.

Also, ich nehme jetzt mal meinen treuen HP-67 (Taschenrechner) und
rechne das durch!

von jens (Gast)


Lesenswert?

Wäre es aber nicht besser, wenn du eh schon so einen aufwand treibst,
die Komponentenausgänge der hdcam zu nutzen? da hast du gleich bessere
Qualitaet.oder ist es nur die minidv (oder dvcam) mit hd?
Was genau willst du machen? würde mich einfach mal interessieren. Soll
es ein Konkurenzprodukt zu Viper werden ;) )

von Roman (Gast)


Lesenswert?

Mein Projekt:

Ein Gerät, das ca. 30s Film in unterschiedlichen HDTV-modi aufnehmen
kann, und dann abspielen kann.

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.