指定应用于输入信号的三角函数

您所在的位置:网站首页 纳米注氧补水仪有用吗 指定应用于输入信号的三角函数

指定应用于输入信号的三角函数

2024-01-14 21:05| 来源: 网络整理| 查看: 265

C/C++ 代码生成 使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

并非所有编译器都支持 asinh、acosh 和 atanh 函数。如果您使用不支持这些函数的编译器,将会出现警告,且生成的代码无法链接。

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

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

HDL 架构

在本机浮点模式下,对于数据类型为浮点且架构设置为 Trigonometric 的模块的所有函数,您都可以为其生成 HDL 代码。本机浮点模式不支持模块使用 double 数据类型。

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

Trigonometric Function 模块对定点数据类型使用 CORDIC 逼近方法和 CORDIC HDL 架构支持下表中这些函数的 HDL 代码生成。

sin

cos

sincos

cos+jsin

atan2

延迟计算取决于字长和 LatencyStrategy 设置。要了解详细信息,请打开 HDLMathLib 库。

HDLMathLibHDL 模块属性通用ConstrainedOutputPipeline

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

InputPipeline

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

OutputPipeline

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

LatencyStrategy

要为定点类型启用此属性,请将函数设置为 sin、cos、sincos、cos+jsin,或 atan2 并将逼近方法设置为 CORDIC。对于定点和浮点类型,指定是将设计中的模块映射到 MAX、Min、CUSTOM 还是 ZERO 延迟。默认值为 MAX。另请参阅LatencyStrategy (HDL Coder)。

CustomLatency

要为定点类型启用此属性,请将函数设置为 sin、cos、sincos、cos+jsin,或 atan2 并将逼近方法设置为 CORDIC。当 LatencyStrategy 设置为 CUSTOM 时,使用此属性为定点类型指定介于 ZERO 和 MAX 之间的自定义延迟值。另请参阅LatencyStrategy (HDL Coder)。

本机浮点InputRangeReduction

将此属性用于 sin、cos、tan、sincos 和 cos+jsin 函数。如果您的输入范围是无界的,请为 HDL Coder 启用此属性,以插入额外的逻辑来缩小 [-pi, pi] 的输入范围。另请参阅InputRangeReduction (HDL Coder)。

HandleDenormals

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

LatencyStrategy

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

MultiplyStrategy

将此属性用于 sin、cos、tan、sincos 和 cos+jsin 函数。默认值为 inherit。指定您要使用 FullMultiplier 还是 PartMultiplierPartAddShift。另请参阅MantissaMultiplyStrategy (HDL Coder)。

要查看模块的定点类型的延迟计算,请在 MATLAB 命令提示符下输入:

HDLMathLibULP 注意事项

对于浮点运算,Trigonometric Function 模块的最后一位非零单位 (ULP) 错误。有关详细信息,请参阅ULP Considerations of Native Floating-Point Operators (HDL Coder)。

限制

对于 sin 和 cos 函数,CORDIC 逼近仅支持有符号定点数据类型。

对于具有 CORDIC 模式的函数,如 sin、cos、sincos、atan2 和 cos+jsin,HDL 代码生成不支持大于 127 位的定点数据类型。

在您为反馈回路中的 Trigonometric Function 模块选择下列设置时,HDL Coder 会显示错误:

HDL 架构为 SinCosCordic

UsePipelinedKernel 为 On

出现错误是因为该模块处于反馈回路中,并且代码生成器无法插入额外的延迟。为避免此错误,请在模块附近添加长度等于迭代次数 + 3 的延迟。然后,代码生成器吸收该延迟以满足 Trigonometric Function 模块的额外延迟。

例如,此 Trigonometric Function 模块将迭代次数设置为 30。与该模块相邻的长度为 33 的 Delay 模块满足额外的延迟。

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

当函数设置为 sin、cos、sincos、cos + jsin 或 atan2 且逼近方法设置为 CORDIC 时,此模块支持定点和基整数数据类型。



【本文地址】


今日新闻


推荐新闻


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