UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 64729

UltraScale - RSA Authentication and block RAM Utilization

Description

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?

Solution

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)

Attachments

Associated Attachments

Name File Size File Type
rsaBramConstraintGen.tcl 8 KB TCL
AR# 64729
Date Created 06/03/2015
Last Updated 01/06/2016
Status Active
Type General Article
Devices
  • Kintex UltraScale
  • Virtex UltraScale
Tools
  • Vivado Design Suite - 2015.1