Main Content

加算器と乗算器のリソース共有のパラメーター

このページでは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成][最適化][リソース共有] タブにあるコンフィギュレーション パラメーターについて説明します。設計内で加算器と乗算器を共有するかどうか、および最小共有帯域幅を指定することでターゲット デバイスのリソースを節約するには、これらのパラメーターを有効にします。

加算器の共有

リソース共有の最適化によって加算器を共有するには、このパラメーターを有効にします。リソース共有は、2 つの入力をもつ Add ブロックまたは Sum ブロックを設計内で識別し、それらを単一の Add ブロックまたは Sum ブロックで置き換えます。この最適化によってターゲット FPGA デバイスの面積が節約されます。

設定

既定の設定: オフ

オン

リソース共有が有効になっている場合は、この最適化では [加算器共有の最小ビット幅] 以上のビット幅をもつ加算器を共有します。

オフ

加算器を共有しません。

依存関係

  • 設計内で加算器を共有するには、DUT サブシステムの [HDL ブロック プロパティ] で [SharingFactor] を指定します。

  • [加算器共有の最小ビット幅] を指定すると、コード ジェネレーターは最小ビット幅以上のビット幅をもつ加算器を共有します。加算器を共有するための既定の最小ビット幅はゼロです。

コマンド ライン情報

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

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

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

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

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

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

参考

加算器共有の最小ビット幅

このパラメーターを使用して、リソース共有の最適化によって加算器を共有するのに必要な最小ビット幅を指定します。

設定

既定の設定: 0

0, 1

共有加算器の最小ビット幅なし。

N。N は 1 より大きい整数。

リソース共有および加算器の共有が有効になっている場合は、N 以上のビット幅をもつ加算器を共有します。

依存関係

設計内で加算器を共有するには、次を行います。

  • [リソース共有] タブで、[加算器] 設定を有効にする。

  • DUT サブシステムの [HDL ブロック プロパティ] で [SharingFactor] を指定する。

コマンド ライン情報

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

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

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

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

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

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

参考

乗算器の共有

リソース共有の最適化によって乗算器を共有するには、このパラメーターを有効にします。リソース共有は、2 つの入力をもつ Product ブロックまたは Gain ブロックを設計内で識別し、それらを単一の Product ブロックまたは Gain ブロックで置き換えます。この最適化によってターゲット FPGA デバイスの面積が節約されます。リソース共有の最適化によって乗算器を共有します。

設定

既定の設定: オン

オン

リソース共有が有効になっている場合は、[乗算器共有の最小ビット幅] 以上のビット幅をもつ乗算器を共有します。乗算器を共有するためには、入力固定小数点データ型の語長が同じでなければなりません。固定小数点データ型の小数部の長さと符号は同じでなくてもかまいません。

オフ

乗算器を共有しません。

依存関係

  • 設計内で乗算器を共有するには、DUT サブシステムの [HDL ブロック プロパティ] で [SharingFactor] を指定する。

  • [乗算器共有の最小ビット幅] を指定すると、コード ジェネレーターは、最小ビット幅以上のビット幅をもつ乗算器を共有する。乗算器を共有するための既定の最小ビット幅はゼロ。

コマンド ライン情報

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

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

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

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

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

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

参考

乗算器共有の最小ビット幅

このパラメーターを使用して、リソース共有の最適化によって乗算器を共有するのに必要な最小ビット幅を指定します。

設定

既定の設定: 0

0, 1

共有乗算器の最小ビット幅なし。

N。N は 1 より大きい整数。

リソース共有および乗算器の共有が有効になっている場合は、N 以上のビット幅をもつ乗算器を共有します。

依存関係

設計内で乗算器を共有するには、次を行います。

  • [リソース共有] タブで、[乗算器] チェック ボックスが選択されていることを確認する。

  • DUT サブシステムの [HDL ブロック プロパティ] で [SharingFactor] を指定する。

コマンド ライン情報

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

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

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

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

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

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

参考

乗算器拡張のしきい値

リソース共有の最適化を使用して小さい乗算器を他のより大きい乗算器と共有するには、乗算器拡張のしきい値を指定します。このしきい値に最大語長を指定することで、HDL Coder™ では 1 つの乗算器と他の乗算器との共有が拡張されます。たとえば、入力語長の合計が 28 ビットの乗算器があり、その乗算器を入力語長の合計が 34 ビットの別の乗算器と共有する場合は、それぞれの合計ビットを減算し、乗算器拡張のしきい値を少なくともその差と同じ大きさに設定します。この例では差は 6 ビットです。

設定

既定の設定: 0

0

乗算器の語長に差はありません。つまり、HDL Coder は同じ語長の乗算器を共有します。

N。N は 0 より大きい整数。

HDL Coder が他の乗算器と共有するために乗算器を拡張する最大語長。語長の差が N 以下である場合、HDL Coder は語長の異なる乗算器を拡張して共有します。

N を決定するには次のようにします。

  • 共有する乗算器の入力語長の合計を計算します。

  • 少なくともそれぞれの乗算器の入力語長の合計の差と同じ大きさに N を設定します。

依存関係

設計内で乗算器を共有するには、次を行います。

  • [リソース共有] タブで、[乗算器] チェック ボックスが選択されていることを確認する。

  • DUT サブシステムの [HDL ブロック プロパティ] で [SharingFactor] を指定する。

コマンド ライン情報

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

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

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

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

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

    hdlset_param('sfir_fixed','MultiplierPromotionThreshold',8)
    makehdl('sfir_fixed/symmetric_fir')

参考

Multiply-Add ブロックの共有

リソース共有の最適化によって Multiply-Add ブロックを共有します。

設定

既定の設定: オン

オン

リソース共有が有効になっている場合は、[Multiply-Add ブロック共有の最小ビット幅] 以上のビット幅をもつ Multiply-Add ブロックを共有します。

オフ

Multiply-Add ブロックを共有しません。

依存関係

  • 設計に含まれる Multiply-Add ブロックを共有するには、DUT サブシステムの [HDL ブロック プロパティ] で、[SharingFactor] を指定します。

  • [Multiply-Add ブロック共有の最小ビット幅] を指定すると、コード ジェネレーターは、最小ビット幅以上のビット幅を持つ Multiply-Add ブロックを共有します。Multiply-Add ブロックを共有する既定の最小ビット幅はゼロです。

コマンド ライン情報

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

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

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

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

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

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

参考

Multiply-Add ブロック共有の最小ビット幅

このパラメーターを使用して、リソース共有の最適化によって Multiply-Add を共有するのに必要な最小ビット幅を指定します。

設定

既定の設定: 0

0, 1

共有 Multiply-Add ブロックの最小ビット幅なし。

N。N は 1 より大きい整数。

リソース共有および Multiply-Add ブロックの共有が有効になっている場合は、N 以上のビット幅をもつ Multiply-Add ブロックを共有します。

依存関係

設計に含まれる Multiply-Add ブロックを共有するには、以下を行います。

  • [リソース共有] タブで、[Multiply-Add ブロック] チェック ボックスが選択されていることを確認します。

  • DUT サブシステムの [HDL ブロック プロパティ] で [SharingFactor] を指定する。

コマンド ライン情報

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

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

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

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

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

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

参考