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

ID 683337
Date 5/01/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.56. Subtract (Sub)

The Sub block outputs the difference between the inputs:

q = a – b.

Note: For single-precision inputs and designs targeting any device with a floating-point DSP block, the block uses a mixture of resources including the DSP blocks in floating-point mode.
Table 251.  Parameters for the Sub Block
Parameter Description
Output data type mode Determines how the block sets its output data type:
  • Inherit via internal rule: the number of integer and fractional bits is the maximum of the number of bits in the input data types.
  • Inherit via internal rule with word growth: the number of fractional bits is the maximum of the number of fractional bits in the input data types. The number of integer bits is the maximum of the number of integer bits in the input data types plus one. This additional word growth allows for subtracting the most negative number from 0, which exceeds the maximum positive number that you can store in the number of bits of the input.
  • 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.
  • Boolean: the output type is Boolean.
Output data type Specifies the output data type. For example, sfix(16), uint(8).
Rounding mode 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.
Output scaling value Specifies the output scaling value. For example, 2^-15.
Table 252.  Port Interface for the Sub 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 Yes Yes