Gast
#1230958
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