Xilinx 7: Mehr als 1GB DDR3 Ram?

Gast #4543945
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?
Gast #4544084
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.
Gast #4544192
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.
OP #4544215
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.
Gast #4544221
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.
Gast #4548540
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
Gast #4548751
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.
Angehängte Dateien:
Gast #4548856
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.
Gast #4551317
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
OP #4551361
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.
Gast #4551440
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren