计算平方根、带符号的平方根或平方根的倒数

您所在的位置:网站首页 matlab开n次根号 计算平方根、带符号的平方根或平方根的倒数

计算平方根、带符号的平方根或平方根的倒数

2023-04-22 20:58| 来源: 网络整理| 查看: 265

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

Sqrt 函数模式

对于函数设置为 “sqrt” 的 Sqrt 模块,代码生成器支持各种架构和数据类型。

“sqrtfunction” 架构支持定点类型和浮点类型的代码生成。使用浮点类型时,请将Floating Point IP Library Parameters (HDL Coder)设置为“本机浮点”。您可以指定 HDL 属性 LatencyStrategy 和 CustomLatency,以便在硬件平台上设计时从一系列频率值中进行选择。

将 HDL 模块属性 UseMultiplier 与 LatencyStrategy 和 CustomLatency 属性结合使用,以指定是使用流水线移位相加算法还是使用乘法算法来计算平方根

不同模式的本机浮点设置

对于此架构,您可以在“HDL 模块属性”对话框的本机浮点选项卡中指定 HandleDenormals 和 LatencyStrategy 设置。

架构定点本机浮点HandleDenormalsLatencyStrategy“sqrtfunction”✓✓✓✓“sqrtnewton”✓———“sqrtnewtonsinglerate”✓———“recipsqrtnewton”✓———“recipsqrtnewtonsinglerate”✓———HDL 架构

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

架构参数额外的延迟周期描述“SqrtFunction”(默认值)

UseMultiplier

LatencyStrategy

CustomLatency

取决于参数选择项、输出字长以及输入和输出小数长度。

要指定此架构,请将函数设置为 “sqrt” 或 “rSqrt”。

使用流水线移位相加算法或基于乘法的算法计算平方根。

“SqrtFunction” 架构的最大延迟由输出字长以及定点数据的输入和输出小数长度确定。例如,如输出字长 17,最大延迟为 11。

要查看延迟计算,请在 MATLAB 命令提示符下输入:

HDLMathLib

通过将 UseMultiplier 设置为 off 并将 LatencyStrategy 设置为 inherit,改进设计频率并减少资源使用。

“SqrtNewton”IterationsIterations + 3

要指定此架构,请将函数设置为 “sqrt”。

使用牛顿迭代法。选择此选项以优化面积。

Iterations 的默认值为 3。

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

“SqrtNewtonSingleRate”Iterations(Iterations * 4) + 6

要指定此架构,请将函数设置为 “sqrt”。

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

Iterations 的默认值为 3。

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

“RecipSqrtNewton”IterationsIterations + 2

要指定此架构,请将函数设置为 “rSqrt”。

使用牛顿迭代法。选择此选项以优化面积。

“RecipSqrtNewtonSingleRate”Iterations(Iterations * 4) + 5

要指定此架构,请将函数设置为 “rSqrt”。

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

Newton-Raphson 迭代方法:

xi+1=xi−f(xi)f'(xi)=xi(1.5−0.5axi2)

“ReciprocalRsqrtBasedNewton” 和 “ReciprocalRsqrtBasedNewtonSingleRate” 一起实现 Newton-Raphson 方法,方式如下:

f(x)=1x2−1

HDL 模块属性通用ConstrainedOutputPipeline

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

迭代数

“SqrtNewton” 或 “SqrtNewtonSingleRate” 实现的迭代次数。

InputPipeline

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

OutputPipeline

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

UseMultiplier

为 “SqrtFunction” 实现选择算法。默认情况下,此属性设置为 off,并且此模块使用移位相加算法计算平方根。当该属性设置为 on 时,通过使用乘数计算平方根。

通过将 UseMultiplier 设置为 off 并将 LatencyStrategy 设置为 inherit,提高设计频率并减少资源使用。

LatencyStrategy

对于定点和浮点类型,指定是将设计中的模块映射到 MAX、MIN、CUSTOM 还是 ZERO 延迟。默认值为 “MAX”。浮点类型的模块设置会覆盖模型级设置。对于定点类型,模块级设置确定延迟策略。另请参阅LatencyStrategy (HDL Coder)。

通过将 UseMultiplier 设置为 off 并将 LatencyStrategy 设置为 inherit,提高设计频率并减少资源使用。

CustomLatency

当 LatencyStrategy 设置为 CUSTOM 时,如果您使用定点类型,请使用此属性为定点类型指定介于 ZERO 和 MAX 之间的自定义延迟值。对于浮点类型,此值成为运算符的自定义延迟。另请参阅NFPCustomLatency (HDL Coder)。

本机浮点HandleDenormals

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

限制

输入必须为无符号标量值。

输出为定点标量值。



【本文地址】


今日新闻


推荐新闻


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