主要内容

fimath

设置定点数学设置

说明

fimath 对象允许您设置确定对 fi 对象进行定点算术运算的规则的属性。

创建对象

描述

F = fimath 使用默认 fimath 属性设置创建一个 fimath 对象。

示例

F = fimath(a) 创建一个 fimath 对象,该对象具有 fi 对象 a 的定点数学属性。

示例

F = fimath(PropertyName = Value) 通过使用一个或多个名称-值对组参量来指定 fimath 对象的属性。所有未在构造函数中指定的属性都使用默认值。

示例

属性

全部展开

fimath 属性确定对 fi 对象执行定点算术运算的规则。根据传递性,fimath 属性也是 fi 对象的属性。您可以为单个 fi 对象设置这些属性。fimath 对象属性始终可写。

加和数据类型属性

在加法运算之前是否将两个操作数都转换为加和数据类型,指定为 logical 值:

  • 1true - 在求和之前进行转换

  • 0false - 不要在求和之前进行转换

此属性始终返回 logical 值。

注意

SumMode 设置为 FullPrecision 时,此属性隐藏。

数据类型: logical | single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加和数据类型允许的最大字长,指定为正整数。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加和数据类型的偏置,指定为浮点数。

示例: F = fimath('SumBias',0)

数据类型: single | double | half

加和数据类型的固定指数,指定为整数。

注意

SumFixedExponentSumFractionLength 的负数。更改一个属性会更改另一个属性。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加和数据类型的小数长度(以位为单位),指定为整数。

注意

SumFractionLengthSumFixedExponent 的负数。更改一个属性会更改另一个属性。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

如何确定加和数据类型,指定为以下项之一:

  • FullPrecision - 保留结果的全精度。

  • KeepLSB - 保留最低有效位。指定加和数据类型的字长,同时将小数长度设置为保持总和的最低有效位。

  • KeepMSB - 保留最高有效位。指定加和数据类型字长,同时将小数长度设置为保持总和的最高有效位并且不超出必要的小数位。

  • SpecifyPrecision - 指定加和数据类型的字长和小数长度或斜率和偏置。

数据类型: char

加和数据类型的斜率,指定为浮点数。

注意

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

更改其中一个属性会影响其他属性。

数据类型: single | double | half

加和数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。

注意

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

更改其中一个属性会影响其他属性。

数据类型: single | double | half

加和数据类型的字长(以位为单位),指定为正整数。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乘积数据类型属性

乘积数据类型允许的最大字长,指定为正整数。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乘积数据类型的偏置,指定为浮点数。

数据类型: single | double | half

乘积数据类型的固定指数,指定为整数。

注意

ProductFixedExponentProductFractionLength 的负数。更改一个属性会更改另一个属性。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乘积数据类型的小数长度(以位为单位),指定为整数。

注意

ProductFractionLengthProductFixedExponent 的负数。更改一个属性会更改另一个属性。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

如何确定乘积数据类型,指定为以下值之一:

  • FullPrecision - 保留结果的全精度。

  • KeepLSB - 保留最低有效位。指定乘积字长,而小数长度设置为保持乘积的最低有效位。

  • KeepMSB - 保留最高有效位。指定乘积字长,而小数长度设置为保持乘积的最高有效位。

  • SpecifyPrecision - 指定乘积的字长和小数长度或乘积的斜率和偏置。

数据类型: char

乘积数据类型的斜率,指定为浮点数。

注意

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

更改其中一个属性会影响其他属性。

数据类型: single | double | half

乘积数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。

注意

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

更改其中一个属性会影响其他属性。

数据类型: single | double | half

乘积数据类型的字长(以位为单位),指定为正整数。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

舍入和溢出属性

对溢出采取的操作,指定为以下值之一:

  • Saturate - 溢出时饱和处理为定点范围的最大或最小值。

  • Wrap - 溢出时绕回。

数据类型: char

要使用的舍入方法,指定为以下项之一:

  • Nearest - 向最邻近值方向舍入。结值向正无穷方向舍入。

  • Ceiling - 向正无穷方向舍入。

  • Convergent - 向最邻近值方向舍入。结值舍入到最接近的偶数存储整数(偏置最小)。

  • Zero - 向零方向舍入。

  • Floor - 向负无穷方向舍入。

  • Round - 向最邻近值方向舍入。负结值向负无穷方向舍入,正结值向正无穷方向舍入。

数据类型: char

示例

全部折叠

此示例说明如何使用默认属性设置创建 fimath 对象。

F = fimath
F = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

使用名称-值对组在创建对象时设置 fimath 对象的属性。例如,将溢出操作设置为饱和,将舍入方法设置为收敛。

F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
F = 
        RoundingMethod: Convergent
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

此示例说明如何从现有 fi 对象创建 fimath 对象。

创建一个具有默认属性且未指定值的 fi 对象。

a = fi
a = 

[]

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

查询 afimath 属性。

a.fimath
ans = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

创建一个以 a 作为输入的 fimath 对象。

F = fimath(a)
F = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

F 具有与 a 相同的 fimath 属性。

扩展功能

全部展开

HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。

版本历史记录

在 R2006a 之前推出

全部展开