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.
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).
Was this Answer Record helpful?