There are two ways of sharing fimath
properties in Fixed-Point Designer™ software:
Sharing fimath
properties across fi
objects
ensures that the fi
objects are using the same arithmetic rules and
helps you avoid “mismatched fimath
” errors.
You can ensure that your fi
objects are all using the same
fimath
properties by not specifying any local fimath. To
assure no local fimath
is associated with a fi
object, you can:
Create a fi
object using the fi
constructor without specifying any fimath
properties in
the constructor call. For example:
a = fi(pi)
Create a fi
object using the sfi
or
ufi
constructor. All fi
objects
created with these constructors have no local fimath.
b = sfi(pi)
Use removefimath
to remove
a local fimath
object from an existing
fi
object.
You can also use a fimath
object to define common arithmetic
rules that you would like to use for multiple fi
objects. You can
then create your fi
objects, using the same
fimath
object for each. To do so, you must also create a
numerictype
object to define a common data type and scaling.
Refer to numerictype Object Construction
for more information on numerictype
objects. The following
example shows the creation of a numerictype
object and
fimath
object, and then uses those objects to create two
fi
objects with the same numerictype
and
fimath
attributes:
T = numerictype('WordLength',32,'FractionLength',30)
T = DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 30
F = fimath('RoundingMethod','Floor',... 'OverflowAction','Wrap')
F = RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
a = fi(pi, T, F)
a = -0.8584 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 30 RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
b = fi(pi/2, T, F)
b = 1.5708 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 30 RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision