Сгенерируйте разделяемый служебный код для функций фиксированной точки

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

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

КатегорияФункция/Свойство
Блокируйте свойства
  • Операция фиксированной точки, которую выполняет блок

  • Тип данных с фиксированной точкой и масштабирующийся (Slope, Bias) из входных параметров функции и выходных параметров

  • Режим обработки переполнения (Saturation, Wrap)

  • Округление режима (Floorпотолок, Zero)

Свойства моделиget_param(bdroot, 'NoFixptDivByZeroProtection')

Основанное на свойстве соглашение о присвоении имен для утилит фиксированной точки следующие:

operation + [zero protection] + output data type + output bits + 
[input1 data] + input1 bits + [input2 data type + input2 bits] + 
[shift direction] + [saturate mode] + [round mode]

Показанные имена файлов являются примерами сгенерированных сервисных файлов фиксированной точки. Функциональные или макро-имена в файле идентичны имени файла без расширения.

FIX2FIX_U12_U16.c 
FIX2FIX_S9_S9_SR99.c
ACCUM_POS_S30_S30.h
MUL_S30_S30_S16.h
div_nzp_s16s32_floor.c
div_s32_sat_floor.c

Для этих примеров таблица показывает, как соответствующие поля соответствуют.

ACCUM_POS пример использует выходную переменную в качестве одной из входных переменных. Так, файл и макрос называют, только содержат выход и второй вход.

Второй div пример имеет идентичный тип данных и биты для обоих входных параметров и выхода. Так, имя файла и имя функции только включают выход.

ОперацияFIX2FIXFIX2FIXACCUM_POSMULотделениеотделение
Нулевая защитаNULLNULLNULLNULL_nzpNULL
Тип выходных данных _U_S_S_S_s_s
Выведите биты 12930301632
Тип входных данных _U_S_S_S [and _S] sNULL
Введите биты 1693030 [and 16]32NULL
Переключите направление NULL SR99NULLNULLNULLNULL
Режим Saturate NULLNULLNULLNULLNULL_sat
Круглый режимNULLNULLNULLNULL_floor_floor

Похожие темы