fi Object Properties

Data Properties

The data properties of a fi object are always writable.

  • bin — Stored integer value of a fi object in binary

  • data — Numerical real-world value of a fi object

  • dec — Stored integer value of a fi object in decimal

  • double — Real-world value of a fi object, stored as a MATLAB® double data type

  • hex — Stored integer value of a fi object in hexadecimal

  • int — Stored integer value of a fi object, stored in a built-in MATLAB integer data type

  • oct — Stored integer value of a fi object in octal

To learn more about these properties, see fi Object Properties in the Fixed-Point Designer™ Reference.

fimath Properties

In general, the fimath properties associated with fi objects depend on how you create the fi object:

  • When you specify one or more fimath object properties in the fi constructor, the resulting fi object has a local fimath object.

  • When you do not specify any fimath object properties in the fi constructor, the resulting fi object has no local fimath.

To determine whether a fi object has a local fimath object, use the isfimathlocal function.

The fimath properties associated with fi objects determine how fixed-point arithmetic is performed. These fimath properties can come from a local fimath object or from default fimath property values. To learn more about fimath objects in fixed-point arithmetic, see fimath Rules for Fixed-Point Arithmetic.

The following fimath properties are, by transitivity, also properties of the fi object. You can set these properties for individual fi objects. The following fimath properties are always writable.

  • CastBeforeSum — Whether both operands are cast to the sum data type before addition

    Note

    This property is hidden when the SumMode is set to FullPrecision.

  • MaxProductWordLength — Maximum allowable word length for the product data type

  • MaxSumWordLength — Maximum allowable word length for the sum data type

  • OverflowAction — Action to take on overflow

  • ProductBias — Bias of the product data type

  • ProductFixedExponent — Fixed exponent of the product data type

  • ProductFractionLength — Fraction length, in bits, of the product data type

  • ProductMode — Defines how the product data type is determined

  • ProductSlope — Slope of the product data type

  • ProductSlopeAdjustmentFactor — Slope adjustment factor of the product data type

  • ProductWordLength — Word length, in bits, of the product data type

  • RoundingMethod — Rounding method

  • SumBias — Bias of the sum data type

  • SumFixedExponent — Fixed exponent of the sum data type

  • SumFractionLength — Fraction length, in bits, of the sum data type

  • SumMode — Defines how the sum data type is determined

  • SumSlope — Slope of the sum data type

  • SumSlopeAdjustmentFactor — Slope adjustment factor of the sum data type

  • SumWordLength — The word length, in bits, of the sum data type

For more information, see fimath Object Properties.

numerictype Properties

When you create a fi object, a numerictype object is also automatically created as a property of the fi object:

numerictype — Object containing all the data type information of a fi object, Simulink® signal, or model parameter

The following numerictype properties are, by transitivity, also properties of a fi object. The following properties of the numerictype object become read only after you create the fi object. However, you can create a copy of a fi object with new values specified for the numerictype properties:

  • Bias — Bias of a fi object

  • DataType — Data type category associated with a fi object

  • DataTypeMode — Data type and scaling mode of a fi object

  • FixedExponent — Fixed-point exponent associated with a fi object

  • FractionLength — Fraction length of the stored integer value of a fi object in bits

  • Scaling — Fixed-point scaling mode of a fi object

  • Signed — Whether a fi object is signed or unsigned

  • Signedness — Whether a fi object is signed or unsigned

    Note

    numerictype objects can have a Signedness of Auto, but all fi objects must be Signed or Unsigned. If a numerictype object with Auto Signedness is used to create a fi object, the Signedness property of the fi object automatically defaults to Signed.

  • Slope — Slope associated with a fi object

  • SlopeAdjustmentFactor — Slope adjustment associated with a fi object

  • WordLength — Word length of the stored integer value of a fi object in bits

For more information, see numerictype Object Properties.

There are two ways to specify properties for fi objects in Fixed-Point Designer software. Refer to the following sections:

Setting fi Object Properties

You can set fi object properties in two ways:

  • Setting the properties when you create the object

  • Using direct property referencing

Setting Fixed-Point Properties at Object Creation

You can set properties of fi objects at the time of object creation by including properties after the arguments of the fi constructor function. For example, to set the overflow action to Wrap and the rounding method to Convergent,

a = fi(pi,'OverflowAction','Wrap','RoundingMethod','Convergent')
a = 

    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

        RoundingMethod: Convergent
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision

To set the stored integer value of a fi object, use the parameter/value pair for the 'int' property when you create the object. For example, create a signed fi object with a stored integer value of 4, 16-bit word length, and 15-bit fraction length.

x = fi(0,1,16,15,'int',4);

Verify that the fi object has the expected integer setting.

x.int
ans =

  int16

   4

Using Direct Property Referencing with fi

You can reference directly into a property for setting or retrieving fi object property values using MATLAB structure-like referencing. You do so by using a period to index into a property by name.

For example, to get the WordLength of a,

a.WordLength
ans =

    16

To set the OverflowAction of a,

a.OverflowAction = 'Wrap'
a = 

    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

        RoundingMethod: Convergent
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision

If you have a fi object b with a local fimath object, you can remove the local fimath object and force b to use default fimath values:

b = fi(pi,1,'RoundingMethod','Floor')
b =
    3.1415

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

        RoundingMethod: Floor
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision
b.fimath = []
b =
    3.1415

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13
isfimathlocal(b)
ans =

  logical

   0