fimath

Установите математические настройки с фиксированной точкой

Описание

пример

F = fimath создает fimath объект со значением по умолчанию fimath настройки свойств.

пример

F = fimath(Name,Value) задает свойства fimath объект при помощи одного или нескольких аргументов пары "имя-значение". Все свойства, не заданные в конструкторе, используют значения по умолчанию.

Примеры

свернуть все

В этом примере показано, как создать 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

Входные параметры

свернуть все

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: F = fimath('OverflowAction','Saturate','RoundingMethod','Floor')

Приводят ли оба операнда к типу суммарных данных перед сложением, заданному в виде числа или логики 1 (true) или 0 (false).

Примечание

Это свойство скрыто, когда SumMode установлено в FullPrecision.

Пример: F = fimath('CastBeforeSum',true)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Максимально допустимый размер слова для типа данных продукта, заданная как положительное целое число.

Пример: F = fimath('MaxProductWordLength',16)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Максимально допустимый размер слова для типа суммарных данных в виде положительного целого числа.

Пример: F = fimath('MaxSumWordLength',16)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Действие, которое необходимо принять при переполнении, заданное как одно из следующих значений:

  • 'Saturate' - Насыщение до максимального или минимального значения области значений с фиксированной точкой при переполнении.

  • 'Wrap' - Перенос при переполнении. Этот режим также известен как переполнение дополнения двух.

Пример: F = fimath('OverflowAction','Wrap')

Типы данных: char

Смещение типа данных продукта, заданное как число с плавающей запятой.

Пример: F = fimath('ProductBias',1)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Фиксированная экспонента типа данных продукта, заданная как ненулевое целое число.

Примечание

The ProductFractionLength - отрицательное значение ProductFixedExponent. Изменение одного свойства изменяет другое.

Пример: F = fimath('ProductFixedExponent',-20)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Длина дроби, в битах, типа данных продукта, заданная как ненулевое целое число.

Примечание

The ProductFractionLength - отрицательное значение ProductFixedExponent. Изменение одного свойства изменяет другое.

Пример: F = fimath('ProductFractionLength',20)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Как определяется тип данных продукта, задается как одно из следующих значений:

  • 'FullPrecision' - Сохранена полная точность результата.

  • 'KeepLSB' - Сохраните наименьшие значащие биты. Задайте размер слова продукта. Длина дроби устанавливается таким образом, чтобы поддерживать наименьшие значимые биты продукта.

  • 'KeepMSB' - Сохраните самые значительные биты. Задайте размер слова продукта. Длина дроби устанавливается для поддержания наиболее значимых битов продукта.

  • 'SpecifyPrecision' - Указание длин слов и дробей, наклона и смещения продукта.

Пример: F = fimath('ProductMode','KeepLSB')

Типы данных: char

Наклон типа данных продукта, заданный как конечное, положительное число с плавающей запятой.

Примечание

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

Изменение одного из этих свойств влияет на другие.

Пример: F = fimath('ProductSlope',9.3132e-10)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Коэффициент корректировки наклона типа данных продукта, заданный как число с плавающей запятой, больше или равное 1 и меньше 2.

Примечание

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

Изменение одного из этих свойств влияет на другие.

Пример: F = fimath('ProductSlopeAdjustmentFactor',1)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер слова, в битах, для типа данных продукта, заданная как положительное целое число.

Пример: F = fimath('ProductWordLength',64)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Метод округления, заданный в качестве одного из следующих значений:

  • 'Nearest' - Округлить к ближайшему. Связи вокруг к положительной бесконечности.

  • 'Ceiling' - Округлить к положительной бесконечности.

  • 'Convergent' - Округлить к ближайшему. Привязки к ближайшему даже сохраненному целому числу (наименее смещенному).

  • 'Zero' - Округлить к нулю.

  • 'Floor' - Округлить к отрицательной бесконечности.

  • 'Round' - Округлить к ближайшему. Связи округлятся к отрицательной бесконечности для отрицательных чисел и к положительной бесконечности для положительных чисел.

Пример: F = fimath('RoundingMethod','Convergent')

Типы данных: char

Смещение типа суммарных данных, заданное как число с плавающей запятой.

Пример: F = fimath('SumBias',0)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Фиксированная экспонента типа данных суммы, заданная как ненулевое целое число.

Примечание

The SumFractionLength - отрицательное значение SumFixedExponent. Изменение одного свойства изменяет другое.

Пример: F = fimath('SumFixedExponent',-20)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Длина дроби, в битах, типа суммарных данных, заданная как ненулевое целое число.

Примечание

The SumFractionLength - отрицательное значение SumFixedExponent. Изменение одного свойства изменяет другое.

Пример: F = fimath('SumFractionLength',20)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Как определяется тип данных суммы, заданный как одно из следующих значений:

  • 'FullPrecision' - Сохранена полная точность результата.

  • 'KeepLSB' - Сохраните наименьшие значащие биты. Задайте тип суммарных данных размеров слова. Длина дроби устанавливается таким образом, чтобы поддерживать наименьшие значащие биты суммы.

  • 'KeepMSB' - Сохраните самые значительные биты. Задайте тип суммарных данных размеров слова. Длина дроби устанавливается для поддержания наиболее значимых битов суммы и не более дробных бит, чем необходимо.

  • 'SpecifyPrecision' - Задайте длины слова и дроби или наклон и смещение типа суммарных данных.

Пример: F = fimath('SumMode','KeepLSB')

Типы данных: char

Наклон типа данных суммы, заданный как число с плавающей запятой.

Примечание

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

Изменение одного из этих свойств влияет на другие.

Пример: F = fimath('SumSlope',9.3132e-10)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Коэффициент корректировки наклона типа суммарных данных, заданный как число с плавающей запятой, больше или равное 1 и меньше 2.

Примечание

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

Изменение одного из этих свойств влияет на другие.

Пример: F = fimath('SumSlopeAdjustmentFactor',1)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер слова, в битах, типа суммарных данных, заданная как положительное целое число.

Пример: F = fimath('SumWordLength',64)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Расширенные возможности

.

Генерация HDL-кода
Сгенерируйте Verilog и VHDL код для FPGA и ASIC проектов с использованием HDL- Coder™.

Представлено до R2006a