信号和块输出可以指定半精度数据类型。半精度数据类型用于参数和块子集的模拟和代码生成。金宝app
在仿真金宝app软件®,执行算术操作、关系操作和二进制操作的块的半精度输入总是转换为单精度,并且操作以单精度执行。如果块的输出数据类型被设置为一半
时,块的输出被强制转换回半精度数据类型。
在MATLAB®,但是,有些函数通过模拟半精度浮点运算来执行半精度输入的算术运算。例如,在MATLAB中,以下代码是使用半精度浮点算法执行的。
Y = mod(1 / 2 u1, 1 / 2 u2)
在Si金宝appmulink中,使用国防部
的函数数学函数块,通过将输入转换为单精度并在单精度浮点数学中执行操作,可以执行相同的操作。然后将算术运算的结果转换回半精度。
Y = 1 / 2 (mod), 1 / 2 (u1), 1 / 2 (u2))))
在Normal、Accelerator和Rapid Accele金宝apprator模式下,模拟支持半精度数据类型。SIL、PIL和外部模式也支持半精度数据类型。金宝app
支持C/ c++代码生成的半精度金宝app.ert
目标。
在生成的代码中,半精度变量存储在模拟值的位模式的类中。
对于本地支持半精度特殊类型的嵌入式硬件目标,支持本地半精度C代码生成。金宝app有关更多信息,请参见从Simulink模型生成本地半精度C代码金宝app.
使用HDL Coder™生成HDL代码。
有关更多信息,请参见开始使用HDL编码器原生浮点支持金宝app(高密度脂蛋白编码器).
在Si金宝appmulink中,半精度数据类型只支持真实值。金宝app复杂值不能具有半精度数据类型。
要查看支持半精度的块,请在命令行输入:金宝app
showblockdatatypetable
支持半精度的块显示金宝appX
在标签栏中一半.
您可以生成C代码目标.ert
目标为使用半精度数据类型金宝app的Simulink模型。代码生成的.ert
targets需要Embedded Coder®许可证。
打开ex_half_arithmetic
模型。该模型执行几个算术运算。所有参数值和输出数据类型指定半精度数据类型。
open_system (“ex_half_arithmetic”);
要为模型生成C代码,请按Ctrl + B.在代码生成报告中,打开ex_half_arithmetic.c
文件。在生成的代码中,半精度变量的类型为real16_T
.例如,请参见rtb_Gain
变量。
在生成的代码中,半精度变量存储在模拟值的位模式的结构中。
算术运算的半精度输入变量被转换为单精度,算术运算在单精度中执行。如果块的输出数据类型被设置为一半
时,操作的结果被强制转换回半精度数据类型。例如,请参阅计算增益块输出的代码。