AMD では、ブロック RAM でバイト ライト イネーブルをサポートしています。ブロック RAM のバイト ライト イネーブルは、次の目的で使用します。
- RAM へのデータ書き込みを高度に制御
- アドレス指定されたメモリの書き込み可能な 8 ビット部分を個別に指定
HDL モデリングと推論の視点から考えると、この概念は列ベースの書き込みとして記述するのが最適です。
- RAM は、同じサイズの列の集合と考えます。
- 書き込みサイクル中は、これらの各列への書き込みを個別に制御します。
Vivado 合成の推論では、ブロック RAM のバイト ライト イネーブル機能を活用できます。記述された RAM は、次の条件を満たしていれば、バイト ライト イネーブル機能を使用してブロック RAM リソースにインプリメントされます。
- 書き込み列幅が同じ
- 設定可能な書き込み列幅: 8 ビット、9 ビット、16 ビット、18 ビット (8 ビットまたは 9 ビットの倍数)
5 ビットや 12 ビットなどの上記以外の書き込み列幅 (8 ビットまたは 9 ビットの倍数以外) を設定すると、Vivado 合成では各列に個別の RAM が使用されます。
- 書き込み列数: 任意
- サポートされる読み出し/書き込み同期モード: Read-First、Write-First、No-Change