Если у вас есть лицензия Fixed-Point Designer™, можно задать заменяющие записи оператора неподвижной точки кода в соответствие:
Единственная двоичной точкой комбинация масштабирования на входных параметрах оператора и выходе.
Наклонная комбинация масштабирования смещения на входных параметрах оператора и выходе.
Родственник, масштабирующийся или сетевой наклон между входными параметрами оператора умножения или оператора деления и выходом. Используйте один из этих методов, чтобы сопоставить область значений наклона и значений смещения к заменяющей функции для умножения или деления.
Равный наклон и обнуляет сетевое смещение через входные параметры оператора сложения или оператора вычитания и выводит. Используйте этот метод, чтобы игнорировать определенный наклон и значения смещения и сопоставить относительный наклон и значения смещения к заменяющей функции для сложения или вычитания.
Следующая таблица сопоставляет распространенные способы совпадать с заменяющими записями оператора неподвижной точки кода связанным параметрам фиксированной точки, которые вы задаете в заменяющем табличном файле определения кода.
Соответствие | Создайте запись | Минимально задайте параметры |
---|---|---|
Определенная единственная двоичной точкой комбинация масштабирования на входных параметрах оператора и выходе. | RTW.TflCOperationEntry |
|
Определенная наклонная комбинация масштабирования смещения на входных параметрах оператора и выходе. | RTW.TflCOperationEntry |
|
Сетевой наклон между входными параметрами оператора и выходом (умножение и деление). | RTW.TflCOperationEntryGenerator_NetSlope |
|
Относительное масштабирование между входными параметрами оператора и выход (умножение и деление). | RTW.TflCOperationEntryGenerator |
|
Равный наклон и обнуляет сетевое смещение через входные параметры оператора и выводит (сложение и вычитание). | RTW.TflCOperationEntryGenerator |
|
Числа фиксированной точки используют целые числа и целочисленную арифметику, чтобы представлять вещественные числа и арифметику со следующей схемой кодирования:
произвольно точное реальное значение.
аппроксимированное реальное значение, которое следует из представления фиксированной точки.
целое число, которое кодирует , называемый quantized integer.
коэффициент , называемый slope.
аддитивная коррекция, называемая bias.
Общее уравнение для операции между операндами фиксированной точки:
Цель замены оператора неподвижной точки состоит в том, чтобы заменить оператор, который принимает и возвращает фиксированную точку или целочисленные входные параметры и выход с функцией, которая принимает и возвращает встроенные типы числовых данных C. Следующие разделы обеспечивают дополнительную программную информацию для каждого поддерживаемого оператора.
Операция V0 = V1 + V2 подразумевает это
Если заменяющая функция сложения задана таким образом, что масштабирование на операндах и сумме равно и сетевое смещение
нуль (например, функциональный s8_add_s8_s8
это добавляет два 8-битных значения со знаком и приводит к 8-битному результату со знаком), затем запись оператора должна установить параметры записи оператора SlopesMustBeTheSame
и MustHaveZeroNetBias
к true
. Чтобы соответствовать для замены, наклоны должны быть тем же самым для всего сложения концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters
.)
Операция V0 = V1 − V2 подразумевает это
Если заменяющая функция вычитания задана таким образом, что масштабирование на операндах и различии равно и сетевое смещение
нуль (например, функциональный s8_sub_s8_s8
это вычитает два 8-битных значения со знаком и приводит к 8-битному результату со знаком), затем запись оператора должна установить параметры записи оператора SlopesMustBeTheSame
и MustHaveZeroNetBias
к true
. Чтобы соответствовать для замены, наклоны должны быть тем же самым для всего вычитания концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters
.)
Существуют различные способы задать замены умножения. Самый прямой путь состоит в том, чтобы задать точное совпадение типов ввода и вывода. Это выполнимо, если модель содержит только некоторых известный наклон и комбинации смещения. Используйте TflCOperationEntry
класс и задает точные значения наклона и смещения на каждом аргументе. Для сценариев, где существуют многочисленные комбинации наклона/смещения, не выполнимо задать каждое значение с различной записью. Используйте сетевую наклонную запись или создайте пользовательскую запись.
Операция V0 = V1 * V2 подразумевает, для единственного двоичной точкой масштабирования, этого
где Sn является сетевым наклоном.
Распространено заменить все операции умножения, которые имеют сетевой наклон 1,0 с функцией, которая выполняет умножение C-стиля. Например, чтобы заменить все 8-битное умножение со знаком, которое имеет сетевое масштабирование 1,0 с s8_mul_s8_u8_
заменяющая функция, запись оператора должна задать сетевой наклонный фактор, F2E. Вы задаете значения для F и E с помощью параметров записи оператора NetSlopeAdjustmentFactor
и NetFixedExponent
. Для s8_mul_s8_u8
функция, набор NetSlopeAdjustmentFactor
к 1 и NetFixedExponent
к 0,0. Кроме того, установите параметр записи оператора SlopesMustBeTheSame
к false
и параметр MustHaveZeroNetBias
к true
. Чтобы соответствовать для замены, смещения должны быть нулем для всего умножения концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters
.)
Примечание
Когда запись оператора задает NetSlopeAdjustmentFactor
и NetFixedExponent
, соответствие с записями должно иметь аргументы с нулевым смещением.
Существуют различные способы задать замены деления. Самый прямой путь состоит в том, чтобы задать точное совпадение типов ввода и вывода. Это выполнимо, если модель содержит только некоторых известный наклон и комбинации смещения. Используйте TflCOperationEntry
класс и задает точные значения наклона и смещения на каждом аргументе. Для сценариев, где существуют многочисленные комбинации наклона/смещения, не выполнимо задать каждое значение с различной записью. Используйте сетевую наклонную запись или создайте пользовательскую запись (см., Настраивают Процесс Соответствия и Замены).
Операция V0 = (V1 / V2) подразумевает, для единственного двоичной точкой масштабирования, этого
где Sn является сетевым наклоном.
Распространено заменить все операции деления, которые имеют сетевой наклон 1,0 с функцией, которая выполняет деление C-стиля. Например, чтобы заменить все 8-битные деления со знаком, которые имеют сетевое масштабирование 1,0 с s8_mul_s8_u8_
заменяющая функция, запись оператора должна задать сетевой наклонный фактор, F2E. Вы задаете значения для F и E с помощью параметров записи оператора NetSlopeAdjustmentFactor
и NetFixedExponent
. Для s16_netslope0p5_div_s16_s16
функция, вы установили бы NetSlopeAdjustmentFactor
к 1 и NetFixedExponent
к 0,0. Кроме того, установите параметр записи оператора SlopesMustBeTheSame
к false
и параметр MustHaveZeroNetBias
к true
. Чтобы соответствовать для замены, смещения должны быть нулем для всего деления концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters
.)
Примечание
Когда запись оператора задает NetSlopeAdjustmentFactor
и NetFixedExponent
, соответствие с записями должно иметь аргументы с нулевым смещением.
Операция V0 = V1 преобразования типа данных подразумевает, для единственного двоичной точкой масштабирования, этого
где Sn является сетевым наклоном. Установите параметр записи оператора SlopesMustBeTheSame
к false
и параметр MustHaveZeroNetBias
к true
. Чтобы соответствовать для замены, смещения должны быть нулем для всего броска концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters
.)
Оставленный сдвиг или операция V0 = (V1 / 2n) права сдвига подразумевает, для единственного двоичной точкой масштабирования, этого
где Sn является сетевым наклоном. Установите параметр записи оператора SlopesMustBeTheSame
к false
и параметр MustHaveZeroNetBias
к true
. Чтобы соответствовать для замены, смещения должны быть нулем для всего сдвига концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters
.)