When using RSA authentication, certain block RAMs might be used to hold interim rolling keys, which impacts the ability to initialize those blocks.
For a given block RAM column, each 36K block that resides in the bottom of a clock region is affected. Essentially the first 36K of block RAM starting at the bottom of a device and then every 12th 36K block RAM after that in a column (BRAM36_X*Y0, BRAM36_X*Y12, BRAM36_X*Y24, etc.).
Those block RAMs can not be initialized to user-defined values when using RSA authentication. They are always initialized to 0 after configuration.
How do I determine which block RAMs in my design have non-zero initialization values and move them to valid block RAM locations?
Attached to this Answer Record is a script that will detect all of the block RAMs used in a design with non-zero init values and assign valid block RAM range constraints to them.
This script should be run pre-place (the pre.tcl step of Placement in the GUI flow)
|Name||File Size||File Type|