执行数学函数

您所在的位置:网站首页 MATLAB中lnx怎么表示 执行数学函数

执行数学函数

2023-12-13 02:36| 来源: 网络整理| 查看: 265

C/C++ 代码生成 使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。HDL 代码生成 使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。

HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。

HDL 架构函数架构描述conjComplexConjugate 计算复共轭。hermitianhermitian 计算 hermitian。transpose转置 计算数组转置。请参阅 Simulink 文档中的Math Function。倒数架构

您可以通过使用 reciprocal 函数的数学架构在本机浮点模式下为单精度浮点数据类型生成 HDL 代码。Math Function 模块中的 reciprocal 函数也支持表中列出的架构。

当算法方法设置为精确时,您可以在此模块的 HDL 模块属性中选择此选项。

架构参数额外的延迟周期描述ShiftAdd无

有符号输入:(输入字长 + 4)

无符号输入:(输入字长 + 4)

通过使用非还原除法算法对定点输入执行倒数运算,该算法执行多次移位相加运算来计算倒数。与牛顿-拉夫逊逼近方法相比,这种架构提高了精度。

使用定点数据类型时,必须满足以下标准才能生成 HDL 代码:

输入字长 (WL) 必须小于或等于 63。

[WL input + Abs(FL Sum)] 必须小于或等于 63。其中, FL Sum 由下式给出:

FL sum = FL input + FL output

此模块具有多周期实现,这会在生成的代码中引入额外的延迟。要查看增加的延迟,请查看生成的模型或验证模型。请参阅Generated Model and Validation Model (HDL Coder)。

对于 reciprocal 函数,HDL 代码生成还支持牛顿-拉夫逊算法方法。选择算法方法为牛顿-拉夫逊,以将这些架构用于 Math Function 模块中的 reciprocal 函数。

架构额外的延迟周期描述ReciprocalNewton(默认值)Iterations + 1

使用牛顿迭代法的多速率实现。选择此选项可优化设计区域。

Iterations 的默认值为 3。

Iterations 的推荐值为 2 到 10。如果 Iterations 的值超出建议的范围,HDL Coder 将显示一条消息。

ReciprocalNewtonSingleRate(Iterations * 2) + 1

使用单频率流水线牛顿法。要为您的设计优化速度或需要单速率实现,请选择此选项。

Iterations 的默认值为 3。

Iterations 的建议值介于 2 到 10 之间。如果 Iterations 值超出建议的范围,HDL Coder 将显示一条消息。

ReciprocalRsqrtBasedNewtonSingleRate

有符号输入:(Iterations * 4) + 8

无符号输入:(Iterations * 4) + 6

使用单频率流水线牛顿法。要优化速度或需要单速率实现,请选择此选项。

Iterations 的默认值为 3。

Iterations 的推荐值为 2 到 10。如果 Iterations 超出推荐范围,代码生成器会生成一条消息。

HDL 模块属性通用ConstrainedOutputPipeline

通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线处理不会重新分发这些寄存器。默认值为 0。有关详细信息,请参阅ConstrainedOutputPipeline (HDL Coder)。

InputPipeline

要在生成的代码中插入的输入流水线阶段数。分布式流水线处理和受限输出流水线处理可以移动这些寄存器。默认值为 0。有关详细信息,请参阅InputPipeline (HDL Coder)。

OutputPipeline

要在生成的代码中插入的输出流水线阶段数。分布式流水线处理和受限输出流水线处理可以移动这些寄存器。默认值为 0。有关详细信息,请参阅OutputPipeline (HDL Coder)。

LatencyStrategy

要启用此属性,请将 HDL 架构设置为 ShiftAdd。对于定点类型,指定是将设计中的模块映射到 MAX、Min、CUSTOM 还是 ZERO 延迟。默认值为 MAX。另请参阅LatencyStrategy (HDL Coder)。

CustomLatency

要启用此属性,请将 HDL 架构设置为 ShiftAdd。当 LatencyStrategy 设置为 CUSTOM 时,使用此属性为定点类型指定介于 ZERO 和 MAX 之间的自定义延迟值。另请参阅LatencyStrategy (HDL Coder)。

本机浮点CheckResetToZero将此属性用于 Math Function 模块的 mod 和 rem 函数。如果两个数 a 和 b 的商 a/b 接近整数,则此设置将 a 视为 b 的整数倍且 rem(a,b) = 0。该结果在数值上是精确的,并且与仿真结果相匹配。计算该结果会使用额外的资源,并会增加目标 FPGA 设备上的占用面积。有关详细信息,请参阅 CheckResetToZero (HDL Coder)。HandleDenormals

指定是否希望 HDL Coder 在设计中插入额外的逻辑来处理非正规数字。非正规数是量级非常小、必须使用包含前导零的尾数才能表示的浮点数。默认值为 inherit。另请参阅HandleDenormals (HDL Coder)。

LatencyStrategy

指定对于浮点运算符是否将设计中的模块映射到 inherit、Max、Min、Zero 或 Custom。默认值为 inherit。另请参阅LatencyStrategy (HDL Coder)。

NFPCustomLatency

要指定值,请将 LatencyStrategy 设置为 Custom。HDL Coder 会增加延迟,其值等于您为 NFPCustomLatency 设置指定的值。另请参阅NFPCustomLatency (HDL Coder)。

MaxIterations将此属性用于 Math Function 模块的 mod 和 rem 函数。如果您的两个数 a 和 b 是非常大的整数,您可以增大 MaxIterations 以匹配仿真结果。计算该结果会使用额外的资源,并会增加目标 FPGA 设备上的占用面积。有关详细信息,请参阅 MaxIterations (HDL Coder)。支持本机浮点的数据类型和函数

在 Math Function 模块中,下列函数支持本机浮点。

数学函数支持的浮点数据类型复数数据支持半精度单精度双精度 exp 否是否否 log 否是是否 2^u 否是否否 10^u 否是否否 log10 否是否否 magnitude^2 否是是是 square 否是否是 pow 否是否否 conj 否是否是 reciprocal 是是是否 hypot 否是否否 rem 否是否否 mod 否是否否 transpose 是是是是 hermitian 否是否是

限制

当您使用倒数实现时:

输入必须为标量,并且必须具有整数或定点(有符号或无符号)数据类型。

输出必须为标量,并且具有整数或定点(有符号或无符号)数据类型。

仅支持零舍入模式。

必须对模块选择对整数溢出进行饱和处理选项。

PLC 代码生成 使用 Simulink® PLC Coder™ 生成结构化文本代码。定点转换 使用 Fixed-Point Designer™ 设计和仿真定点系统。

Math Function 模块只支持某些配置中的定点转换。有关详细信息,请参阅 Block Support Table。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3