HDL Coder™原生浮点技术可以从您的浮点设计中生成与目标无关的HDL代码。你可以在任何通用的FPGA或ASIC上合成你的浮点设计。与定点设计相比,浮点设计具有更好的精度、更高的动态范围和更短的开发周期。如果您的设计具有复杂的数学和三角运算,请使用原生浮点技术。
该图显示了HDL Coder如何使用本机浮点技术生成代码。
的解压缩
而且包
块将浮点类型转换为符号、指数和尾数。在图中,年代,E,米分别表示符号、指数和尾数。本解释基于IEEE-754浮点运算标准。
的浮点算法实现块上执行计算年代,E,米.通过这种转换,生成的HDL代码与目标无关。您可以在任何通用FPGA或ASIC上部署该设计。
您可以在“配置参数”对话框或命令行中生成代码。
要在“配置参数”对话框中指定本机浮点设置并生成HDL代码:
在应用程序选项卡上,选择高密度脂蛋白编码器.的HDL代码选项卡出现了。
点击设置.在HDL代码生成>浮点窗格中,为图书馆中,选择本机浮点数
.
指定延迟策略将您的设计映射为最大或最小延迟或无延迟。
如果您的设计中有非法数,请选择处理Denormals.非正数是指指数字段等于零和尾数字段非零的数。看到处理Denormals.
如果您的设计具有乘数器,要指定希望HDL Coder如何实现乘法操作,请使用尾数乘数策略.看到尾数乘数策略.
共享浮点资源,在HDL代码生成>优化>资源共享Tab,确保你选择了浮点IPs.共享的块的数量取决于SharingFactor您为子系统指定的。
点击应用.在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,互惠,罪,因为块分别在您的原始模型。
每个浮点运算符都有延迟。属性的延迟导致代码生成器插入了额外的匹配延迟互惠√6是30.
和延时互惠是31
.运算符延时等于延迟的长度的延迟Block在里面NFP
块。例如,如果双击NFP√6
块,你可以通过查看延迟的长度的延迟
块。看到浮点运算符的延迟值.
当你使用MATLAB函数块使用浮点数据类型,HDL Coder使用MATLAB Datapath公司
体系结构。这个体系结构处理MATLAB函数像常规一样阻挡子系统块。生成代码时,代码生成器将加法和乘法等基本操作映射到相应的本机浮点运算符。打开MATLAB函数
子系统,以了解代码生成器如何实现MATLAB函数块。
要了解关于生成模型的更多信息,请参见生成模型和验证模型.
要在本地浮点模式下生成HDL代码,请使用离散采样时间。不支持在连续采样时间运行的块。万博1manbetx