For-Generate ループの展開
生成された HDL コードから FOR
-GENERATE
ループを展開して省略する
モデル コンフィギュレーション ペイン: グローバル設定 / コーディング スタイル
説明
FOR
-GENERATE
ループを展開し、生成された HDL コードから省略するかどうかを指定します。
設定
off
(既定値) | on
既定の設定: オフ
on
生成された HDL コードから
FOR
-GENERATE
ループを展開して省略します。off
生成された HDL コード内に
FOR
-GENERATE
ループを含めます。
ヒント
このプロパティを設定するには、関数 hdlset_param
または makehdl
を使用します。プロパティの値を表示するには、関数 hdlget_param
を使用します。
一部の Simulink® ブロックでは、HDL コードは既定で FOR-GENERATE
ループ構造を使用して生成されます。このような Simulink ブロックは以下のとおりです。
FOR-GENERATE
ループを使用して生成されたコードは読みやすくなり、コードの行数が削減され、コード生成時間が短縮されます。たとえば、2 次元行列を 1 次元行列に形状変更するために生成された VHDL® コードについて考えます。この例では、FOR-GENERATE
ループを使用する場合と使用しない場合の Reshape ブロック用に生成されたコードを示します。
FOR-GENERATE
ループを使用しない Reshape ブロック ([For-Generate ループの展開] が有効):
Reshape_output : PROCESS (In1_signed) BEGIN Reshape_out1(0) <= In1_signed(0, 0); Reshape_out1(1) <= In1_signed(1, 0); Reshape_out1(2) <= In1_signed(2, 0); Reshape_out1(3) <= In1_signed(3, 0); Reshape_out1(4) <= In1_signed(4, 0); Reshape_out1(5) <= In1_signed(5, 0); Reshape_out1(6) <= In1_signed(6, 0); Reshape_out1(7) <= In1_signed(7, 0); Reshape_out1(8) <= In1_signed(8, 0); Reshape_out1(9) <= In1_signed(9, 0); Reshape_out1(10) <= In1_signed(0, 1); ...
FOR-GENERATE
ループを使用する Reshape ブロック ([For-Generate ループの展開] が無効):
Reshape_out1GEN_LABEL1: FOR d1 IN 0 TO 1 GENERATE Reshape_out1GEN_LABEL: FOR d0 IN 0 TO 9 GENERATE Reshape_out1(d0 + (d1*10)) <= In1_signed(d0, d1); END GENERATE; END GENERATE;
GENERATE
ループをサポートしないコンピューターによる設計の自動化 (EDA) ツールを使用している場合、ループ展開オプションを選択して、生成される HDL コードからループを省略します。ループ展開オプションを設定しても、生成される HDL コードのシミュレーションや合成から取得される結果には影響しません。
推奨設定
推奨設定なし。
プログラムでの使用
パラメーター: LoopUnrolling |
型: 文字ベクトル |
値: 'on' | 'off' |
既定の設定: 'off' |
バージョン履歴
R2012a で導入