我在ISE中添加microblaze软核,microblaze中使用了AXI总线和block BRAM,XPS中生成网表成功,然后在ISE中生成比特文件出错,错误如下。我查找相关资料发现是生成的“XXX_bd.BMM"文件有问题,有些BRAM没有分配好。“XXX_bd.BMM"文件贴在错误后面。有没有人遇到相关问题,急等,求帮助!
ERROR: Data2MEM:47 - Not all BitLanes in ADDRESS_SPACE
'microblaze_0.axi_bram_block_combined' have BMM location constraints.
Some data for this ADDRESS_SPACE may be lost during BIT file
replacement. Verify that the BMM file has location constraints
for all BitLanes.
Bitlane(s)
----------------
system_i/axi_bram_block/axi_bram_block/ramb36e1_3 [7:0]
system_i/axi_bram_block/axi_bram_block/ramb36e1_2 [15:8]
system_i/axi_bram_block/axi_bram_block/ramb36e1_1 [23:16]
system_i/axi_bram_block/axi_bram_block/ramb36e1_0 [31:24]
ERROR:EDK:1001 - Data2Mem generated errors during execution
make: *** [implementation/download.bit] ´íÎó 1
ERROR:EDK -
Error while running "make -f system.make init_bram".
ERROR: running XPS to load ELF data to bitstream failed.
ERROR: Bitstream data load failed, XPS did not generate E:/Users/taoge/Desktop/test/OFDM_COMM/embedded_cpu/pro_mb/implementation/download.bit
XXX_bd.BMM:
// BMM LOC annotation file.
//
// Release 14.5 - P.58f, build 3.0.7 Mar 3, 2013
// Copyright (c) 1995-2013 Xilinx, Inc. All rights reserved.
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0', ID 100, memory map.
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0' address space 'microblaze_0_bram_block_combined' 0x00000000:0x0000FFFF (64 KBytes).
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_SPACE microblaze_0_bram_block_combined RAMB32 [0x00000000:0x0000FFFF]
BUS_BLOCK
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_0 RAMB32 [31:30] [0:16383] INPUT = microblaze_0_bram_block_combined_0.mem PLACED = X1Y13;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_1 RAMB32 [29:28] [0:16383] INPUT = microblaze_0_bram_block_combined_1.mem PLACED = X0Y16;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_2 RAMB32 [27:26] [0:16383] INPUT = microblaze_0_bram_block_combined_2.mem PLACED = X3Y15;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_3 RAMB32 [25:24] [0:16383] INPUT = microblaze_0_bram_block_combined_3.mem PLACED = X3Y16;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_4 RAMB32 [23:22] [0:16383] INPUT = microblaze_0_bram_block_combined_4.mem PLACED = X2Y16;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_5 RAMB32 [21:20] [0:16383] INPUT = microblaze_0_bram_block_combined_5.mem PLACED = X2Y15;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_6 RAMB32 [19:18] [0:16383] INPUT = microblaze_0_bram_block_combined_6.mem PLACED = X2Y17;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_7 RAMB32 [17:16] [0:16383] INPUT = microblaze_0_bram_block_combined_7.mem PLACED = X1Y17;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_8 RAMB32 [15:14] [0:16383] INPUT = microblaze_0_bram_block_combined_8.mem PLACED = X1Y18;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_9 RAMB32 [13:12] [0:16383] INPUT = microblaze_0_bram_block_combined_9.mem PLACED = X1Y15;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_10 RAMB32 [11:10] [0:16383] INPUT = microblaze_0_bram_block_combined_10.mem PLACED = X0Y18;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_11 RAMB32 [9:8] [0:16383] INPUT = microblaze_0_bram_block_combined_11.mem PLACED = X0Y17;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_12 RAMB32 [7:6] [0:16383] INPUT = microblaze_0_bram_block_combined_12.mem PLACED = X0Y14;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_13 RAMB32 [5:4] [0:16383] INPUT = microblaze_0_bram_block_combined_13.mem PLACED = X0Y15;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_14 RAMB32 [3:2] [0:16383] INPUT = microblaze_0_bram_block_combined_14.mem PLACED = X1Y14;
system_i/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_15 RAMB32 [1:0] [0:16383] INPUT = microblaze_0_bram_block_combined_15.mem PLACED = X1Y16;
END_BUS_BLOCK;
END_ADDRESS_SPACE;
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0' address space 'axi_bram_block_combined' 0x41218000:0x4121BFFF (16 KBytes).
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_SPACE axi_bram_block_combined RAMB32 [0x41218000:0x4121BFFF]
BUS_BLOCK
system_i/axi_bram_block/axi_bram_block/ramb36e1_0 RAMB32 [31:24] [0:4095] INPUT = axi_bram_block_combined_0.mem;
system_i/axi_bram_block/axi_bram_block/ramb36e1_1 RAMB32 [23:16] [0:4095] INPUT = axi_bram_block_combined_1.mem;
system_i/axi_bram_block/axi_bram_block/ramb36e1_2 RAMB32 [15:8] [0:4095] INPUT = axi_bram_block_combined_2.mem;
system_i/axi_bram_block/axi_bram_block/ramb36e1_3 RAMB32 [7:0] [0:4095] INPUT = axi_bram_block_combined_3.mem;
END_BUS_BLOCK;
END_ADDRESS_SPACE;
END_ADDRESS_MAP;