Mapping block RAMs to specific address space

OP (Company: KIT) #5219401
Rate this post
• ▲ useful
▼ not useful
I am trying to load my program to a Block RAM using Data2mem, after the 
bitfile is generated. Here are the steps:

I have generated a BLOCK RAM as single port ROM with 32 bit-width and 
16384 bit-depth.
Then translated the design without any BMM file and looked at the 
PlanAhead tool to see which BRAM are used and which ramloop is assigned. 
There are 15 ramloop lines. There are 14 PRIM36 primitives and 1 PRIM18 
primitive as shown below:
BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[0].ram.r/v5_init.ram/SP.SINGLE_PRIM18.SP  **(RAMB18)**

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[1].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP 
**(RAMB36_EXP)**

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[2].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  (RAMB36_EXP)

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[3].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  (RAMB36_EXP)

⋮⋮
BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[14].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  (RAMB36_EXP)

I wrote the following .BMM file for address the ROM from 0x0000 to 
0xFFFF. and add it to the xilinx project.
ADDRESS_SPACE pr_mem1 RAMB32 [0x00000000:0x0000ffff]
BUS_BLOCK

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[0].ram.r/v5_init.ram/SP.SINGLE_PRIM18.SP  [31:0];
    END_BUS_BLOCK;
    BUS_BLOCK

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[1].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  [31:0];
    END_BUS_BLOCK;
    BUS_BLOCK

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[2].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  [31:0];
    END_BUS_BLOCK;
    BUS_BLOCK

BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[3].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  [31:0];
    END_BUS_BLOCK;
    BUS_BLOCK

⋮⋮
BROM_instance/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/val 
id.cstr/ramloop[14].ram.r/v5_init.ram/SP.SINGLE_PRIM36.SP  [31:0];
    END_BUS_BLOCK;
    END_ADDRESS_SPACE;

But when I tried to compile it again it gives me the error:
ERROR:Data2MEM:29 - Inconsistent address space size in ADDRESS_SPACE 
'pr_mem1'.

Can you please help me out where the error is occurring? Is ramloop[xx] 
correctly used?

Reply

Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.

Formatting
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.