coder.hdl.pipeline
MATLAB 式の出力にパイプライン レジスタを挿入
説明
out = coder.hdl.pipeline(
は、生成された HDL コード内の expr
)expr
の出力に 1 つのパイプライン レジスタを挿入します。このプラグマは MATLAB® のシミュレーション動作には影響しません。
このプラグマは、パイプライン レジスタの挿入位置を正確に指定する場合に使用します。たとえば、MATLAB 代入ステートメントでは、次のようにして coder.hdl.pipeline プラグマを指定できます。
代入ステートメントの右側全体。
部分式。
複数のプラグマを入れ子にする。
サブ関数の呼び出し。サブ関数が単一の値を返す場合に限ります。このプラグマは複数の値を返すサブ関数には指定できません。
分散型パイプラン方式を有効にした場合、HDL Coder™ でパイプライン レジスタを移動してクリティカル パスを中断できます。
式の変数のいずれかが次である場合は、HDL Coder では MATLAB 式の出力にパイプライン レジスタを挿入することはできません。
ループ内にある。
状態レジスタや RAM など、状態要素にマッピングする永続変数。
関数の出力。たとえば、次のコードでは、
y
が含まれる式にパイプライン レジスタを追加することはできません。function [y] = myfun(x) y = x + 5; end
データ フィードバック ループの内部に存在する。たとえば、次のコードでは、変数
t
またはpvar
が含まれる式をパイプライン化することはできません。persistent pvar; t = u + pvar; pvar = t + v;
coder.hdl.pipeline
を使用して、単一の変数またはその他の NOP 式にパイプライン レジスタを挿入することはできません。パイプライン レジスタを関数の入力変数に挿入する方法の詳細については、端子レジスタを参照してください。
out = coder.hdl.pipeline(
は、生成された HDL コード内の expr
,num
)expr
の出力に num
個のパイプライン レジスタを挿入します。このプラグマは MATLAB のシミュレーション動作には影響しません。
このプラグマは、パイプライン レジスタの挿入位置を正確に指定する場合に使用します。たとえば、MATLAB 代入ステートメントでは、次のようにして coder.hdl.pipeline プラグマを指定できます。
代入ステートメントの右側全体。
部分式。
複数のプラグマを入れ子にする。
サブ関数の呼び出し。サブ関数が単一の値を返す場合に限ります。このプラグマは複数の値を返すサブ関数には指定できません。
分散型パイプラン方式を有効にした場合、HDL Coder でパイプライン レジスタを移動してクリティカル パスを中断できます。
式の変数のいずれかが次である場合は、HDL Coder では MATLAB 式の出力にパイプライン レジスタを挿入することはできません。
ループ内にある。
状態レジスタや RAM など、状態要素にマッピングする永続変数。
関数の出力。たとえば、次のコードでは、
y
が含まれる式にパイプライン レジスタを追加することはできません。function [y] = myfun(x) y = x + 5; end
データ フィードバック ループの内部に存在する。たとえば、次のコードでは、変数
t
またはpvar
が含まれる式をパイプライン化することはできません。persistent pvar; t = u + pvar; pvar = t + v;
coder.hdl.pipeline
を使用して、単一の変数またはその他の NOP 式にパイプライン レジスタを挿入することはできません。パイプライン レジスタを関数の入力変数に挿入する方法の詳細については、端子レジスタを参照してください。