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

ID 683337
Date 12/12/2022

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

Document Table of Contents

15.4.17. Constant (Const)

The Const block outputs a specified constant value.


Table 176.  Parameters for the Const 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 back projection: a downstream block that this block drives determines the output data type. If the driven block does not propagate a data type to the driver, you must use a Simulink SameDT block to copy the required data type to the output wire.
  • 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.
  • Single: single-precision floating-point data.
  • Double: double-precision floating-point data.
  • Variable precision floating point: variable precision floating-point output type
Output data type Specifies the output data type. For example, sfix(16), uint(8).
Output scaling value Specifies the output scaling value. For example, 2^-15.
Value Specifies the constant value. This parameter may also be a fi object when specifying data of arbitrarily high precision.
Floating point precision Specifies the floating-point precision. For example, float32_m23.
Warn when value is saturated Turn off if the constant if you design the constant to be saturated.

The Constant block generates a warning in the Simulink Diagnostic Viewer if the bit-width is not sufficient to represent the value. For example:

Warning: Constant block 'constant_saturation_UUT/Const1' has saturated due to insufficient bit-width. SUGGESTION: Increase the bit-width or disable this warning in the block parameters.

Every Primitive library block accepts double-precision floating-point values when specifying mask parameters. This format limits precision to no more than 53 bits, which is more than sufficient for most of the blocks. For higher precision, the Const, DualMem, or LUT blocks optionally accept values using Simulink's Fixed Point data type. For example:

constValue = fi(0.142, 1, 16, 15)

vectorValue = fi(sin([0:10]'), 1, 18, 15)

To configure a Const, DualMem, or LUT with data of precision higher than IEEE double precision, create a MATLAB fi object of the required precision that contains the high precision data. Avoid truncation when creating this object. Use the fi object to specify the Value of the Const, the Initial Contents of the DualMem block, or the Output value map of the LUT block.

Table 177.  Port Interface for the Const Block
Signal Direction Type Description Vector Data Support Complex Data Support
q Output Any fixed- or floating-point type Constant value. Yes Yes