t51-Core/8052: ROM erweitern

#1772984
Lesenswert?

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
#1775928
Lesenswert?

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

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