Hallo Leute, ich habe den 8052 aus dem t51-Core von opencores.org auf meinen Spartan-3A-DSP 1800 mit Hilfe der Xilinx ISE 10.1 implementiert. Meine Programme schreibe ich mit SDCC und baue sie über die ISE mit dem BMM-MEM-File-Verfahren in den FPGA-Bitstream ein. Mein Testprogramm zur Ansteuerung eines LCDs und zur Kommunikation über RS-232 funktioniert auf dem FPGA-Board einwandfrei, solange ich mit den standardmäßg konfigurierten 8 kB ROM arbeite. Nun wollte ich das ROM auf die maximalen 64 kB erweitern, habe aber Probleme, mein Testprogramm zum laufen zu bringen. Mein BMM-File habe ich gemäß der DATA2MEM-Anleitung um 7 weitere Busblöcke erweitert und die Initialisierung und die Adressleitungen des ROMs angepasst. Laut Floorplaner wurden 32 ROM-Blöcke erzeugt und nach dem Einbinden des MEM-Files korrekt initialisiert, soweit ich das beurteilen kann. Nun stellt sich mir die Frage, wo der Fehler liegen könnte? Liegt es am Adressraum? Könnten Timing-Probleme eine Rolle spielen? Ist der Core standardmäßig gar nicht für mehr als 8 kB ROM geeignetß Das selbe Problem tritt übrigens auch bei 16 kB, 32 kB, etc. auf. Ich bin um jeden Tipp dankbar! Grüße, Alex
Hallo, Der T51 Core ist auf jeden Fall NICHT auf 8k limitiert (hab schon öfters für diverse Projekte mehr Speicher benötigt). Der Fehler muss in Deinem bmm-File oder der von Dir geänderten Speicheranbindung liegen. Hast Du versucht Deine Änderungen zu simulieren ? Gruss, Andreas
Hallo Andreas, nach mehreren Tests muss es wohl am bmm-File liegen. Sobald ich mehr als eine Busblock-Reihe definiere, bekomme ich mein Testprogramm nicht mehr zum laufen. Für 32 kB ROM benutze ich folgendes bmm-File: ADDRESS_SPACE T51_ROM_Xilinx RAMB16 [0x0000:0x7FFF] BUS_BLOCK rom/Mrom_D_rom00008 [7:7]; rom/Mrom_D_rom00007 [6:6]; rom/Mrom_D_rom00006 [5:5]; rom/Mrom_D_rom00005 [4:4]; rom/Mrom_D_rom00004 [3:3]; rom/Mrom_D_rom00003 [2:2]; rom/Mrom_D_rom00002 [1:1]; rom/Mrom_D_rom00001 [0:0]; END_BUS_BLOCK; BUS_BLOCK rom/Mrom_D_rom000016 [7:7]; rom/Mrom_D_rom000015 [6:6]; rom/Mrom_D_rom000014 [5:5]; rom/Mrom_D_rom000013 [4:4]; rom/Mrom_D_rom000012 [3:3]; rom/Mrom_D_rom000011 [2:2]; rom/Mrom_D_rom000010 [1:1]; rom/Mrom_D_rom00009 [0:0]; END_BUS_BLOCK; END_ADDRESS_SPACE; Die ROM-Blöcke sind alle im Floorplaner aufgeführt mit korrekter Initialisierung. Was könnte hier nicht stimmen? Grüße, Alex
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.