主要内容

HDL块属性:本机浮点

概述

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

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

库块的HDL块属性

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

假设一个图书馆包含一个子系统块与HDL架构设置为模块.当您在模型中实例化此块时,块实例使用模块作为HDL架构。的HDL架构子系统块在图书馆到黑盒子,现有的例子子系统块在您的模型中仍然使用模块作为HDL架构。的实例子系统块,新的块实例将获得当前HDL块属性的副本,并因此使用黑盒子作为HDL架构。如果你想要的HDL架构子系统块与模型中的实例同步,创建一个具有您想要的HDL体系结构的包装器子系统子系统

CheckResetToZero

你可以使用CheckResetToZero物业为国防部快速眼动的功能数学函数块在本机浮点模式。如果你有数字一个b使商A / B.是否接近整数,该设置如何处理一个的整数倍b和快速眼动(a, b) = 0。计算结果与Simulink仿真结果吻合较好。金宝app但是,计算这个结果将使用额外的资源,并增加目标FPGA设备上的区域占用。

例如,对于这些数字集,当您启用和禁用时,您可以获得不同的仿真结果CheckResetToZero设置。

Checkresettozero设置 描述
“上”(默认)

当你计算时国防部或者快速眼动两个数字的商品更接近整数,并且具有大于所使用的浮点数据类型的精度,HDL Coder™增加了所需的逻辑以输出结果国防部或者快速眼动当数的商接近整数时为零。

“关闭”

HDL编码器不会插入附加逻辑以计算额写的商品,以便在目标FPGA设备上保存区域。

为数学函数块设置CheckResetToZero

设置CheckResetToZero获取HDL块属性对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码高密度脂蛋白块属性

  3. CheckResetToZero, 选择或者离开

设置CheckResetToZero数学函数块在子系统内,my_dut在你的Simul金宝appink模型中my_design

hdlset_param(“my_design / my_dut /数学”“CheckResetToZero”,在')
另请参阅hdlset_param

DivisionAlgorithm

你可以使用DivisionAlgorithm属性。本地浮点模式的模式块和数学函数设置为倒数模式。

DivisionAlgorithm设置 描述
Radix-2(默认)

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

在交易延迟交易时设计较低区域使用,请使用基数-2模式。

Radix-4

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

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

单精度划分资源利用率和最大时钟频率赛灵思公司Virtex-7

DivisionAlgorithm模式 LatencyStrategy 延迟 Fmax luts. 寄存器
Radix-2 17. 334.4兆赫 1248 1011
最大限度 32 454.5MHz. 1294 1797
Radix-4 11. 245.5MHz. 1956 865
最大限度 20. 453.1兆赫 1854 1522

为数学函数或除法块指定除法算法

指定DivisionAlgorithm获取HDL块属性对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码>高密度脂蛋白块属性

  3. 在里面本地浮点选项卡中,指定DivisionAlgorithm

指定DivisionAlgorithm对于命令行中的代码块,请使用hdlset_param.例如,该命令为a指定Radix-4模式块在子系统内,my_dut在你的Simul金宝appink模型中my_design

hdlset_param(“my_design / my_dut /鸿沟”,DivisionAlgorithm’,“Radix-4”

Handledentenals.

你可以使用Handledentenals.某些支持HDL代码生成的块的属性金宝app本地浮点模式。字体数字是具有少于最小浮点数的大小的数字,可以在没有尾数的领先零的情况下表示的最小浮点数。使用此设置,您可以指定是否要HDL编码器插入其他逻辑以处理您设计中的非正规数字。有关更多信息,请参阅Denormal数字

扶手环境设置 描述
“继承”(默认)

使用父子系统的句柄字体设置。如果此子系统是最高级别的子系统,请使用模型的句柄字体设置。

“上”

如果在这些块输入处有正规数字,HDL Coder会添加逻辑对这些正规数字进行规范化。

“关闭”

HDL编码器不会插入附加逻辑以在您的设计中处理非正规数字。在执行任何计算之前,代码生成器将非正规值视为零。

要启用Handledentenals.对于模型中的块,设置参数,Handledentenals.,“上”对于那个街区。

为块设置句柄字体

要从HDL块属性对话框中设置块的句柄反normals:

  1. 右键单击该块。

  2. 选择HDL代码>高密度脂蛋白块属性

  3. Handledentenals., 选择继承,或离开

若要从命令行设置块的句柄非正常值,请使用hdlset_param.例如,要启用自适应管道产品块在子系统内,my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product''anclowlevals'“上”
另请参阅hdlset_param

InputRangeReduction

你可以使用InputRangeReduction物业为cos棕褐色要求, 和因为+ jsin的功能三角函数本地浮点模式。默认情况下,该设置对块是启用的,并且它假定您的输入范围是无界的。如果你对块的输入是有界的(π-π,),您的设计不需要逻辑来减少输入范围。在这种情况下,您可以禁用此设置,并且块实现会导致较低的延迟,并在目标硬件上使用更少的资源。禁用设置时,生成的模型包含一个块,验证输入是否在该范围内界定(π-π,)如果您有无界输入,则生成的模型会在模拟期间触发断言。

InputRangereduction设置 描述
“上”(默认)

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

“关闭”

假设输入参数限定在范围内(π-π,)并且没有插入额外的逻辑以减少输入参数的范围。这个实现减少了延迟并节省了目标平台上的面积。

为三角函数块设置InputRangereduction

设置InputRangeReduction获取HDL块属性对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码高密度脂蛋白块属性

  3. 在里面本地浮点选项卡,InputRangeReduction, 选择或者离开

禁用InputRangeReduction三角函数块在子系统内,my_trigonometric在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / my_trogonometric'...'InputRangereduction,'”)
另请参阅hdlset_param

LatencyStrategy

你可以使用LatencyStrategy属性,用于支持定点和浮点类型的HDL代码生成的某些块。金宝app当您使用浮点类型时,设置浮点IP库本地浮点.对于定点类型,该属性指定零、最大或自定义延迟。对于浮点类型,该属性指定块是映射到操作符的最小、最大还是自定义延迟。

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

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

“马克斯”

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

“最小值”

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

'零'

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

'风俗'

在代码生成期间,HDL Coder添加的延迟等于您指定的值CustomLatency.或者NFPCustomLatency本机浮点运算符的设置。您可以在本机浮点模式下对某些块使用此设置。要查看可以指定设置的块,请参见NFPCustomLatency

要指定模型中的块的最小延迟选项,请设置参数,LatencyStrategy,“最小值”对于那个街区。

要了解如何设置模型级延迟策略设置,请参阅使用本机浮点的延迟考虑

设置定点块的延迟策略

使用定点类型时,可以指定LatencyStrategy对于这些块。

  • 互惠块有ShiftAdd作为HDL架构。

  • SQRT.块有SqrtFunction作为HDL架构。

  • 三角函数块有功能设置为cos要求因为+ jsin,或atan2.近似法作为CORDIC

从“HDL块属性”对话框中设置子系统的延迟策略:

  1. 在Simuli金宝appnk工具条中,在应用程序选项卡,选择高密度脂蛋白编码器

  2. 选择块,并在HDL代码选项卡,单击高密度脂蛋白块属性按钮。

  3. 在里面一般选项卡中,指定LatencyStrategy.如果你设置LatencyStrategy自定义,则必须指定CustomLatency.

从命令行指定块的延迟策略,使用hdlset_param.例如,要指定的最小延迟产品分系统内部的块my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product'“LatencyStategy”“马克斯”
另请参阅hdlset_param

设置浮点块的延迟策略

从“HDL块属性”对话框中设置子系统的延迟策略:

  1. 在Simuli金宝appnk工具条中,在应用程序选项卡,选择高密度脂蛋白编码器

  2. 选择块,并在HDL代码选项卡,单击高密度脂蛋白块属性按钮。

  3. 在里面本地浮点选项卡中,指定LatencyStrategy.如果你设置LatencyStrategy自定义,则必须指定NFPCustomLatency

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

从命令行指定块的延迟策略,使用hdlset_param.例如,要指定的最小延迟产品分系统内部的块my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product'“LatencyStategy”“最小值”
另请参阅hdlset_param

CustomLatency.

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

您可以指定CustomLatency.用定点类型设置这些块。

  • 互惠块有ShiftAdd作为HDL架构。

  • SQRT.块有SqrtFunction作为HDL架构。

  • 三角函数块有功能设置为cos要求因为+ jsin,或atan2.近似法作为CORDIC

设置块的自定义延迟值

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

  1. 在Simuli金宝appnk工具条中,在应用程序选项卡,选择高密度脂蛋白编码器

  2. 选择块,并在HDL代码选项卡,单击高密度脂蛋白块属性按钮。

  3. 在里面一般标签,设置LatencyStrategy自定义并指定值CustomLatency.

从命令行指定块的延迟策略,使用hdlset_param.例如,要指定自定义延迟为4产品分系统内部的块my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product'“LatencyStategy”'风俗')hdlset_param('my_design / my_dut / product'“CustomLatency”4)
另请参阅hdlset_param

NFPCustomLatency

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

您可以指定NFPCustomLatency为这两种块设置数据类型。

您还可以指定一个NFPCustomLatency设置这些块数据类型。

设置块的自定义延迟值

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

  1. 右键单击该块。

  2. 选择HDL代码>高密度脂蛋白块属性

  3. 在里面本地浮点选项卡,LatencyStrategy, 选择自定义

  4. 指定值的值NFPCustomLatency

从命令行指定块的延迟策略,使用hdlset_param.例如,要指定自定义延迟为4产品分系统内部的块my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product'“LatencyStategy”'风俗')hdlset_param('my_design / my_dut / product''nfpcustomlatency'4)
另请参阅hdlset_param

MantissaMultiplyStrategy

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

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

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

'fullu pliprier'

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

“PartMultiplierPartAddShift”

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

“NoMultiplierFullAddShift”

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

要用加法器和移位器实现尾数乘法,设置MantissaMultiplyStrategy,“NoMultiplierFullAddShift”对于那个街区。

设置块的尾数乘策略

要从HDL块属性对话框中为子系统设置自适应管道:

  1. 右键单击该块。

  2. 选择HDL代码>高密度脂蛋白块属性

  3. 在里面本地浮点选项卡,MantissaMultiplyStrategy, 选择继承FullMultiplierpartmultiplierpartaddshift,或NoMultiplierFullAddShift

若要从命令行指定块的尾数乘策略,请使用hdlset_param.例如,要使用加法器和移位器实现Mantissa乘法产品分系统内部的块my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product'...“MantissaMultiplyStrategy”“PartMultiplierPartAddShift”
另请参阅hdlset_param

MaxIterations

你可以使用MaxIterations物业为国防部快速眼动的功能数学函数本地浮点模式。如果你有数字一个b非常大的整数,你可以增加MaxIterations设置以匹配Simulink仿真结果。金宝app但是,计算这个结果将使用额外的资源,并增加目标FPGA设备上的区域占用。

MaxIterations设置 描述
32(默认)

要计算的结果的默认迭代次数国防部快速眼动函数本地浮点模式。这种实现可能会导致与大整数的Simulink模拟结果的数值不匹配。金宝app

64

指定64为计算结果的迭代次数国防部快速眼动函数本地浮点模式。在这种模式下,对于显著较大的整数,实现与Simulink仿真结果匹配的概率更高,但可以使用更多的硬件资源。金宝app

128

指定128为计算结果的迭代次数国防部快速眼动函数本地浮点模式。在这种模式下,实现与大整数的Simulink仿真结果相匹配,但使用更多的硬件资源。金宝app

设置数学函数块的MaxIterations

设置MaxIterations获取HDL块属性对话框中的块:

  1. 右键单击该块。

  2. 选择HDL代码>高密度脂蛋白块属性

  3. 在里面本地浮点选项卡,MaxIterations, 选择3264,或128

若要从命令行设置块的句柄非正常值,请使用hdlset_param.例如,要启用自适应管道产品块在子系统内,my_dut在你的Simul金宝appink模型中my_design

hdlset_param('my_design / my_dut / product''anclowlevals'“上”
另请参阅hdlset_param

相关的例子

更多关于