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...
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?
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...
Ö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.
Das ist echt ein bissl blöd. Mal sehen wie ich das lösen kann...ich dachte ich hätte was übersehen....
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.
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.
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.
Kann man denn ein DDR-RAM Byteweise adressieren? Oder kann man nur ganze Worte lesen? Denn dann wären das 2^30 * 32bit = 4GB.
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.
"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
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.
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
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.
Im UG586 stehts ähnlich drin. Seltsam, wie wird dann das 8GB SODIMM angesprochen?
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.
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.
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
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
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.
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
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.