Gast
#1332510
Hallo vielleicht kann mir jemand bei einem Problem beim Xilinx xps_mch_emc_v2_00_a IP Core. Hintergrund: Ich setze EDK 10.1 für ein Virtex 5 ein. Ich benutze den PPC (32 bit interner Bus) Der oben genannte Core soll das Interface für einen FXC128XFTG64C sein (Flash Baustein für den Virtex 5 Bitstream, 16bit Datenbus). Es sollen nicht benutzte Teile in dem Flash Baustein verwendet werden um andere Daten abzulegen. Da ja der interne Datenbus 32 bit breit ist, der Datenbus des Flashspeichers aber nur 16bit habe ich im IP Core das "Execute Multiple Memory Accesses to match Bank x Data Bus width to PLB Data Bus Width" auf True gesetzt. Wenn ich jetzt im C Code des PPC versuche über das gemappte Memory auf den Flash zu schreiben bekomme ich auf dem Logic Analyzer eine verschiedene Anzahl von Schreibzugriffen (die Write Leitung wird auf GND gezogen) angezeigt. Problem: Die Anzahl der Schreibzugriffe hängt kurioser weise von der zu beschreibenden Adresse ab: Beschreiben von Adresse 0x0H: *u16 = u16 (Beschreiben eines 16bit Pointers mit 16bit Daten) 1 Schreibzugriff *u16 = u32 (Beschreiben eines 16bit Pointers mit 32bit Daten) 1 Schreibzugriff *u32 = u32 (Beschreiben eines 32bit Pointers mit 32bit Daten) 2 Schreibzugriffe *u32 = u16 (Beschreiben eines 32bit Pointers mit 16bit Daten) 2 Schreibzugriffe Soweit ist noch alles ok (zumindest halbwegs nachvollziehbar) Schreibe ich jedoch jetzt auf die Adresse 0xBDDF - (Ich muss dort hinschreiben um den Flash in den Async Lesemodus zu versetzen) bekomme ich die folgende Anzahl von Schreibzugriffen: *u16 = u16 (Beschreiben eines 16bit Pointers mit 16bit Daten) 2 Schreibzugriffe *u16 = u32 (Beschreiben eines 16bit Pointers mit 32bit Daten) 2 Schreibzugriffe *u32 = u32 (Beschreiben eines 32bit Pointers mit 32bit Daten) 3 Schreibzugriffe *u32 = u16 (Beschreiben eines 32bit Pointers mit 16bit Daten) 3 Schreibzugriffe Speziell im 2. Fall kann ich ebenfalls die Adresse, die an den Adressbus anliegt (müsste ja 0xBDDF sein) nicht nachvollziehen. Das der PPC Big Endian und der Flash Little Endian ist habe ich beachtet. Hat jemand noch eine Idee?