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 で導入