Main Content

遅延の均衡化と最適化のパラメーター

このページでは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成][ターゲット][一般] タブにあるコンフィギュレーション パラメーターについて説明します。このセクションのパラメーターを使用すると、遅延の均衡化を使用して最適化により生じる遅延と一致させることができ、しきい値に基づいて乗算器を分割できます。

遅延の均衡化

パイプラインやリソース共有といった特定の最適化を有効にするか、特定のブロック実装を指定してコードを生成するときに、HDL Coder™ はモデル内の特定の信号パスでパイプライン遅延を引き起こします。既定では、[遅延の均衡化] 設定が有効になっています。コード ジェネレーターは、あるパスで発生したこれらのパイプライン遅延を検出すると、それに一致する遅延を他のパスに挿入します。

HDL コード生成後に生成されたモデルの機能が元の Simulink® モデルと同等であるようにするには、この設定を有効のままにします。この設定を無効にした場合、HDL Coder は検証モデルで数値の不一致が発生する可能性を示す警告を生成します。この警告を修正するには、モデルで [遅延の均衡化] を有効にするか、遅延の均衡化の設定をチェックのモデルのチェックを実行します。

設定

既定の設定: オン

オン

モデルで遅延の均衡化を有効にします。あるパスに新しい遅延が導入されたことが HDL Coder で検出された場合、それに一致する遅延が他のパスに挿入されます。[遅延の均衡化] が有効な場合、生成されるモデルは機能的に元のモデルと同等になります。

オフ

信号パスに対するレイテンシは調整されず、生成されたモデルは機能的に元のモデルとは同等にはなりません。

コマンド ライン情報

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

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

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

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

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

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

参考

非ゼロ初期値の遅延の変換

設定

既定の設定: オン

オン

Simulink モデルの [初期条件] が非ゼロの Delay ブロックを、生成されたコードの [初期条件] がゼロで追加のロジックをもつ Delay ブロックに変換します。

この変換を使用して、HDL Coder は共有、分散型パイプライン、クロックレート パイプラインなどの最適化をより効率的に実行し、アサーションが検証モデルでトリガーされるのを防ぐことができます。

オフ

Simulink モデルの [初期条件] が非ゼロの Delay ブロックを変換しません。

コマンド ライン情報

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

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

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

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

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

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

参考

makehdl

乗算器分割のしきい値

設定

既定の設定: Inf

N。N は 2 以上の整数。

N が乗算器の最大入力ビット幅になるように乗算器を分割します。

このパラメーターは、乗算器の最大入力ビット幅を指定します。乗算器に対する入力のうちの少なくとも 1 つのビット幅がしきい値より大きい場合、コード ジェネレーターは乗算器をより小さい乗算器に分割します。

ハードウェアのマッピングの結果を改善するために、乗算器分割のしきい値を DSP またはターゲット デバイス上の乗算器ハードウェアの入力ビット幅に設定します。

Inf

乗算器を分割しません。

コマンド ライン情報

プロパティ: MultiplierPartitioningThreshold
タイプ: 整数
値: 0 以上の整数
既定の設定: Inf

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

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

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

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

    hdlset_param('sfir_fixed', 'MultiplierPartitioningThreshold','16')
    makehdl('sfir_fixed/symmetric_fir')

参考

未使用の端子を削除

設定

既定の設定: オン

オン

生成された HDL コードから設計内にある未使用の端子を削除します。この最適化により、最上位の DUT サブシステムにある未使用の端子は保持されます。その他すべての未使用の端子は、HDL コードから削除されます。

オフ

HDL コードから未使用の端子を削除しません。

コマンド ライン情報

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

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

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

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

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

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

参考