AR# 15888


14.7 MAP - Why and when would I use the "-bp" MAP option ("map slice logic to block RAM")?


The "-bp" MAP option maps slice logic to block RAM.

How does this option work, and when should I use it?


The "-bp" option allows MAP to pack a combination of LUT-FF logic into unused block RAM components.

You can use this feature in designs that are slightly over-mapped and might benefit from increased logic utilization available in the block RAM.

All block RAMs have synchronous registered outputs.

MAP packs a register into the block RAM output along with whatever LUT logic is driving it.

A register will not be packed into block RAM without LUT logic, and vice versa. 
This feature also supports user-control of the block RAM packing using a file that lists FF output net names.

This functionality is triggered by the environment variable "XIL_MAP_BRAM_FILE", which should be set to the applicable file name.

Only the LUT-FF logic associated with the specified nets is packed into block RAM. 

set XIL_MAP_BRAM_FILE=file_name


setenv XIL_MAP_BRAM_FILE file_name

The current implementation of this feature packs only LUTs and a FF into a single-output, single-ported block RAM.

The default block RAM packing behavior will select only LUT logic cones with at least six inputs to avoid performance degradation.

The list-driven block RAM packer will pack smaller LUT logic cones if specified. 
For general information about setting ISE environment variables, see (Xilinx Answer 11630).
AR# 15888
Date 02/17/2015
Status Active
Type General Article
People Also Viewed