16.11.2015 Views

UltraScale Architecture Memory Resources

ug573-ultrascale-memory-resources

ug573-ultrascale-memory-resources

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 1: Block RAM <strong>Resources</strong><br />

Content Initialization – INIT_xx<br />

The memory content can be initialized or cleared in the configuration bitstream. A<br />

standard, valid bitstream is required for block RAM initialization or readback due to the<br />

power gating feature. For more details on initialization and readback of uninstantiated<br />

(power gated) block RAM, see Power Gating of Unused Block RAMs.<br />

IMPORTANT: The bitstream RSA authentication feature uses certain block RAMs to hold interim rolling<br />

keys. For a given block RAM column, each 36K block RAM block in the bottom of a clock region is<br />

affected. The first 36K block RAM starting at the bottom of a device is used and then every twelfth 36K<br />

block RAM after that in a column is used (BRAM36_X*Y0, BRAM36_X*Y12, BRAM36_X*Y24, etc.) These<br />

block RAMs cannot be initialized to user defined values. The block RAMs are always initialized to 0 after<br />

configuration.<br />

INIT_xx attributes define the initial memory contents. By default, block RAM is initialized<br />

with all zeros during the device configuration sequence. The 64 initialization attributes from<br />

INIT_00 through INIT_3F for the RAMB18E2, and the 128 initialization attributes from<br />

INIT_00 through INIT_7F for the RAMB36E2 represent the regular memory contents. Each<br />

INIT_xx is a 64-digit hex-encoded bit vector. The memory contents can be partially<br />

initialized and are automatically completed with zeros.<br />

The following formula is used to determine the bit positions for each INIT_xx attribute.<br />

Given yy = conversion hex-encoded to decimal (xx), INIT_xx corresponds to the memory<br />

cells as follows:<br />

• from [(yy + 1) × 256] - 1<br />

• to (yy) × 256<br />

For example, for the attribute INIT_1F, the conversion is:<br />

• yy = conversion hex-encoded to decimal (xx) "1F" = 31<br />

• from [(31+1) × 256] - 1 = 8,191<br />

• to 31 × 256 = 7,936<br />

More examples are given in Table 1-15.<br />

Table 1-15: Block RAM Initialization Attributes<br />

Attribute<br />

<strong>Memory</strong> Location<br />

From<br />

To<br />

INIT_00 255 0<br />

INIT_01 511 256<br />

INIT_02 767 512<br />

… … …<br />

<strong>UltraScale</strong> <strong>Architecture</strong> <strong>Memory</strong> <strong>Resources</strong> www.xilinx.com<br />

Send Feedback<br />

39<br />

UG573 (v1.2) February 24, 2015

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!