メモリ内容を初期化またはクリアするには、コンフィギュレーション ビットストリームで INIT_0000 ~ INIT_3FFF (1024) 属性を使用するか、INIT_FILE 属性で指定したファイルを読み出します。各 INIT_XXX は、16 進数で表した 72 桁のビット ベクトルです。一部の内容だけを初期化することも可能です。この場合、初期値を指定した部分以外は自動的に 0 になります。次の表に示すように、各 INIT_XXX 属性はビット位置 287:256 に 32 ビットのパリティ、およびビット位置 255:0 に 256 ビットのデータを含みます。デザインで初期化されない使用済み UltraRAM ブロックは、コンフィギュレーション中に自動的に 0 で初期化され、これらはビットストリームには含まれません。したがって、ビットストリームのサイズはユーザーが初期化した UltraRAM ブロックの数によって異なります。
表 1. UltraRAM の INIT 属性 (全体的なフォーマット)
属性 |
パリティ位置 |
データ位置 |
|
X72 - D[71:64] * 4 |
X72 - D[63:0] * 4 |
|
X36 - D[35:32] * 8 |
X72 - D[31:0] * 8 |
|
X18 - D[17:16] * 16 |
X72 - D[15:0] * 16 |
|
X9 - D[8] * 32 |
X72 - D[7:0] * 32 |
|
|
|
INIT_001 |
287:256 |
255:000 |
INIT_000 |
575:544 |
543:288 |
.............. |
|
|
INIT_3FF |
294911:294889 |
294879:294624 |
表 2. UltraRAM 初期化の詳細
INIT_000 |
x72 |
x36 |
x18 |
x9 |
パリティ [287:256] A[15:3] = 12'h003 A[15:3] = 12'h002 A[15:3] = 12'h001 A[15:3] = 12'h000
|
D[71:64] |
A[2] = 1、D[35:32] |
A[2:1] = 11、D[17:16] |
A[2:0] = 111、D[8] |
A[2:0] = 110、D[8] |
A[2:1] = 10、D[17:16] |
A[2:0] = 101、D[8] |
A[2:0] = 100、D[8] |
A[2] = 0、D[35:32] |
A[2:1] = 01、D[17:16] |
A[2:0] = 011、D[8] |
A[2:0] = 010、D[8] |
A[2:1] = 00、D[17:16] |
A[2:0] = 001、D[8] |
A[2:0] = 000、D[8] |
データ [255:000] A[15:3] = 12'h003 A[15:3] = 12'h002 A[15:3] = 12'h001 A[15:3] = 12'h000
|
D[63:0] |
A[2] = 1、D[31:0] |
A[2:1] = 11、D[15:0] |
A[2:0] = 111、D[7:0] |
A[2:0] = 110、D[7:0] |
A[2:1] = 10、D[15:0] |
A[2:0] = 101、D[7:0] |
A[2:0] = 100、D[7:0] |
A[2] = 0、D[31:0] |
A[2:1] = 01、D[15:0] |
A[2:0] = 011、D[7:0] |
A[2:0] = 010、D[7:0] |
A[2:1] = 00、D[15:0] |
A[2:0] = 001、D[7:0] |
A[2:0] = 000、D[7:0] |