Hallo! Ich nutze das http://www.ztex.de/usb-fpga-1/usb-fpga-1.15.e.html Ztex Usb FPGA 1.15b Module mit dem Spartan 6 XC6SLX75 und einem EZUsb FX2LP. Auf dem Board ist auch ein 128MByte DDR2 Ram verbaut. Nun möchte ich den Ram mit dem Xilinx MIG ansprechen und als FIFO für Pixeldaten die von einem Aptina MT9M001 nutzen. Habe es schon mit dem BlockRAM versucht aber der ist zu klein sobald man einen etwas schnelleren Pixeltakt(>~ 12 MHz) nutzen will weil der FX2 ja immer seinen eigenen FIFO leeren muss. Habe dazu auch schon den ein oder anderen Thread hier auf dem Board gefunden :) Ich kriege den RAM nach abändern eines Beispielcodes auch beschrieben bzw ausgelesen aber das Bild sieht daraufhin nicht so aus wie es sein sollte: Das hier müsste der Beispielcode sein: http://opencores.org/websvn,filedetails?repname=usb_fpga_1_2&path=%2Fusb_fpga_1_2%2Ftrunk%2Fexamples%2Fusb-fpga-1.15%2F1.15a%2Fmemtest%2Ffpga%2Fmemtest.vhd Meine Frage bezieht sich jetzt auf die Adressierung des RAMs. Durch das Memory Interface welches man aus dem Xilinx MIG bekommt muss man sich ja nicht um irgendwelche Rows oder Columns kümmern sondern hat quasi einen linearen Addressraum. Der DDR2 Ram ist 128MByte groß. Ich beschreibe/lese den RAM mit 32 Bit Ports und die Burstlength ist auf 64 eingestellt. Dies entspricht 32*64/8 = 256 bytes. Ist das dann quasi eine gefüllte Adresse? Das würde heissen, dass mir 128Mbyte/256byte = 500000 Adressen zur Verfügung stehen? Also ein 20 Bit Adress Signal... Stimmt das erstmal soweit? Danke schon einmal im vorraus :) Gruß tedd
Manuel Ted schrieb: > Der DDR2 Ram ist 128MByte groß. Lt. Schaltplan ist ein 16x RAM verbaut. Die minimale Burstlänge (bzw. Prefetch) bei DDR2 beträgt 4. Damit werden minimal 64 Bit = 8 Byte gelesen. Darauf bezieht sich die Adresse, die der RAM-Baustein sieht. > Ich beschreibe/lese den RAM mit 32 Bit Ports und die Burstlength ist auf > 64 eingestellt. Dies entspricht 32*64/8 = 256 bytes. Was dem MCB draus macht sthet im UG388, Chapter 4 -> Addressing > Ist das dann quasi eine gefüllte Adresse? > Das würde heissen, dass mir 128Mbyte/256byte = 500000 Adressen zur > Verfügung stehen? Also ein 20 Bit Adress Signal... Ich verstehe UG388 so, das da Byteweise adresiert wird: 128 MByte = 128 1024 1024 Byte = 134217728 Byte Der Adressbus ist dann 27 Bit breit, wobei die unteren beiden Bits immer '0' sind. Du kannst Dir auch die Portbreite von c?_p0_cmd_byte_addr anschauen. Die scheint allerdings für ein gewisses Maximum (MIG 3.9 = 30 Bit) ausgelegt zu sein. Duke
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.