主要内容

HDL块属性:原生浮点数

概述

块实现参数使您能够控制为特定块实现生成的代码的详细信息。看见设置和查看HDL模型和块参数了解如何在GUI或命令行中选择块实现和参数。

属性名称指定为字符向量。属性值的数据类型特定于该属性。本节介绍可以在中指定的每个块实现参数的语法本机浮点HDL块属性的选项卡。您可以看到指定参数如何影响生成的代码。

库块的HDL块属性

库块的HDL块属性的处理类似于掩码参数。在模型中实例化库块时,该库块的当前HDL块特性将复制到模型中该块的实例中。这些实例的HDL块属性与库块的HDL块属性不同步。也就是说,如果更改库块的HDL块特性,则更改不会传播到已添加到Simulink的库块实例金宝app®模型如果希望库块的HDL块特性与其模型中的实例同步,请创建子系统然后把这个方块放到里面子系统. 驻留在库块内的块的HDL块特性与模型中的相应实例同步。

假设一个库包含一个子系统块,将HDL架构设置为单元. 在模型中实例化此块时,块实例使用单元作为HDL架构。如果您更改子系统Block in the library to黑箱,现有的实例子系统块在你的模型中仍然使用单元作为HDL架构。如果现在添加子系统块从模型中的库中,新块实例将获得当前HDL块特性的副本,因此使用黑箱作为HDL架构。如果您想要子系统库中的块与模型中的实例同步,创建一个包装子系统,其中包含您想要的HDL架构子系统

检查重置为零

你可以使用检查重置为零财产摩登派青年雷姆委员会的职能数学函数本机浮点模式下的块。如果你有号码A.B这样的商a / b接近整数,此设置将A.作为B,和rem(a,b)=0。该结果在数值上是精确的,并且与Simulink模拟结果相匹配。但是,计算此结果会使用额外的资源,并增加目标FPGA金宝app设备上的占地面积。

例如,对于这些数字集,当启用和禁用时,您将得到不同的模拟结果检查重置为零背景

CheckResetToZero设置 描述
“开”(默认)

当你计算摩登派青年雷姆的两个数的商更接近整数,并且精度大于您使用的浮点数据类型的精度,HDL Coder™添加所需的逻辑来输出的结果摩登派青年雷姆当数的商接近整数时,为零。

“关”

HDL编码器不插入额外的逻辑来计算商,这节省了目标FPGA设备上的面积。

将数学功能块的CHECKRESET设置为零

设置检查重置为零对于“HDL块特性”对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码HDL块属性

  3. 对于检查重置为零中,选择

设置检查重置为零为了数学函数块在子系统中,我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param ('my_design / my_dut / math','检查重置为零,'关于‘’
另见hdlset_参数

分割算法

你可以使用分割算法属性时启用本机浮点模式街区和数学函数反向模式下的块。

分区算法设置 描述
基2(默认)

默认的基数2模式通过在每次迭代中计算一位商来执行重复减法。

要在考虑延迟的同时设计更低的区域使用量,请使用Radix-2模式。

基四

Radix-4模式通过在每次迭代中计算商的两位来执行重复的减法。为了计算结果,Radix-4模式使用的迭代次数是Radix-2模式所需的一半。

要设计较低的延迟,同时权衡区域,请使用Radix-4模式。

上的单精度除法资源利用率和最大时钟频率锡林克斯Virtex-7

分割算法模式 后系统战略 延迟 Fmax 附近地区 寄存器
基2 最小值 17 334.4MHz 1248 1011
马克斯 32 454.5兆赫 1294 1797
基四 最小值 11 245.5兆赫 1956 865
马克斯 20 453.1MHz 1854 1522

为数学函数或分区块指定DivIonionGorithm

指明分割算法对于“HDL块特性”对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码>HDL块属性

  3. 本机浮点选项卡,指定分割算法

指明分割算法对于命令行的块,使用hdlset_参数。例如,此命令指定了块在子系统中,我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param ('my_design / my_dut / divide,'算法',“基数-4”)

HandleDenormals

你可以使用HandleDenormals中支持HDL代码生成的某些块的属性金宝app本机浮点模式。非正数是指大小小于最小浮点数的数,可以在尾数中不带前导零表示。通过此设置,您可以指定是否希望HDL Coder插入额外的逻辑来处理设计中的正常数字。有关更多信息,请参见非规范数

HandleDenormals设置 描述
“继承”(默认)

使用父子系统的句柄反法线设置。如果该子系统是最高级别的子系统,则使用模型的句柄dennormals设置。

“开”

如果在这些块输入处有非规范数字,HDL编码器将添加逻辑以规范化非规范数字。

“关”

在设计中,HDL编码器不插入额外的逻辑来处理普通数字。在执行任何计算之前,代码生成器将非正规值视为零。

使能HandleDenormals对于模型中的块,设置参数,HandleDenormals“开”块。

设置块的句柄反normals

要从“HDL块特性”对话框中设置块的句柄非规范化,请执行以下操作:

  1. 右键单击该块。

  2. 选择HDL代码>HDL块属性

  3. 对于HandleDenormals中,选择继承,

要从命令行设置块的句柄非规范化,请使用hdlset_参数. 例如,要为产品块在子系统中,我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,“HandleDenormals”,“开”)
另见hdlset_参数

输入量程还原

你可以使用输入量程还原财产,因为,晒黑,,cos+jsin委员会的职能三角函数块在本机浮点模式默认情况下,将为块启用此设置,并假定您的输入范围是无限的。如果块的输入在范围内有界[-pi,pi],您的设计不需要逻辑来缩小输入范围。在这种情况下,您可以禁用此设置,块实现会产生较低的延迟,并在目标硬件上使用较少的资源。禁用该设置时,生成的模型包含一个块,用于验证输入是否在该范围内有界[-pi,pi]。如果您有无限的输入,则生成的模型会在模拟期间触发断言。

InputRangeReduction设置 描述
“开”(默认)

假设输入范围是无界的,并插入额外的逻辑以将输入参数范围缩小为[-pi,pi]在计算算法之前。

“关”

假设输入参数在范围内有界[-pi,pi]并且不会插入附加逻辑以减少输入参数范围。此实现可降低目标平台上的延迟和保存区域。

设置三角函数块的InputRangeReduction

设置输入量程还原对于“HDL块特性”对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码HDL块属性

  3. 本机浮点选项卡,用于输入量程还原中,选择

禁用输入量程还原为了三角函数块在子系统中,my_三角函数在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut / my_trigonometric”,...“InputRangeReduction”,关‘)
另见hdlset_参数

后系统战略

你可以使用后系统战略支持定点和浮点类型的HDL代码生成的某些块的属性。使用浮点类型时,金宝app请设置浮点IP库本机浮点. 对于定点类型,该属性指定零、最大或自定义延迟。对于浮点类型,该属性指定块映射到运算符的最小、最大或自定义延迟。

后系统策略设置 描述
“继承”(默认)

使用父子系统的延迟策略设置。如果此子系统是最高级别的子系统,请使用模型的延迟策略设置。

“马克斯”

在代码生成期间,HDL编码器使用本机浮点运算符的最大延迟值。

“敏”

在代码生成期间,HDL编码器使用本机浮点运算符的最小延迟值。

“零”

在代码生成期间,HDL编码器不会为本机浮点运算符添加任何延迟。

“自定义”

在代码生成过程中,HDL编码器添加的延迟等于您为其指定的值CustomLatencyNFPCustomLatency本机浮点运算符的设置。可以在本机浮点模式下对某些块使用此设置。要查看可以为其指定设置的块,请参见NFPCustomLatency

要指定模型中块的最小延迟选项,请设置参数,后系统战略“敏”块。

要了解如何设置模型级延迟策略设置,请参见本机浮点的延迟注意事项

设置定点块的延迟策略

使用固定点类型时,可以指定后系统战略对于这些街区。

  • 互惠的块,希夫塔德作为HDL架构。

  • √6块,SQRTF函数作为HDL架构。

  • 三角函数块,函数着手,因为,,cos+jsin量化近似方法

从HDL块属性对话框为子系统设置延迟策略:

  1. 在Simuli金宝appnk toolstrip中的应用程序选项卡上,选择HDL编码器

  2. 选择块,然后在HDL代码选项卡上,单击HDL块属性按钮。

  3. 全体的选项卡,指定后系统战略.如果你设置了后系统战略风俗,则必须为CustomLatency

要从命令行指定块的延迟策略,请使用hdlset_参数. 例如,指定产品子系统内部的块我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,“后期系统策略”,“马克斯”)
另见hdlset_参数

设置浮点块的延迟策略

从HDL块属性对话框为子系统设置延迟策略:

  1. 在Simuli金宝appnk toolstrip中的应用程序选项卡上,选择HDL编码器

  2. 选择块,然后在HDL代码选项卡上,单击HDL块属性按钮。

  3. 本机浮点选项卡,指定后系统战略.如果你设置了后系统战略风俗,则必须为NFPCustomLatency

有关详细信息,请参阅每个块页面的“HDL代码生成”部分。要了解可为其指定自定义延迟的块,请参阅NFPCustomLatency

要从命令行指定块的延迟策略,请使用hdlset_参数. 例如,指定产品子系统内部的块我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,“后期系统策略”,“敏”)
另见hdlset_参数

CustomLatency

您可以为固定点类型的某些块指定自定义延迟。通过使用自定义延迟策略,您可以在时钟频率和功耗之间进行权衡。指定自定义延迟策略,设置后系统战略风俗并指定值为CustomLatency. 有关详细信息,请参阅每个块页面的“HDL代码生成”部分。

您可以指定CustomLatency设置这些具有定点类型的块。

  • 互惠的块,希夫塔德作为HDL架构。

  • √6块,SQRTF函数作为HDL架构。

  • 三角函数块,函数着手,因为,,cos+jsin量化近似方法

设置块的自定义延迟值

从HDL块属性对话框为子系统设置自定义延迟值:

  1. 在Simuli金宝appnk toolstrip中的应用程序选项卡上,选择HDL编码器

  2. 选择块,然后在HDL代码选项卡上,单击HDL块属性按钮。

  3. 全体的选项卡,设置后系统战略风俗并指定值为CustomLatency

要从命令行指定块的延迟策略,请使用hdlset_参数. 例如,要为一个产品子系统内部的块我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,“后期系统策略”,“自定义”) hdlset_param (“my_design / my_dut /产品”,“自定义延迟”, 4)
另见hdlset_参数

NFPCustomLatency

可以在本机浮点模式下为某些块指定自定义延迟。通过使用自定义延迟策略,您可以在时钟频率和功耗之间进行权衡。要指定自定义延迟策略,请设置后系统战略风俗并指定值为NFPCustomLatency. 有关详细信息,请参阅每个块页面的“HDL代码生成”部分。

您可以指定NFPCustomLatency设置这些块与两者仅有一个的双重的数据类型。

你也可以指定NFPCustomLatency为这些块设置仅有一个的数据类型。

设置块的自定义延迟值

从HDL块属性对话框为子系统设置自定义延迟值:

  1. 右键单击该块。

  2. 选择HDL代码>HDL块属性

  3. 本机浮点选项卡,用于后系统战略中,选择风俗

  4. 的值NFPCustomLatency

要从命令行指定块的延迟策略,请使用hdlset_参数. 例如,要为一个产品子系统内部的块我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,“后期系统策略”,“自定义”) hdlset_param (“my_design / my_dut /产品”,“NFPCustomLatency”, 4)
另见hdlset_参数

mantissamultiplystrategy.

你可以使用mantissamultiplystrategy.属性用于在本机浮点模式下支持HDL代码生成的乘数。金宝app具有此设置的块包括产品,,数学函数(在互惠模式下),等等。通过使用此设置,您可以指定希望HDL编码器如何实现块的尾数乘法运算。

尾数多系统策略设置 描述
“继承”(默认)

使用父子系统的尾数乘法策略设置。如果此子系统是最高级别的子系统,请使用模型的尾数乘法策略设置。

“FullMultiplier”

HDL编码器使用乘法器对本机浮点运算符执行尾数乘法运算。乘法器可以利用目标设备上的DSP单元。

“PartMultiplierPartAddShift”

HDL编码器将实现分为两部分。一部分是用乘数实现的。另一部分采用加法器和移位器的组合实现。乘法器可以利用目标设备上的DSP单元。加法器和移位器的组合不使用DSP。

“NoMultiplierFullAddShift”

HDL编码器采用加法器和移位器实现尾数乘法。此选项不使用目标设备上的DSP单元。如果目标设备不包含DSP单元,也可以使用此选项。

用加法器和移位器实现尾数乘法,设置mantissamultiplystrategy.“NoMultiplierFullAddShift”块。

设置块的尾数乘法策略

要从“HDL块属性”对话框为子系统设置自适应管道,请执行以下操作:

  1. 右键单击该块。

  2. 选择HDL代码>HDL块属性

  3. 本机浮点选项卡,用于mantissamultiplystrategy.中,选择继承,fullu pliprier,PartMultiplierPartAddShiftNoMultiplierFullAddShift

要从命令行指定块的尾数乘法策略,请使用hdlset_参数.例如,使用加法器和移位器实现尾数乘法产品子系统内部的块我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,...“尾数多重系统策略”,“PartMultiplierPartAddShift”)
另见hdlset_参数

最大迭代次数

你可以使用最大迭代次数财产摩登派青年雷姆委员会的职能数学函数块在本机浮点模式如果你有号码A.B如果是非常大的整数,可以增加最大迭代次数设置以匹配Simulink模拟结果。但是,金宝app计算此结果会使用额外的资源并增加目标FPGA设备上的面积占用。

MaxIterations设置 描述
32(默认)

要计算结果的默认迭代次数摩登派青年雷姆作用于本机浮点模式对于大整数,此实现可能会导致与Simulink模拟结果的数值不匹配。金宝app

64

具体说明64作为计算结果的迭代次数摩登派青年雷姆作用于本机浮点模式。在这种模式下,对于显著较大的整数,实现与Simulink仿真结果匹配的概率更高,但可以使用更多的硬件资源。金宝app

128

具体说明128作为计算结果的迭代次数摩登派青年雷姆作用于本机浮点模式在这种模式下,实现与大整数的Simulink模拟结果相匹配,但使用更多的硬件资源。金宝app

为数学功能块设置MaxIterations

设置最大迭代次数对于“HDL块特性”对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码>HDL块属性

  3. 本机浮点选项卡,用于最大迭代次数中,选择32,64128

要从命令行设置块的句柄非规范化,请使用hdlset_参数. 例如,要为产品块在子系统中,我的爸爸在Simulin金宝appk模型中我的设计:

hdlset_param (“my_design / my_dut /产品”,“HandleDenormals”,“开”)
另见hdlset_参数

相关实例

更多关于