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

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

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

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

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

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

  • Округляя режим (Floor, Ceil, 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

Похожие темы