Замена оператора неподвижной точки кода

Если у вас есть лицензия Fixed-Point Designer™, можно задать заменяющие записи оператора неподвижной точки кода в соответствие:

  • Единственная двоичной точкой комбинация масштабирования на входных параметрах оператора и выходе.

  • Наклонная комбинация масштабирования смещения на входных параметрах оператора и выходе.

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

  • Равный наклон и обнуляет сетевое смещение через входные параметры оператора сложения или оператора вычитания и выводит. Используйте этот метод, чтобы игнорировать определенный наклон и значения смещения и сопоставить относительный наклон и значения смещения к заменяющей функции для сложения или вычитания.

Распространенные способы совпадать с записями оператора неподвижной точки

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

СоответствиеСоздайте записьМинимально задайте параметры

Определенная единственная двоичной точкой комбинация масштабирования на входных параметрах оператора и выходе.

RTW.TflCOperationEntry

createAndAddConceptualArg функция:

  • CheckSlope: Задайте значение true.

  • CheckBias: Задайте значение true.

  • DataTypeMode (или DataTypeМасштабирование эквивалентный): Задайте фиксированную точку единственное двоичной точкой масштабирование.

  • FractionLength: Задайте дробную длину (например, 3).

Определенная наклонная комбинация масштабирования смещения на входных параметрах оператора и выходе.

RTW.TflCOperationEntry

createAndAddConceptualArg функция:

  • CheckSlope: Задайте значение true.

  • CheckBias: Задайте значение true.

  • DataTypeMode (или DataType/Scaling эквивалентный): Задайте фиксированную точку [наклонное смещение] масштабирование.

  • Slope (или SlopeAdjustmentFactor/ FixedExponent эквивалентный): Задайте наклонное значение (например, 15).

  • Bias: Задайте значение смещения (например, 2).

Сетевой наклон между входными параметрами оператора и выходом (умножение и деление).

RTW.TflCOperationEntryGenerator_NetSlope

setTflCOperationEntryParameters функция:

  • NetSlopeAdjustmentFactor: Задайте наклонный поправочный коэффициент (F) часть сетевого наклона, F2E (например, 1.0).

  • NetFixedExponent: Задайте фиксированную экспоненту (E) часть сетевого наклона, F2E (например, -3.0).

createAndAddConceptualArg функция:

  • CheckSlope: Задайте значение false.

  • CheckBias: Задайте значение false.

  • DataType: Задайте значение 'Fixed'.

Относительное масштабирование между входными параметрами оператора и выход (умножение и деление).

RTW.TflCOperationEntryGenerator

setTflCOperationEntryParameters функция:

  • RelativeScalingFactorF: Задайте наклонный поправочный коэффициент (F) часть относительного масштабного коэффициента, F2E (например, 1.0).

  • RelativeScalingFactorE: Задайте фиксированную экспоненту (E) часть относительного масштабного коэффициента, F2E (например, -3.0).

createAndAddConceptualArg функция:

  • CheckSlope: Задайте значение false.

  • CheckBias: Задайте значение false.

  • DataType: Задайте значение 'Fixed'.

Равный наклон и обнуляет сетевое смещение через входные параметры оператора и выводит (сложение и вычитание).

RTW.TflCOperationEntryGenerator

setTflCOperationEntryParameters функция:

  • SlopesMustBeTheSame: Задайте значение true.

  • MustHaveZeroNetBias: Задайте значение true.

createAndAddConceptualArg функция:

  • CheckSlope: Задайте значение false.

  • CheckBias: Задайте значение false.

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

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

V=V˜=SQ+B

  • V произвольно точное реальное значение.

  • V˜ аппроксимированное реальное значение, которое следует из представления фиксированной точки.

  • Q целое число, которое кодирует V˜, называемый quantized integer.

  • S коэффициент Q, называемый slope.

  • B аддитивная коррекция, называемая bias.

Общее уравнение для операции между операндами фиксированной точки:

(SOQO+BO)=(S1Q1+B1)<op>(S2Q2+B2)

Цель замены оператора неподвижной точки состоит в том, чтобы заменить оператор, который принимает и возвращает фиксированную точку или целочисленные входные параметры и выход с функцией, которая принимает и возвращает встроенные типы числовых данных C. Следующие разделы обеспечивают дополнительную программную информацию для каждого поддерживаемого оператора.

Сложение

Операция V0 = V1 + V2 подразумевает это

Q0=(S1S0)Q1+(S2S0)Q2+(B1+B2B0S0)

Если заменяющая функция сложения задана таким образом, что масштабирование на операндах и сумме равно и сетевое смещение

(B1+B2B0S0)

нуль (например, функциональный s8_add_s8_s8 это добавляет два 8-битных значения со знаком и приводит к 8-битному результату со знаком), затем запись оператора должна установить параметры записи оператора SlopesMustBeTheSame и MustHaveZeroNetBias к true. Чтобы соответствовать для замены, наклоны должны быть тем же самым для всего сложения концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters.)

Вычитание

Операция V0 = V1 − V2 подразумевает это

Q0=(S1S0)Q1(S2S0)Q2+(B1B2B0S0)

Если заменяющая функция вычитания задана таким образом, что масштабирование на операндах и различии равно и сетевое смещение

(B1B2B0S0)

нуль (например, функциональный s8_sub_s8_s8 это вычитает два 8-битных значения со знаком и приводит к 8-битному результату со знаком), затем запись оператора должна установить параметры записи оператора SlopesMustBeTheSame и MustHaveZeroNetBias к true. Чтобы соответствовать для замены, наклоны должны быть тем же самым для всего вычитания концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters.)

Умножение

Существуют различные способы задать замены умножения. Самый прямой путь состоит в том, чтобы задать точное совпадение типов ввода и вывода. Это выполнимо, если модель содержит только некоторых известный наклон и комбинации смещения. Используйте TflCOperationEntry класс и задает точные значения наклона и смещения на каждом аргументе. Для сценариев, где существуют многочисленные комбинации наклона/смещения, не выполнимо задать каждое значение с различной записью. Используйте сетевую наклонную запись или создайте пользовательскую запись.

Операция V0 = V1 * V2 подразумевает, для единственного двоичной точкой масштабирования, этого

S0Q0=(S1Q1)(S2Q2)Q0=(S1S2S0)Q1Q2Q0=SnQ1Q2

где 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) подразумевает, для единственного двоичной точкой масштабирования, этого

S0Q0=(S1Q1S2Q2)Q0=Sn(Q1Q2)

где 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 преобразования типа данных подразумевает, для единственного двоичной точкой масштабирования, этого

Q0=(S1S0)Q1Q0=SnQ1

где Sn является сетевым наклоном. Установите параметр записи оператора SlopesMustBeTheSame к false и параметр MustHaveZeroNetBias к true. Чтобы соответствовать для замены, смещения должны быть нулем для всего броска концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters.)

Сдвиг

Оставленный сдвиг или операция V0 = (V1 / 2n) права сдвига подразумевает, для единственного двоичной точкой масштабирования, этого

S0Q0=(S1Q12n)Q0=(S1S0)(Q12n)Q0=Sn(Q12n)

где Sn является сетевым наклоном. Установите параметр записи оператора SlopesMustBeTheSame к false и параметр MustHaveZeroNetBias к true. Чтобы соответствовать для замены, смещения должны быть нулем для всего сдвига концептуальные аргументы. (Для описаний параметра смотрите страницу с описанием для функции setTflCOperationEntryParameters.)

Похожие темы