Forum: FPGA, VHDL & Co. DDR Modul mittels FPGA bauen


von gattler (Gast)


Lesenswert?

Hi,

ist es möglich mit soetwas hier: 
https://www.xilinx.com/products/boards-and-kits/1-2ajpg7.html

ein DDR Modul zu bauen?

Ich würde gerne mittels des FPGA z.B. die Zugriffe des Host-PC's auf dem 
Speicher analysieren. Dazu brauche würde ich gerne einen FPGA nehmen der 
in einen DIMM Slot passt und vom Host system als ganz normaler Speicher 
genutzt werden kann (Es muss nicht performant sein).

Gibt es dazu vielleicht schon einen IP Core?

Vielen Dank schonmal für eure Antworten.

Schöne Grüße,

Gattler

von mh (Gast)


Lesenswert?

gattler schrieb:
> ist es möglich mit soetwas hier:
> https://www.xilinx.com/products/boards-and-kits/1-2ajpg7.html
>
> ein DDR Modul zu bauen?

Das Pinout des eines Speichermoduls und dieses FPGA-Moduls sind 
höchstwahrscheinlich nicht gleich, also wäre ein eigenes Board fällig.


> Ich würde gerne mittels des FPGA z.B. die Zugriffe des Host-PC's auf dem
> Speicher analysieren. Dazu brauche würde ich gerne einen FPGA nehmen der
> in einen DIMM Slot passt und vom Host system als ganz normaler Speicher
> genutzt werden kann (Es muss nicht performant sein).

Naja, performant müsste es insofern schon sein, dass Dein FPGA-System 
das vom Host-PC erwartete Timing erreicht.


> Gibt es dazu vielleicht schon einen IP Core?

Ich kann mir jetzt aus dem Stegreif keinen wirklich sinnvollen 
Einsatzzweck vorstellen, daher dürfte es da eher mau aussehen.


Was willst Du denn genau analysieren?
- Wie die Zugriffe aussehen? --> Das steht im Datenblatt des 
RAM-Bausteins.
- Adressen und Daten mitloggen? --> Wozu? Das wäre im Debugger auf dem 
Host-PC einfacher, zudem würde der Dir die Adressen schon "lesbar" 
aufbereiten.
- ...?

von J. S. (engineer) Benutzerseite


Lesenswert?

mh schrieb:

> Das Pinout des eines Speichermoduls und dieses FPGA-Moduls sind
> höchstwahrscheinlich nicht gleich,

Die können nicht gleich sein, weil das FPGA sonst keine Funktion hätte 
:-)
Diese Module kommen von Enclustra und die Nutzung des SO DIMM als Sockel 
ist willkürlich, hat mit dem DDR nichts zu tun.

Wenn das ein Analyzer werden soll, muss man schwer nachdenken:

Die FPGAs können bei Weitem nicht die Bandbreite eines Modules 
verarbeiten, von daher könnte ein einfaches System weder die Menge noch 
die Gewschwindigkeit eines echten DDR emulieren. Die Breite und Tiefe 
liessen sich gebenenfalls über Time Multiplex erreichen. Ich kann mir 
vorstellen, dass die Mainboardhersteller solche Emulatoren haben.

Die Daten müssen irgendwie raus. Daher muss man einen Kanal oder einen 
Speicherbereich reservieren, um das, was man mit dem Modul machen will, 
zu parametrieren und zu analysieren. Oder man braucht eine weitere 
Anschlussmöglichkeit über die Luft hinweg ohne die Platine.

Besser wäre wohl ein Stecksockel, der nur Leitungen hat und an dem ein 
Analyzer dranhängt. Liefe auf einen echten LA hinaus. Parallel DDR 
beschreiben, geht dann halt nicht.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

gattler schrieb:
> Ich würde gerne mittels des FPGA z.B. die Zugriffe des Host-PC's auf dem
> Speicher analysieren.

Ich hab sowas mal als Uni-Projekt gebastelt ... Da hatte ich einen 
SDRAM-Kommando-Dekoder in VHDL implementiert. Der Kommando-Dekoder hat 
mitgezählt, auf welche Speicheradressen zugegriffen wird. Die Platine 
mit FPGA wurde auf ein SDRAM gesetzt und an die Leitungen des 
Speichermoduls angeschlossen.

Kerneltreiber hatte dann ein anderer geschrieben.

Lief mit 100MHz problemlos (unglaublich, aber wahr).

Bei DDR stelle ich mir das aber schwieriger vor.

Hier noch ein Video: https://www.youtube.com/watch?v=_bvcvUe8xXc

Man konnte da auch reinzoomen bis auf ich glaube 4k Auflösung.

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Mampf F. schrieb:
> Bei DDR stelle ich mir das aber schwieriger vor.
Ja, das DDR-Timing besonders bei DDR4 mit aktuellen Raten könnte ein 
klein wenig anspruchsvoller werden:-)

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Jürgen S. schrieb:
> Mampf F. schrieb:
>> Bei DDR stelle ich mir das aber schwieriger vor.
> Ja, das DDR-Timing besonders bei DDR4 mit aktuellen Raten könnte ein
> klein wenig anspruchsvoller werden:-)

Es gab da bei Qimonda mal eine Doktorarbeit, wo es um Analyse von DDR 
ging. Soweit ich mich erinnern kann, waren das etliche Rechner, die 
verkabelt waren und Gigabytes an Daten mit einer kranken Datenrate 
abspeichern mussten :)

Falls Georg mitliest, kann er sicher mehr dazu sagen xD

von gattler (Gast)


Lesenswert?

Vielen Dank für die Antworten.

Es scheint also nicht komplett unmöglich zu sein :). Es muss ja nicht 
gleich DDR sein.

Das hier habe ich gerade auch noch gefunden:

https://www.enterpoint.co.uk/products/altera-soc/larg-2/

Was ich bis jetzt nirgendwo gesehen habe ist ein IP der irgendeinen RAM 
realisiert. Hat jemand soetwas schonmal gefunden?

Gruß,

gattler

von Achim S. (Gast)


Angehängte Dateien:

Lesenswert?

Mampf F. schrieb:
> Es gab da bei Qimonda mal eine Doktorarbeit, wo es um Analyse von DDR
> ging. Soweit ich mich erinnern kann, waren das etliche Rechner, die
> verkabelt waren und Gigabytes an Daten mit einer kranken Datenrate
> abspeichern mussten :)
>
> Falls Georg mitliest, kann er sicher mehr dazu sagen xD

Bin zwar nicht Georg, aber: ja das war mal so :-)

Die letzte Version lief bis DDR3 800MHz Taktfrequenz. Oben ein Foto vom 
Aufbau (das DRAM-Modul sitzt auf einer risercard, die mit dem FPGA-Modul 
verbunden ist). Das Rechner-Rack ist nicht gezeigt, es hat die Daten per 
10Gbit Ethernet empfangen und auf Festplatten verteilt.

Das Trace umfasste allerdings nur die Kommandos/Adressen, für die Daten 
(die mit 2*800MHz schalten) hätte weder die Erfassung mit dem Virtex 
noch die Bandbreite des Netzwerks ausgereicht.

von gattler (Gast)


Lesenswert?

Achim hast du dazu eine Quelle?

von Achim S. (Gast)


Lesenswert?

zur DDR3-Version gibt es keine Veröffentlichung. Die wurde aus der 
Konkursmasse von Qimonda nach Korea verkauft. Zur DDR2-Version, die ja 
wie von Mampf geschrieben aus einer Doktorarbeit hervorging, gibt es 
etwas Literatur:

Simon Albert: Development of a fast DRAM Analyzer and Measurement of 
Typical and Critical Memory Access Sequences in Applications. 
Dissertation TU München, 2008

Manuel Harrant: Verifizierung und Entwicklung einer Analyse-Karte für 
SDRAM-Module mit DDR3-Schnittstelle. Bachelorarbeit Fachhochschule 
München, 2008

Simon Albert, Sven Kalms, Christian Weiss, Achim Schramm: Acquisition 
and evaluation of long DDR2-SDRAM access sequences. In Proceedings of 
the IEEE International Symposium on Performance Analysis of Systems and 
Software 2006, pages 242-250, Austin Texas, March 2006

von gattler (Gast)


Lesenswert?

Vielen Dank! Ich nehme mal an der Code dazu ist nicht öffentlich 
verfügbar?

von Achim S. (Gast)


Lesenswert?

gattler schrieb:
> Ich nehme mal an der Code dazu ist nicht öffentlich
> verfügbar?

Wie gesagt: die Rechte daran hat sich eine koreanische Firma gekauft 
(und eine nennenswerte Summe dafür ausgegeben).

Ich gehe zwar eher nicht davon aus, dass die hier mitlesen. Aber wenn es 
jemand veröffentlichen wollte, dann müssten die das tun.

von Asienexperte (Gast)


Lesenswert?

Kaum anzunehmen, zumal solche Patente meistens gekauft werden, um sie 
nicht an einen anderen gehen zu lassen, damit man seine Sachen, die 
minderwertig sind, weiter abverkaufen kann.

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

gattler schrieb:
> Es scheint also nicht komplett unmöglich zu sein :). Es muss ja nicht
> gleich DDR sein.

Wenn es nicht DDR sein soll, was dann sonst? DDR IST die beherrschende 
Architektur, die auch die einzige wäre, die man analysieren können muss, 
weil da ein komplexes Timing vorliegt. Der Rest ist ja trivial.

Ein SRAM kannst Du im FPGA in 30 Sekunden instanziieren.

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.