Важный набор сгенерированных функций, что места сборки модели в разделяемой служебной папке являются функциями поддержки фиксированной точки. На основе модели и свойств блока, существует много возможных версий сервисных функций фиксированной точки, которые делают невозможным обеспечить полный набор как статические файлы. Генерация только необходимых служебных функций фиксированной точки во время процесса генерации кода является эффективной альтернативой.
Разделяемый служебный механизм контрольной суммы убеждается, что несколько критических свойств идентичны для моделей, которые используют разделяемые утилиты. Для функций фиксированной точки существуют дополнительные свойства, которые определяют функциональное поведение. Механизм кодирует эти свойства в функции и имена файлов, чтобы обеспечить требования. Дополнительные свойства включают:
Категория | Функция/Свойство |
---|---|
Блокируйте свойства |
|
Свойства модели | 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
пример имеет идентичный тип данных и биты для обоих входных параметров и выхода. Так, имя файла и имя функции только включают выход.
Операция | FIX2FIX | FIX2FIX | ACCUM_POS | MUL | отделение | отделение |
---|---|---|---|---|---|---|
Нулевая защита | NULL | NULL | NULL | NULL | _nzp | NULL |
Тип выходных данных | _U | _S | _S | _S | _s | _s |
Выведите биты | 12
| 9
| 30
| 30
| 16
| 32
|
Тип входных данных | _U | _S | _S | _S [and _S] | s | NULL |
Введите биты | 16
| 9
| 30
| 30 [and 16] | 32
| NULL |
Переключите направление | NULL | SR99 | NULL | NULL | NULL | NULL |
Режим Saturate | NULL | NULL | NULL | NULL | NULL | _sat |
Круглый режим | NULL | NULL | NULL | NULL | _floor | _floor |