主要内容

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

HDL编码器™本机浮点技术可以从浮点设计生成目标无关的HDL代码。您可以在任何通用FPGA或ASIC上综合您的浮点设计。浮点设计具有更好的精度,更高的动态范围,以及比固定点设计更短的开发周期。如果您的设计具有复杂的数学和三角操作,请使用本机浮点技术。

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

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

解压缩块将浮点类型转换为标志,指数和尾数。在图中,S.E.,M.分别代表符号,指数和尾数。这种解释基于IEEE-754浮点算术标准。

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

启用本机浮点和生成代码

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

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

  1. 在里面应用选项卡,选择高密度脂蛋白编码器.这HDL代码标签出现。

  2. 点击设置.在里面HDL代码生成>浮点窗格,for.图书馆, 选择本地浮点

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

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

  5. 如果您的设计具有乘数,请指定希望HDL编码器如何实现乘法操作,请使用螳螂乘法器策略.看螳螂乘法器策略

  6. 分享浮点资源,在HDL代码生成>优化>资源共享选项卡,确保选中浮点IPS.共享的块的数量取决于SharingFactor您为子系统指定。

  7. 点击申请.在里面HDL代码选项卡,单击生成HDL代码

要在命令行生成HDL代码,请使用hdlcoder.createFloatingPointTargetConfig功能。您可以使用此功能来创建一个hdlcoder.floatingpointtargetconfig对象的原生浮点库。

nfpconfig = hdlcoder.createFloatingPointTargetConfig ('nativefloatingpoint');hdlset_param(“sfir_single”“FloatingPointTargetConfiguration”,nfpconfig);

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

nfpconfig.librarysettings.HandleDenormals ='在';nfpconfig.LibrarySettings.LatencyStrategy ='最大限度'

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

查看代码生成报告

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

要查看HDL编码器支持的本机浮点运算符列表和您的Simulink的浮点运算符金宝app金宝app®块映射到,在代码生成报告中选择本机浮点资源报告

详细报告显示了浮点块在您指定的目标设备上使用的各种资源。也可以看看创建和使用代码生成报告

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

分析结果

浮点运算符有延迟。如果您的Simu金宝applink模型没有延迟,当您生成HDL代码时,代码生成器会计算出操作员延迟和延迟平衡并行路径。考虑这个Simulink模型金宝app,它有两个单身的输入并给出一个单身的输出。

MATLAB函数块包含此代码。金宝app

函数Y = fcn(u, w)%#codegen.Y1 = (u+w) * 20;y2 = w ^ 16;Y3 = (u-w) / 10;Y = Y + Y - Y;

生成HDL代码时,代码生成器将Simulink模型中的块映射到可合成的本机浮点运算符。金宝app要了解代码生成器如何实现浮点操作,请打开生成的模型。块NFP MATH.NFP SQRT.,NFP三角对应于浮点的实现互惠SQRT.互惠,因为分别在原始模型中块。

每个浮点运算符都有一个延迟。代码生成器插入了一个额外的匹配延迟,因为互惠SQRT.30.和潜伏期互惠31..运算符延迟等于延迟长度延迟块内部NFP块。例如,如果双击NFP SQRT.阻止,您可以通过查看来获得延迟延迟长度延迟块。看浮点运算符的延迟值

当你使用时MATLAB函数块与浮点数据类型,HDL Coder使用MATLAB Datapath公司体系结构。这种架构处理MATLAB函数像普通的人一样子系统块。生成代码时,代码生成器将基本操作映射到相应的本机浮点运算符之类的添加和乘法。打开MATLAB函数来查看代码生成器是如何实现的MATLAB函数块。

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

局限性

要在本机浮点模式下生成HDL代码,请使用离散采样时间。不支持在连续采样时间操作的块。金宝app

也可以看看

建模指南

职能

相关例子

更多关于