Forum: FPGA, VHDL & Co. Xilinx 7: Mehr als 1GB DDR3 Ram?


von Christian R. (supachris)


Lesenswert?

Sehe ich das richtig dass ich an einem 7er Xilinx nur 1GB pro MIG 
Controller ansprechen kann? Gibts da außer Multi Controller Design 
keinen anderen Weg? Irgendwie erscheint mir das etwas wenig...

von Waltraud B. (Gast)


Lesenswert?

Wo siehst Du denn das (Link, Quellenangabe...)?

von Fpgakuechle K. (Gast)


Lesenswert?

Christian R. schrieb:
> Sehe ich das richtig dass ich an einem 7er Xilinx nur 1GB pro MIG
> Controller ansprechen kann? Gibts da außer Multi Controller Design
> keinen anderen Weg? Irgendwie erscheint mir das etwas wenig...

Was ist den an der anderen Seite des MIG - ein AXI mit 32 bit 
addressbreite?

von Christian R. (supachris)


Lesenswert?

Im Datenblatt des MIG 2.4 und auch am Adressregister des Nativ 
Interface. Da sind nur 30 Bit, also 1 GByte. Bei DDR2 ist es sogar noch 
weniger. Komisch, kommt mir etwas unzeitgemäß vor...

von Sigi (Gast)


Lesenswert?

Öhm, scheint mir so zu stimmen, schade aber auch.
Frag doch mal im Xilinx-Forum nach.

Denn: Systeme mit >>> 1 GB müssten doch möglich sein,
desweiteren ist man ja auch durch die Anzahl hard-MIGs
und die Pinzahl (z.B. für Soft-MIGs) beschränkt.

von Christian R. (supachris)


Lesenswert?

Das ist echt ein bissl blöd. Mal sehen wie ich das lösen kann...ich 
dachte ich hätte was übersehen....

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Du hast was übersehen, ja - Xilinx möchte auch Kintexe verkaufen, daher 
hat man die volle Unterstützung für die Artix wohl etwas limitiert. Ganz 
ohne DDR3-Controller wollte man ihn wohl nicht lassen und hat ihm was 
Alibimäßiges  spendiert, um den MCB beim Spartan zu ersetzen - aber es 
ist schon etwas seltsam: Keine Multiport-Unterstützung, wie man sieht 
und auch ein Bandbreitenlimit / Bitlimit. Mit einer langsameren 
Technologie, nämlich den Virtex6, ging da schon mehr.

von Christian R. (supachris)


Lesenswert?

Weltbester FPGA-Pongo schrieb im Beitrag #4544192:
> Du hast was übersehen, ja - Xilinx möchte auch Kintexe verkaufen, daher
> hat man die volle Unterstützung für die Artix wohl etwas limitiert.

Nee, das ist offenbar bei allen 7ern so. Das Dokument gilt für alle 
Artix, Kintex, Virtex.

Klar, der MCB am Spartan war schon nett, aber die ganzen Limitationen 
des S6 möchte ich nicht nochmal haben, ein Design mit dem unausgegorenem 
Teil reicht. Virtex können wir aufgrund der enormen Verlustleistung 
nicht einsetzen.

von Eff Peh Geh Ah (Gast)


Lesenswert?

Nicht das ich das schonmal gebraucht hätte - aber im MIG kann man 
SODIMMs mit 8GB (wohlgemerkt großes B nicht Gbit, bei Components ändert 
es sich in Gb) auswählen.

Ob sich dass dann auch korrekt auswirkt habe ich nicht geprüft.

von Markus K. (markus-)


Lesenswert?

Kann man denn ein DDR-RAM Byteweise adressieren? Oder kann man nur ganze 
Worte lesen? Denn dann wären das 2^30 * 32bit = 4GB.

von Christian R. (supachris)


Lesenswert?

Die Adressierung über den MIG erfolgt Byteweise, egal wie breit der RAM 
selber angebunden ist. Und da sind nur 30 Bit. Naja dann muss es halt 
erst mal nur 1GB werden.

von Markus K. (markus-)


Lesenswert?

"but you can achive 16Gb taking 4G/8G as base part and increasing the 
Row & Column address."

Quelle:
https://forums.xilinx.com/t5/Memory-Interfaces/a-large-memory-support-of-7-Series-MIG/td-p/383699

von Christian R. (supachris)


Lesenswert?

Ah, interessant, muss ich mal in Ruhe durchlesen. Scheint ja bissl 
frickelig zu sein. Ein 8GB Modul wäre auch eine Option, muss ich mal 
schauen ob wir das platzmäßig drauf bekommen.

von daniel__m (Gast)


Lesenswert?

Christian R. schrieb:
> Die Adressierung über den MIG erfolgt Byteweise, egal wie breit der RAM
> selber angebunden ist. Und da sind nur 30 Bit. Naja dann muss es halt
> erst mal nur 1GB werden.

hi,

ich meine sicher zu sein, dass die Adressierung nicht byteweise, 
sondern Busbreitenabhängig ist: 2**30 * 32bit = 4GiB.

Bei meinem System (64 Bit Bus) muss ich die unteren 3 Bit der 
Byteadresse abschneiden.

grüße

von Achim S. (Gast)


Angehängte Dateien:

Lesenswert?

daniel__m schrieb:
> ich meine sicher zu sein...

da meinst du nicht ganz richtig.

Die unter Bits der Adresse müssen nicht abgeschnitten werden, sie müssen 
auf Null gesetzt werden. Der Zugriff erfolgt also Word-Aligned, aber die 
Adressen ist immer noch eine Byteadresse - die unteren Bits sind zwar 0, 
aber sie sind immer noch da und zählen zur Breite der Adresse mit. Von 
einem Word zum nächsten musst du die Adresse um 8 (Bytes) erhöhen, nicht 
um 1 (Word).

Der Zugriff kann natürlich weiterhin Bytes auflösen, weil
- beim Schreiben die anderne Bytes des Words ausmaskiert werden können
- beim Lesen die anderen Bytes des Words ignoriert werden können

So ist es zumindest beim MIG für den Spartan 6, in der 7er Serie habe 
ich noch kein DRAM angeschlossen.

von Christian R. (supachris)


Angehängte Dateien:

Lesenswert?

Im UG586 stehts ähnlich drin. Seltsam, wie wird dann das 8GB SODIMM 
angesprochen?

von Achim S. (Gast)


Lesenswert?

ich hab im UG586 (zumindest auf die Schnelle) keine umfassende und klare 
Aussage zur erlaubten Adressebreite gefunden.

Mit AXI4-Slave Interface darf die Adressbreite wohl 32 oder 64 Bit 
betragen (Tabelle 1.16 in UG586). Damit wäre die 33 Bit für das 
8GB-SODIMM abgedeckt. Mit EDK ist die Breite wohl auf 32 Bit beschränkt 
(4GByte).

Mit native-Interface sehe ich nur Einschränkungen für die Anzahl der 
Ranks (nur einer) und die Anzahl der Bänke (maximal 8), aber nicht für 
die Anzahl der Columns und Rows.

von Christian R. (supachris)


Lesenswert?

Schon seltsam. Der MIG erlaubt aber native Interface auch bei dual rank 
SODIMM. Naja, muss ich wohl mal den FAE anfragen. Der weiß das 
sicherlich.

von daniel__m (Gast)


Lesenswert?

Achim S. schrieb:
> So ist es zumindest beim MIG für den Spartan 6

Das gilt für den S6.

Für den V6 oder die 7er Serie gilt für die Adresse: "ADDR_WIDTH
This is the memory address bus width. It is equal
to RANK_WIDTH + BANK_WIDTH +
ROW_WIDTH + COL_WIDTH." (ug586, table 1-64)

Die Busbreite wird dann bei "AXI Addressing" 
http://www.mikrocontroller.net/attachment/290935/MIG_AXI_ADDR.png 
berücksichtigt (welche auch 64bittig sein kann).

Es muss evtl. zwischen nativen und AXI Interface unterschieden werden.

grüße

von daniel__m (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mal 8x MT41K1G8 (= 1GByte mit 8 bit) zu einem 64 Bit Bus 
zusammengeschaltet. Da schlägt er eine AXI Adresse von 33 Bit vor.

grüße

von Christian R. (supachris)


Lesenswert?

Ja, es scheint, als ob das nur bei AXI klappt. Wollte ich eigentlich 
vermeiden (Schon wegen der lästigen Umstellerei auf Verilog), aber naja.
Trotz der Einstellung/Anzeige von 33 Bit Adressbreite erzeugt der MIG 
nur einen 32 Bit AXI Adress Eingang. Aber da stand was in den Xilinx 
Foren, dass man da eventuell nochmal von Hand was anpassen muss.

von daniel__m (Gast)


Lesenswert?

Christian R. schrieb:
> Ja, es scheint, als ob das nur bei AXI klappt.

Ich habe gerade nachgeschaut und probiert: bei nativem Interface könnte 
ich auch 8GB Ram anschließen und verwenden. Hier wird kein 
konvertieren der Adresse vorgenommen: 2**30 Adressen zu je 8 Byte = 8GiB

Beim AXI Bus wird die Adresse durch anhängen bzw. festsetzen von '0'-en 
in eine Byteadresse gewandelt (siehe Bild-Text) -> 33 Bit Adresse

grüße

von Christian R. (supachris)


Lesenswert?

Ah, obercool, danke! Dann kanns ja losgehen.

von Kameramann (Gast)


Lesenswert?

Lass mal bitte hören, wenn es gefunzt hat!

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.