Main Content

ルックアップ テーブルから FPGA ブロック RAM を生成する

Lookup Table ブロックをランダムアクセス メモリ (RAM) にマッピングしてターゲット Field Programmable Gate Array (FPGA) デバイスの面積を節約するには、以下のガイドラインに従ってください。

各ガイドラインに準拠要件のレベルを示す重大度レベルが割り当てられています。詳細については、HDL モデリング ガイドラインの重大度レベルを参照してください。

ガイドライン ID

2.3.1

重大度

強く推奨

説明

ルックアップ テーブルをブロック RAM にマッピングするには、[モデル コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成] タブ、[最適化][パイプライン] タブにある [ルックアップ テーブルを RAM にマッピングする] パラメーターを使用します。このパラメーターは既定でオンになっています。最適化により、[遅延の長さ]1[ResetType]none に設定された Delay ブロックが Lookup Table ブロックの直後に挿入されます。このモデル化パターンは設計を FPGA のブロック RAM に効率的にマッピングします。[ルックアップ テーブルを RAM にマッピングする] オプションを使用するには、次を行う必要があります。

  • Map lookup tables to RAMオプションがモデルでオンになっていることを確認する。

  • 合成ツールを指定する。

あるいは、MapToRAM HDL ブロック プロパティを使用してモデルで [ルックアップ テーブルを RAM にマッピングする] オプションを無効にすることで、この最適化を設計内の特定のサブシステムに対して選択的に有効にすることも、最適化で生成されるパターンと同じモデル化パターンを設計内で作成することもできます。

たとえば、モデル hdlcoder_LUT_BRAM_mapping.slx を開きます。

open_system('hdlcoder_LUT_BRAM_mapping')
set_param('hdlcoder_LUT_BRAM_mapping','SimulationCommand','Update')

[ルックアップ テーブルを RAM にマッピングする] オプションはこのモデルで有効になっています。

hdlget_param('hdlcoder_LUT_BRAM_mapping','LUTMapToRAM')
ans =

    'on'

LUT_BRAM サブシステムには 1-D Lookup Table ブロックが含まれ、その後に [遅延の長さ]1[ResetType]none に設定された Delay ブロックが続きます。

open_system('hdlcoder_LUT_BRAM_mapping/LUT_BRAM')

HDL コードを生成し、FPGA で設計を合成すると、このモデル化パターンによって効率的にブロック RAM にマッピングされます。次の図は LUT_BRAM サブシステムの合成結果を示します。

このモデルの LUT サブシステムはこのモデル化パターンを使用しません。

open_system('hdlcoder_LUT_BRAM_mapping/LUT')

[ルックアップ テーブルを RAM にマッピングする] オプションがこのモデルで有効になっているため、このサブシステムはロジックをブロック RAM にマッピングします。MATLAB® コマンド ウィンドウ内でリンクされている MATLAB スクリプトをクリックして、モデル内で RAM にマッピングされているルックアップ テーブルを強調表示します。

ルックアップ テーブルをブロック RAM にマッピングするために、LUT サブシステムに対して生成されたモデルにより、[遅延の長さ]1[ResetType]none に設定された Delay ブロックが Lookup Table ブロックの直後に挿入されます。

参考

関数

プロパティ

モデル設定

関連するトピック