Сигналы и блок выходные параметры могут задать тип данных полуточности. Тип данных полуточности поддерживается для симуляции и генерации кода для параметров и подмножества блоков.
В Simulink®, входные параметры полуточности с блоками, выполняющими арифметические операции, реляционные операции и бинарные операции, всегда бросаются к одинарной точности, и операция выполняется в одинарной точности. Если тип выходных данных блока установлен в half
, выход блока брошен к типу данных полуточности.
В MATLAB®, однако, некоторые функции выполняют арифметические операции с входными параметрами полуточности путем эмуляции полуточности математика с плавающей точкой. Например, в MATLAB, следующий код выполняется с помощью полуточности арифметика с плавающей точкой.
y = mod(half(u1), half(u2))
В Simulink, с помощью mod
функция блока Math Function, та же операция была бы выполнена путем кастинга входных параметров к одинарной точности и проведения операции в математике с плавающей точкой с одинарной точностью. Результат арифметических операций затем брошен к половине точности.
y = half(mod(single(half(u1)), single(half(u2))))
Тип данных полуточности поддерживается для симуляции в Нормальном, Акселераторе и Быстрых Режимах Accelerator. Тип данных полуточности также поддерживается для SIL, PIL и режимов external mode.
Половина точности поддерживается для генерации кода C/C++ для .ert
цели.
В сгенерированном коде переменные полуточности хранятся в классе, эмулирующем комбинацию двоичных разрядов значения.
Для встроенных аппаратных целей, которые исходно поддерживают специальные типы для половины точности, поддерживается нативная генерация кода C полуточности. Для получения дополнительной информации смотрите, Генерируют Нативный код С Полуточности из Моделей Simulink.
Генерация HDL-кода с помощью HDL Coder™.
Для получения дополнительной информации смотрите Начало работы с Собственным компонентом HDL Coder Поддержка С плавающей точкой (HDL Coder).
В Simulink тип данных полуточности только поддерживает вещественные значения. Комплексные числа не могут иметь типа данных полуточности.
Чтобы просмотреть блоки, которые поддерживают половину точности в командной строке, введите:
showblockdatatypetable
Блоки, которые поддерживают половину точности, отображают X
в столбце пометил Half.
Можно сгенерировать код С, предназначающийся для .ert
цели для моделей Simulink с помощью типа данных полуточности. Генерация кода для .ert
цели требуют лицензии Embedded Coder®.
Откройте ex_half_arithmetic
модель. Модель выполняет несколько арифметических операций. Все значения параметров и типы выходных данных задают тип данных полуточности.
open_system('ex_half_arithmetic');
Чтобы сгенерировать код С для модели, нажмите Ctrl+B. В отчете генерации кода откройте ex_half_arithmetic.c
файл. Переменные полуточности являются типами в сгенерированном коде как real16_T
. Например, смотрите rtb_Gain
переменная.
В сгенерированном коде переменные полуточности хранятся в struct, эмулирующем комбинацию двоичных разрядов значения.
Входные переменные полуточности к арифметическим операциям брошены к одинарной точности, и арифметическая операция выполняется в одинарной точности. Если тип выходных данных блока установлен в half
, результат операции брошен к типу данных полуточности. Например, см., что код вычисляет выход блока Gain.