主要内容

使用本机浮点生成与目标无关的HDL代码

HDL Coder™原生浮点技术可以从您的浮点设计中生成与目标无关的HDL代码。你可以在任何通用的FPGA或ASIC上合成你的浮点设计。与定点设计相比,浮点设计具有更好的精度、更高的动态范围和更短的开发周期。如果您的设计具有复杂的数学和三角运算,请使用原生浮点技术。

如何高密度脂蛋白编码器生成与目标无关的HDL代码

该图显示了HDL Coder如何使用本机浮点技术生成代码。

解压缩而且块将浮点类型转换为符号、指数和尾数。在图中,年代E,分别表示符号、指数和尾数。本解释基于IEEE-754浮点运算标准。

浮点算法实现块上执行计算年代E,.通过这种转换,生成的HDL代码与目标无关。您可以在任何通用FPGA或ASIC上部署该设计。

启用本地浮点和生成代码

您可以在“配置参数”对话框或命令行中生成代码。

要在“配置参数”对话框中指定本机浮点设置并生成HDL代码:

  1. 应用程序选项卡上,选择高密度脂蛋白编码器.的HDL代码选项卡出现了。

  2. 点击设置.在HDL代码生成>浮点窗格中,为图书馆中,选择本机浮点数

  3. 指定延迟策略将您的设计映射为最大或最小延迟或无延迟。

  4. 如果您的设计中有非法数,请选择处理Denormals.非正数是指指数字段等于零和尾数字段非零的数。看到处理Denormals

  5. 如果您的设计具有乘数器,要指定希望HDL Coder如何实现乘法操作,请使用尾数乘数策略.看到尾数乘数策略

  6. 共享浮点资源,在HDL代码生成>优化>资源共享Tab,确保你选择了浮点IPs.共享的块的数量取决于SharingFactor您为子系统指定的。

  7. 点击应用.在HDL代码选项卡上,单击生成HDL代码

要在命令行生成HDL代码,请使用hdlcoder.createFloatingPointTargetConfig函数。可以使用此函数创建hdlcoder。FloatingPointTargetConfig对象用于本机浮点库。

nfpconfig = hdlcode . createfloatingpointtargetconfig (“NATIVEFLOATINGPOINT”);hdlset_param (“sfir_single”“FloatingPointTargetConfiguration”, nfpconfig);

可选地,您可以指定延迟策略,以及您是否希望HDL Coder在您的设计中处理非正数:

nfpconfig.LibrarySettings.HandleDenormals =“上”;nfpconfig.LibrarySettings.LatencyStrategy =“马克斯”

若要了解如何验证生成的代码,请参见验证从本机浮点生成的代码

查看代码生成报告

若要查看浮点库映射的代码生成报告,在开始代码生成之前,请启用“资源利用报告”和“优化报告”的生成。上启用报表HDL代码选项卡上,单击设置>报告选项在“配置参数”对话框中,单击HDL代码生成窗格中,使生成资源利用报告而且生成优化报告.另请参阅创建和使用代码生成报告

查看HDL Coder支持的本机浮点运算符列表,以及您的Simulink所指向的浮点运算符万博1manbetx万博1manbetx®块映射到“代码生成报告”中的选择原生浮点资源报告

详细报告显示浮点块在指定的目标设备上使用的各种资源。另请参阅创建和使用代码生成报告

要查看应用于模型的本机浮点设置以及HDL Coder是否成功生成HDL代码,请在“代码生成报告”中选择目标代码生成

分析结果

浮点运算符有延迟。如果您的Simu万博1manbetxlink模型没有延迟,那么当您生成HDL代码时,代码生成器会计算出运算符延迟和延迟平衡并行路径。考虑这个有两个的Simuli万博1manbetxnk模型输入并给出输出。

MATLAB函数Simulink模型中的块万博1manbetx包含此代码。

函数Y = fcn(u, w)% # codegenY1 = (u+w) * 20;Y2 = w^16;Y3 = (u-w) / 10;Y = Y + Y - y3;

在生成HDL代码时,代码生成器将Simulink模型中的块映射到可合成的本机浮点运算符。万博1manbetx要查看代码生成器如何实现浮点操作,请打开生成的模型。数据块NFP数学NFP√6,NFP三角类的浮点实现对应互惠√6互惠,因为块分别在您的原始模型。

每个浮点运算符都有延迟。属性的延迟导致代码生成器插入了额外的匹配延迟互惠√630.和延时互惠31.运算符延时等于延迟的长度延迟Block在里面NFP块。例如,如果双击NFP√6块,你可以通过查看延迟的长度延迟块。看到浮点运算符的延迟值

当你使用MATLAB函数块使用浮点数据类型,HDL Coder使用MATLAB Datapath公司体系结构。这个体系结构处理MATLAB函数像常规一样阻挡子系统块。生成代码时,代码生成器将加法和乘法等基本操作映射到相应的本机浮点运算符。打开MATLAB函数子系统,以了解代码生成器如何实现MATLAB函数块。

要了解关于生成模型的更多信息,请参见生成模型和验证模型

限制

要在本地浮点模式下生成HDL代码,请使用离散采样时间。不支持在连续采样时间运行的块。万博1manbetx

另请参阅

建模指南

功能

相关的例子

更多关于