问题描述
当我在XPS中创建大于64 KB的Block RAM内存结构时,我的设计失败了。
解决/修复方法
XPS正在利用Virtex-4中的级联Block RAM功能。但是,Platgen创建了内存结构,使“UPPER”内存在“LOWER”内存之前就被软件应用程序填满。
要解决此问题:
1.在XPS中运行“创建网表”。
2.修改在项目实现目录中创建的“.bmm”文件的内存结构:
//文件:C:\ test_project \ 128k \ mytest_ml401_128K \ implementation \ system.bmm
ADDRESS_MAP microblaze_0 MICROBLAZE 100
ADDRESS_SPACE lmb_bram_combined COMBINED [0x00000000:0x0001ffff]
ADDRESS_RANGE RAMB16
BUS_BLOCK
lmb_bram / lmb_bram / ramb16_0 [31:31];
lmb_bram / lmb_bram / ramb16_1 [30:30];
:
:
lmb_bram / lmb_bram / ramb16_30 [1:1];
lmb_bram / lmb_bram / ramb16_31 [0:0];
END_BUS_BLOCK;
BUS_BLOCK
lmb_bram / lmb_bram / ramb16_32 [31:31];
lmb_bram / lmb_bram / ramb16_33 [30:30];
:
:
lmb_bram / lmb_bram / ramb16_62 [1:1];
lmb_bram / lmb_bram / ramb16_63 [0:0];
END_BUS_BLOCK;
END_ADDRESS_RANGE;
END_ADDRESS_SPACE;
END_ADDRESS_MAP;
至:
//文件:C:\ test_project \ 128k \ mytest_ml401_128K \ implementation \ system.bmm
ADDRESS_MAP microblaze_0 MICROBLAZE 100
ADDRESS_SPACE lmb_bram_combined COMBINED [0x00000000:0x0001ffff]
ADDRESS_RANGE RAMB16
BUS_BLOCK
lmb_bram / lmb_bram / ramb16_32 [31:31];
lmb_bram / lmb_bram / ramb16_33 [30:30];
:
:
lmb_bram / lmb_bram / ramb16_62 [1:1];
lmb_bram / lmb_bram / ramb16_63 [0:0];
END_BUS_BLOCK;
BUS_BLOCK
lmb_bram / lmb_bram / ramb16_0 [31:31];
lmb_bram / lmb_bram / ramb16_1 [30:30];
:
:
lmb_bram / lmb_bram / ramb16_30 [1:1];
lmb_bram / lmb_bram / ramb16_31 [0:0];
END_BUS_BLOCK;
END_ADDRESS_RANGE;
END_ADDRESS_SPACE;
END_ADDRESS_MAP;
3.在创建网表时查看日志文件,并从命令行重新运行NGDBuild,如在日志文件中运行,确保包含新修改的“.bmm”文件。
4.您现在可以在XPS中运行“创建比特流”。
这些问题已在最新的EDK 8.2i Service Pack中修复,可从以下位置获得:
没有回复内容