Forum: FPGA, VHDL & Co. Data2Mem - Ax8 - BMM


von Andreas Weschenfelder (Gast)


Lesenswert?

Hallo zusammen,

ich würde gerne meinen Programmcode (Ax8) mittels Data2Mem direkt im 
Bitfile ändern.

Leider bin ich mir über meine BMM Files nicht ganz sicher. Könnt ihr mal 
drüber schauen:

mein BMM-File:
-----------------------------------------------------------------
ADDRESS_BLOCK pm RAMB16 [0x000:0xFFF]


BUS_BLOCK
//MainTop/MyA90S2313/ROM/Mrom_D1 [15:0] PLACED=X0Y0 OUTPUT = pm1.mem;
MyA90S2313/ROM/Mrom_D1 [15:0] PLACED=X0Y0 OUTPUT = pm1.mem;
END_BUS_BLOCK;

BUS_BLOCK
//MainTop/MyA90S2313/ROM/Mrom_D2[15:0] PLACED=X0Y2 OUTPUT = pm2.mem;
MyA90S2313/ROM/Mrom_D2 [15:0] PLACED=X0Y2 OUTPUT = pm2.mem;
END_BUS_BLOCK;


END_ADDRESS_BLOCK;
-----------------------------------------------------------------

das hat nach der Synthese ISE erstellt:
-----------------------------------------------------------------
// BMM LOC annotation file.
//
// Release 10.1i - Data2MEM K.31, build 1.5.7 Nov 8, 2007
// Copyright (c) 1995-2009 Xilinx, Inc.  All rights reserved.
//
// Created on 04/16/09 01:55 pm
//


//////////////////////////////////////////////////////////////////////// 
///////
//
// Unnamed 405 PPC processor, ID 0, memory map.
//
//////////////////////////////////////////////////////////////////////// 
///////


//////////////////////////////////////////////////////////////////////// 
///////
//
// Address space 'pm' 0x00000000:0x00000FFF (4 KB).
//
//////////////////////////////////////////////////////////////////////// 
///////

ADDRESS_SPACE pm RAMB16 [0x00000000:0x00000FFF]
    BUS_BLOCK
        MyA90S2313/ROM/Mrom_D1 [15:0] OUTPUT = pm1.mem PLACED = X0Y0;
    END_BUS_BLOCK;

    BUS_BLOCK
        MyA90S2313/ROM/Mrom_D2 [15:0] OUTPUT = pm2.mem PLACED = X0Y2;
    END_BUS_BLOCK;
END_ADDRESS_SPACE;
-----------------------------------------------------------------



Anschließend rufe ich data2mem wiefolgt auf:

..\hex2bin.exe main.hex
..\srecord-1.42-win32\srec_cat.exe main.bin -bin -o rom.mem -vmem 8
data2mem -bm ../../FPGA/Ax8_rom_bd.bmm -bt ../../FPGA/maintop.bit -bd 
rom.mem -o b ../../FPGA/final.bit


Leider läufert der Core dannach nicht an...
Seht ihr vielleicht auf Anhieb einen Fehler?

Gruß Andreas

von Antti (Gast)


Lesenswert?

sieht ok aus
ich mache so was die ganze zeit ohne probleme

bei ISE 11.1 kann man den .MEM file in VHDL eingeben, macht automatisch 
den BMM

aber da musst du ein paar wochen warten..

Antti
PS i mache gerade eigenen SoC mit AX8, der ist fur Actel
A3P060, aber ich teste die ganze zeit mit Xilinx und bmm
geht viel schneller

warest du interriert mit meinem projekt mithelfen?
wurdest den source und alles kriegen..

von Andreas Weschenfelder (Gast)


Lesenswert?

Hi Antti,

kannst du mal genauer beschreiben wie ich das .mem-File in den vhdl-code 
einfüge?

Gruß Andreas

von Antti (Gast)


Lesenswert?

na, zuerst 8+ jahre erfahrung sammeln, dann geht von selbst :)

ich mache immer mit alte methode, nutze das neue 11.1 noch nicht,

mit AX8 arbeite ich auch, hat viele bugs leider die man reparieren muss
aber eigentlich sollte es doch laufen

noch ein tip: mach ein ROM module, in dem du entweder das bram module
einbindest oder dann einen VHDL rom mit einem rom generator
(zv das von ax8 distri),
dann fur sim nimm das vhdl ROM, guck nach es lauft in
simulator
dann teste das mit vhdl ROM in FPGA
nur dann ersetze es mit bram rom und teste wieder
und wenns dann nicht geht dann chipscope rein und
gucken was passiert

humm
aber warum (zT) hast du output=
in deiner BMM datei???
das soll da ja nicht rein


Antti

der .BMM geht 100%

--------------- CUT ----------------

    ADDRESS_SPACE BIOS COMBINED [0x00000000:0x00000FFF]

     ADDRESS_RANGE RAMB16
      BUS_BLOCK
                                  rom/FLASH/rom [15:0] ;
      END_BUS_BLOCK;
    END_ADDRESS_RANGE;

     ADDRESS_RANGE RAMB16
      BUS_BLOCK
            rom/ramdp/rom [15:0] ;
      END_BUS_BLOCK;
    END_ADDRESS_RANGE;

    END_ADDRESS_SPACE;

------------- cut -------------------

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
Noch kein Account? Hier anmelden.