微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > bmm文件(用data2mem更新core generator生成的memory)

bmm文件(用data2mem更新core generator生成的memory)

时间:10-02 整理:3721RD 点击:
平台环境: ise14.7. xc6vlx760
用Core Generator生成32x2048的block ram, 使用coe文件初始化memory。生成bit文件后,编写bmm文件,使用data2mem dump出memory内容。
Core Generator使用2个RAMB36E1(配置成18x2048)来实现32x2048的memory。具体primitive中和logic bit映射关系如下:
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[0]      [0:0]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[1]      [1:1]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[2]      [2:2]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[3]      [3:3]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[4]      [4:4]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[5]      [5:5]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[6]      [6:6]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[7]      [7:7]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOPADOP[0]    [8:8]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[8]      [9:9]     PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[9]      [10:10]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[10]     [11:11]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[11]     [12:12]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[12]     [13:13]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[13]     [14:14]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[14]     [15:15]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOADO[15]     [16:16]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[0].ram.r/a.ram/DOPADOP[1]    [17:17]   PLACED=X4Y26;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[0]      [18:18]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[1]      [19:19]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[2]      [20:20]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[3]      [21:21]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[4]      [22:22]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[5]      [23:23]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[6]      [24:24]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[8]      [25:25]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[9]      [26:26]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[10]     [27:27]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[11]     [28:28]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[12]     [29:29]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[13]     [30:30]   PLACED=X4Y25;
ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram/DOADO[14]     [31:31]   PLACED=X4Y25;
RAMB36使用了parity,所以从bit中dump出来的ram内容并不能直接对应coe文件中的内容。
试了几种bmm文件,如下的bmm能正确的dump出ram的内容(与planahead里看到的ram属性里读到的值一样):
ADDRESS_SPACE cpu_rom RAMB36 WORD_ADDRESSING [0x00000000:0x00000FFF]
         BUS_BLOCK
             ROM2048X32_TOP/ROM_CELL/XC6V_ROM2048x32/U0/aramloop[0].ram.r/a.ram [17:0] PLACED=X4Y26;
             ROM2048X32_TOP/ROM_CELL/XC6V_ROM2048x32/U0/a/ramloop[1].ram.r/a.ram [35:18] PLACED=X4Y25;
    END_ADDRESS_RANGE;
但用这个bmm和相同的elf文件更新bit文件之后,dump出来的ram内容就不对了。感觉是bmm的问题。
请教什么地方有错?谢谢

看着很不错呢,相信你会解释给我听的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top