DSP Builder for Intel® FPGAs (Advanced Blockset): Handbook

ID 683337
Date 6/26/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

15.4.51. Scalar Product

The Scalar Product block accepts two vector inputs of the same dimension and produces the inner product on the output. If one or more inputs are complex, the output is complex. If one of the inputs is a scalar signal, the same factor scales all vector components of the other input port. DSP Builder does not take the complex conjugate of one of the numbers if both inputs are complex numbers.
Note: For single-precision inputs and designs targeting devices with floating-point DSP blocks, the block uses a mixture of resources including the device DSP blocks in floating-point mode.
Table 240.  Parameters for the Scalar Product Block
Parameter Description
Output data type mode Determines how the block sets its output data type:
  • Inherit via internal rule. For an n input scalar product, where one input has ia integer bits and fa fraction bits and the other input has ib integer bits and fb fraction bits, the output has ia + ib + ceil(log2(n)) integer bits and fa+ fb fraction bits.
  • Specify via dialog. You can set the output type of the block explicitly using additional fields that are available when this option is selected.This option reinterprets the output bit pattern from the LSB up according to the specified type.
  • Inherit via internal rule with word growth. This option has identical bit growth as Inherit via internal rule but generates incorrect RTL when both inputs are complex. Consequently this option is deprecated.
  • Boolean. The output type is Boolean.
  • Variable precision floating point. Variable precision floating-point output type.
Output data type Specifies the output data type. For example, fixdt(1, 16, 15). Only available for Specify via dialog
Output scaling value Specifies the output scaling value. For example, 2^-15. Only available for Specify via dialog
Floating-point precision Specifies a predefined floating-point type. Only available for Variable precision floating point:
Fused datapath This option affects the floating-point architectures. Turn on this option to save hardware by omitting normalization stages between adder stages. The output deviates from that expected of IEEE compliance.
Floating Point Rounding Specifies what rounding to apply to the result:
  • Correct. IEEE compliant unbiased round to nearest output value.
  • Faithful. Saves hardware by sometimes rounding to the second nearest value. Error is about double that of correct rounding.
Table 241.  Port Interface for the Scalar Product Block
Signal Direction Type Description Vector Data Support Complex Data Support
a Input Any fixed- or floating-point type Operand 1 Yes Yes
b Input Any fixed- or floating-point type Operand 2 Yes Yes
q Output Derived fixed- or floating-point type Result No Yes