Main Content

パイプライン パラメーター

このドキュメンテーション ページでは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成][最適化][パイプライン] タブにあるコンフィギュレーション パラメーターについて説明します。この節のパラメーターを使用することで、ターゲット デバイスでの設計のタイミングを改善できます。

DUT 出力端子のクロック レート パイプラインを許可

DUT 出力端子の場合、データ レートではなくクロック レートでパイプライン レジスタを挿入します。

設定

既定の設定: オフ

オン

DUT 出力端子に、クロック レートでパイプライン レジスタを挿入します。

オフ

DUT 出力端子に、データ レートでパイプライン レジスタを挿入します。

依存関係

このパラメーターを指定するときは、[クロック レート パイプライン] チェック ボックスを選択していることを確認します。

コマンド ライン情報

プロパティ: ClockRatePipelineOutputPorts
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に ClockRatePipelineOutputPorts 設定を使用できます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'ClockRatePipelineOutputPorts','on')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','ClockRatePipelineOutputPorts','on')
    makehdl('sfir_fixed/symmetric_fir')

参考

クロックレート パイプライン

設計にマルチサイクル パスが含まれている場合、クロックレート パイプラインを使用して、データ レートよりも速いクロック レートでパイプライン レジスタを挿入します。この最適化によってクロック周波数が改善され、追加のレイテンシを発生させることなく使用面積を削減します。クロックレート パイプラインは、ご使用のモデルに含まれる既存の設計遅延には影響を与えません。合成ツールのマルチサイクル パスの使用による制約への代替方法です。

設定

既定の設定: オン

オン

マルチサイクル パスにパイプライン レジスタをクロック レートで挿入します。

オフ

マルチサイクル パスにパイプライン レジスタをデータ レートで挿入します。

依存関係

1 より大きい [オーバーサンプリング係数] を指定する場合、[クロック レート パイプライン] チェック ボックスを選択していることを確認します。クロックレート パイプラインは、モデルの中で低速な同一のデータ レートで実行される領域を特定し、Delay ブロックまたはレート変換が発生するブロックによって区切られます。コード ジェネレーターは、これらの領域の入力に Repeat ブロックを、出力に Rate Transition ブロックを導入することで、その領域をより高速なクロック レートに変換します。

コマンド ライン情報

プロパティ: ClockRatePipelining
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に ClockRatePipelining 設定を使用できます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'ClockRatePipelining','on')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','ClockRatePipelining','on')
    makehdl('sfir_fixed/symmetric_fir')

参考

分散型パイプライン方式の優先順位

分散型パイプライン方式のアルゴリズムの優先順位を指定します。

設定

既定の設定: 数値の整合性

数値の整合性

パイプライン レジスタの分散時に数値の整合性を優先します。

このオプションを指定すると、保守的なリタイミング アルゴリズムが使用されるため、元の設計との機能的等価性が不明な場合に、コンポーネント内でレジスタを移動させることがありません。

パフォーマンス

数値の整合性よりも、パフォーマンスを優先します。

設計で高いクロック周波数が必要とされており、Simulink の動作と生成されたコードの動作が厳密に一致していなくても良い場合は、このオプションを使用してください。このオプションを指定すると、アグレッシブなリタイミング アルゴリズムが使用されるため、元の設計との機能的等価性が不明な場合でも、コンポーネント内でレジスタを移動させられます。

コマンド ライン情報

プロパティ: DistributedPipeliningPriority
型: 文字ベクトル
値: 'NumericalIntegrity' | 'Performance'
既定の設定: 'NumericalIntegrity'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に DistributedPipeliningPriority 設定を使用できます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'DistributedPipeliningPriority','Performance')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','DistributedPipeliningPriority','Performance')
    makehdl('sfir_fixed/symmetric_fir')

参考

階層分散型パイプライン方式

階層分散型パイプライン方式は、サブシステムの階層全体に遅延を分散することで、分散型パイプライン方式のスコープを拡大します。この最適化によって、階層を維持しながら Subsystem 内で遅延を移動します。

設定

既定の設定: オフ

オン

サブシステムの階層全体でリタイミングを有効にします。HDL Coder™ は、最上位の Subsystem から階層的にリタイミングを適用します。Subsystem 内で遅延を移動するには、Subsystem の [HDL ブロック プロパティ] で [DistributedPipelining][on] に設定します。階層分散型パイプライン方式は、[DistributedPipelining][off] に設定された Subsystem に到達すると遅延の分散を停止します。

オフ

Subsystem[DistributedPipelining][on] に設定している場合は、Subsystem 内でパイプラインを分散します。

依存関係

[設計上の遅延を保持] チェック ボックスを選択する場合、分散型パイプライン方式は設計上の遅延を移動しません。

コマンド ライン情報

プロパティ: HierarchicalDistPipelining
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に HierarchicalDistPipelining 設定を有効にできます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'HierarchicalDistPipelining','on')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','HierarchicalDistPipelining','on')
    makehdl('sfir_fixed/symmetric_fir')

参考

設計上の遅延を保持

設定

既定の設定: オフ

オン

分散型パイプライン方式によって設計上の遅延が移動するのを防ぎます。

オフ

分散型パイプライン方式によって設計上の遅延が移動するのを防ぎません。

コマンド ライン情報

プロパティ: PreserveDesignDelays
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に PreserveDesignDelays 設定を使用できます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'PreserveDesignDelays','on')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','PreserveDesignDelays','on')
    makehdl('sfir_fixed/symmetric_fir')

参考

分散型パイプラインに合成推定値を使用

各コンポーネントのより正確な伝播遅延を特定するには、分散型パイプライン方式で合成タイミング推定を使用します。コンポーネントに応じて異なる重みが割り当てられ、ハードウェアに対するコンポーネントの機能がより正確に反映されます。このパラメーターを有効にすると、HDL Coder による HDL コードの生成とハードウェアへの展開で、設計における分散型パイプラインの精度が向上し、ターゲット デバイスのクロック周波数が最大化されます。

設定

既定の設定: オフ

オン

分散型パイプライン方式で、設計に含まれる各コンポーネントの伝播遅延の計算に合成タイミング推定を使用します。

オフ

分散型パイプライン方式で、設計に含まれる各コンポーネントの伝播遅延の計算に等しい重みを使用します。

依存関係

このパラメーターを使用するには、モデル内の少なくとも 1 つのサブシステムで分散型パイプライン方式が有効になっている必要があります。

コマンド ライン情報

プロパティ: UseSynthesisEstimatesForDistributedPipelining
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に UseSynthesisEstimatesForDistributedPipelining 設定を有効にできます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'UseSynthesisEstimatesForDistributedPipelining','on')
  • hdlset_param を使用する場合は、モデルのパラメーターを設定してから関数 makehdl を使用して HDL コードを生成する。

    hdlset_param('sfir_fixed','UseSynthesisEstimatesForDistributedPipelining','on')
    makehdl('sfir_fixed/symmetric_fir')

参考

適応パイプライン

このパラメーターを使用して、設計内のブロックにパイプライン レジスタを挿入したり、使用面積を削減したり、ターゲット FPGA デバイスで達成可能なクロック周波数を最大化します。

設定

既定の設定: オフ

オン

設計に適応パイプライン レジスタを挿入します。HDL Coder で適応パイプラインを挿入するには、合成ツールを指定しなければなりません。

オフ

適応パイプライン レジスタを挿入しません。

依存関係

このパラメーターを指定するときは、[HDL コード生成][ターゲット] ペインで [合成ツール] を指定します。設計に乗算器がある場合は、適応パイプラインの挿入に [合成ツール][ターゲット周波数 (MHz)] を指定する。

コマンド ライン情報

プロパティ: AdaptivePipelining
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に AdaptivePipelining 設定を使用できます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
                        'AdaptivePipelining','on')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','AdaptivePipelining','on')
    makehdl('sfir_fixed/symmetric_fir')

参考

ルックアップ テーブルを RAM にマッピングする

このパラメーターを使用して、設計内のルックアップ テーブルをブロック RAM にマッピングし、ターゲット FPGA デバイスにおける使用面積を削減します。

設定

既定の設定: オン

オン

設計内のルックアップ テーブルを RAM にマッピングします。

オフ

設計内のルックアップ テーブルを RAM にマッピングしません。

コマンド ライン情報

プロパティ: LUTMapToRAM
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

このプロパティを設定するには、関数 hdlset_param または makehdl を使用します。プロパティの値を表示するには、関数 hdlget_param を使用します。

たとえば、次のいずれかの方法を使用して sfir_fixed モデル内の symmetric_fir サブシステムの HDL コードを生成する際に LUTMapToRAM 設定を使用できます。

  • プロパティを引数として関数 makehdl に渡す。

    makehdl('sfir_fixed/symmetric_fir', ... 
            'LUTMapToRAM','on')
  • hdlset_param を使用すると、モデルにパラメーターを設定してから、makehdl を使用して HDL コードを生成できる。

    hdlset_param('sfir_fixed','LUTMapToRAM','on')
    makehdl('sfir_fixed/symmetric_fir')