块实现参数使您能够控制为特定块实现生成的代码的细节。看到设置和查看HDL模型和块参数了解如何在GUI或命令行中选择块实现和参数。
属性名称指定为字符向量。属性值的数据类型特定于该属性。本节介绍可以在中指定的每个块实现参数的语法本机浮点选项卡的HDL块属性。您可以看到指定参数如何影响生成的代码。
库块的HDL块属性的处理类似于掩码参数。在模型中实例化库块时,该库块的当前HDL块特性将复制到模型中该块的实例中。这些实例的HDL块属性与库块的HDL块属性不同步。也就是说,如果更改库块的HDL块特性,则更改不会传播到已添加到Simulink的库块实例金宝app®模型。如果您希望库块的HDL块属性与其模型中的实例同步,请创建子系统然后把这个方块放到里面子系统.驻留在库块中的块的HDL块属性与模型中的相应实例同步。
假设一个库包含一个子系统块,将HDL架构设置为模块
. 在模型中实例化此块时,块实例使用模块
作为HDL架构。的HDL架构子系统Block in the library to黑箱
,现有的实例子系统块在你的模型中仍然使用模块
作为HDL架构。如果现在添加子系统块,新的块实例将获得当前HDL块属性的副本,并因此使用黑箱
作为HDL架构。如果您想要子系统块与模型中的实例同步,创建一个具有您想要的HDL体系结构的包装器子系统子系统.
你可以使用CheckResetToZero财产国防部和雷姆的功能数学函数块在本机浮点模式。如果你有数字A.
和B
使商a / b
接近整数,此设置将A.
作为B
和快速眼动(a, b) = 0。计算结果与Simulink仿真结果吻合较好。金宝app但是,计算这个结果将使用额外的资源,并增加目标FPGA设备上的区域占用。
例如,对于这些数字集,当启用和禁用时,您将得到不同的模拟结果CheckResetToZero设置。
CheckResetToZero设置 | 描述 |
---|---|
“开” (默认) |
当你计算国防部或雷姆的两个数的商更接近整数,并且精度大于您使用的浮点数据类型的精度,HDL Coder™添加所需的逻辑来输出的结果国防部或雷姆当数的商接近整数时为零。 |
“关闭” |
HDL编码器不插入额外的逻辑来计算商,这节省了目标FPGA设备上的面积。 |
设置CheckResetToZero获取HDL块属性对话框中的块:
右键单击该块。
选择HDL代码HDL块属性.
对于CheckResetToZero中,选择在或从.
设置CheckResetToZero为数学函数块在子系统中,我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /数学”,'检查重置为零,'在')
hdlset_param
.
你可以使用DivisionAlgorithm
属性时启用本机浮点
模式分块和数学函数设置为倒数模式。
DivisionAlgorithm设置 | 描述 |
---|---|
基2 (默认) |
默认的基数2模式通过在每次迭代中计算一位商来执行重复减法。 要在权衡延迟的同时设计更低的区域使用,可以结合使用Radix-2模式和LatencyStrategy着手 |
基四 |
Radix-4模式通过在每次迭代中计算商的两位来执行重复的减法。为了计算结果,Radix-4模式使用的迭代次数是Radix-2模式所需的一半。 要在设计低延迟的同时权衡区域,请结合使用Radix-4模式和LatencyStrategy着手 |
单精度划分资源利用率和最大时钟频率赛灵思公司Virtex-7
DivisionAlgorithm模式 | LatencyStrategy | 延迟 | Fmax | 附近地区 | 寄存器 |
---|---|---|---|---|---|
基2 | 最小值 | 17 | 334.4兆赫 | 1248 | 1011 |
马克斯 | 32 | 454.5兆赫 | 1294 | 1797 | |
基四 | 最小值 | 11 | 245.5兆赫 | 1956 | 865 |
马克斯 | 20. | 453.1MHz | 1854 | 1522 |
指定DivisionAlgorithm获取HDL块属性对话框中的块:
右键单击该块。
选择HDL代码>HDL块属性.
在本机浮点选项卡中,指定DivisionAlgorithm.
指定DivisionAlgorithm对于命令行中的代码块,请使用hdlset_param
.例如,该命令为a指定Radix-4模式分块在子系统中,我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /鸿沟”,算法',“Radix-4”)
你可以使用HandleDenormals
中支持HDL代码生成的某些块的属性金宝app本机浮点
模式。非正数是指大小小于最小浮点数的数,可以在尾数中不带前导零表示。通过此设置,您可以指定是否希望HDL Coder插入额外的逻辑来处理设计中的正常数字。有关更多信息,请参见Denormal数字.
HandleDenormals设置 | 描述 |
---|---|
“继承” (默认) |
使用父子系统的句柄反法线设置。如果该子系统是最高级别的子系统,则使用模型的句柄dennormals设置。 |
“开” |
如果在这些块输入处有正规数字,HDL Coder会添加逻辑对这些正规数字进行规范化。 |
“关闭” |
在设计中,HDL编码器不插入额外的逻辑来处理普通数字。在执行任何计算之前,代码生成器将非正规值视为零。 |
要启用HandleDenormals
对于模型中的块,设置参数,HandleDenormals
,“开”
块。
要从“HDL块特性”对话框中设置块的句柄非规范化,请执行以下操作:
右键单击该块。
选择HDL代码>HDL块属性.
对于HandleDenormals中,选择继承,在,或从.
要从命令行设置块的句柄非规范化,请使用hdlset_param
. 例如,要为产品块在子系统中,我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,“HandleDenormals”,“开”)
hdlset_param
.
你可以使用InputRangeReduction财产罪,因为,棕褐色,要求,因为+ jsin的功能三角函数块在本机浮点
模式默认情况下,将为块启用此设置,并假定您的输入范围是无限的。如果块的输入在范围内有界[-pi,pi]
,您的设计不需要逻辑来减少输入范围。在这种情况下,您可以禁用此设置,并且块实现在目标硬件上产生更低的延迟和使用更少的资源。当您禁用该设置时,生成的模型将包含一个块,用于验证输入是否限定在范围内[-pi,pi]
如果您有无界输入,则生成的模型会在模拟期间触发断言。
InputRangeReduction设置 | 描述 |
---|---|
“开” (默认) |
假设输入范围是无界的,并插入额外的逻辑将输入参数范围缩小为 |
“关闭” |
假设输入参数限定在范围内 |
设置InputRangeReduction获取HDL块属性对话框中的块:
右键单击该块。
选择HDL代码HDL块属性.
在本机浮点选项卡,InputRangeReduction中,选择在或从.
禁用InputRangeReduction为三角函数块在子系统中,my_trigonometric
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut / my_trigonometric”,...“InputRangeReduction”,关‘)
hdlset_param
.
你可以使用LatencyStrategy
属性,用于支持定点和浮点类型的HDL代码生成的某些块。金宝app当您使用浮点类型时,设置浮点IP库来本机浮点
. 对于定点类型,该属性指定是要使用零延迟、最大延迟还是自定义延迟。对于浮点类型,该属性指定您希望设计中的块映射到运算符的最小、最大或自定义延迟。
后系统策略设置 | 描述 |
---|---|
“继承” (默认) |
使用父子系统的延迟策略设置。如果该子系统是最高级别的子系统,则使用模型的延迟策略设置。 |
“马克斯” |
在代码生成期间,HDL编码器使用本机浮点运算符的最大延迟值。 |
“最小值” |
在代码生成期间,HDL Coder为本机浮点运算符使用最小延迟值。 |
“零” |
在代码生成期间,HDL编码器不会为本机浮点运算符添加任何延迟。 |
“自定义” |
在代码生成期间,HDL Coder添加的延迟等于您指定的值CustomLatency或NFPCustomLatency本机浮点运算符的设置。您可以在本机浮点模式下对某些块使用此设置。要查看可以指定设置的块,请参见NFPCustomLatency. |
要指定模型中的块的最小延迟选项,请设置参数,LatencyStrategy
,“最小值”
块。
要了解如何设置模型级延迟策略设置,请参见使用本机浮点的延迟考虑.
使用定点类型时,可以指定LatencyStrategy对于这些块。
从HDL块属性对话框为子系统设置延迟策略:
在Simuli金宝appnk toolstrip中的应用程序选项卡上,选择高密度脂蛋白编码器.
选择块,并在HDL代码选项卡上,单击HDL块属性按钮。
在一般选项卡中,指定LatencyStrategy.如果你设置LatencyStrategy来自定义,则必须指定CustomLatency.
要从命令行指定块的延迟策略,请使用hdlset_param
. 例如,指定产品分系统内部的块我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,“LatencyStategy”,“马克斯”)
hdlset_param
.
从HDL块属性对话框为子系统设置延迟策略:
在Simuli金宝appnk toolstrip中的应用程序选项卡上,选择高密度脂蛋白编码器.
选择块,并在HDL代码选项卡上,单击HDL块属性按钮。
在本机浮点选项卡中,指定LatencyStrategy.如果你设置LatencyStrategy来自定义,则必须指定NFPCustomLatency.
有关详细信息,请参阅每个块页面的“HDL代码生成”部分。要了解可为其指定自定义延迟的块,请参阅NFPCustomLatency.
要从命令行指定块的延迟策略,请使用hdlset_param
. 例如,指定产品分系统内部的块我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,“LatencyStategy”,“最小值”)
hdlset_param
.
您可以为定点类型的某些块指定自定义延迟。通过使用自定义延迟策略,您可以在时钟频率和功耗之间进行权衡。要指定自定义延迟策略,请设置LatencyStrategy来风俗
并指定值为CustomLatency. 有关详细信息,请参阅每个块页面的“HDL代码生成”部分。
您可以指定CustomLatency用定点类型设置这些块。
从HDL块属性对话框为子系统设置自定义延迟值:
在Simuli金宝appnk toolstrip中的应用程序选项卡上,选择高密度脂蛋白编码器.
选择块,并在HDL代码选项卡上,单击HDL块属性按钮。
在一般选项卡,设置LatencyStrategy来自定义并指定值为CustomLatency.
要从命令行指定块的延迟策略,请使用hdlset_param
. 例如,要为一个产品分系统内部的块我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,“LatencyStategy”,“自定义”) hdlset_param (“my_design / my_dut /产品”,“CustomLatency”4)
hdlset_param
.
可以在本机浮点模式下为某些块指定自定义延迟。通过使用自定义延迟策略,您可以在时钟频率和功耗之间进行权衡。要指定自定义延迟策略,请设置LatencyStrategy来自定义
并指定值为NFPCustomLatency. 有关详细信息,请参阅每个块页面的“HDL代码生成”部分。
您可以指定NFPCustomLatency设置这些块与两者单
和双
数据类型。
你也可以指定NFPCustomLatency设置这些块单
数据类型。
从HDL块属性对话框为子系统设置自定义延迟值:
右键单击该块。
选择HDL代码>HDL块属性.
在本机浮点选项卡,LatencyStrategy中,选择自定义.
的值NFPCustomLatency.
要从命令行指定块的延迟策略,请使用hdlset_param
. 例如,要为一个产品分系统内部的块我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,“LatencyStategy”,“自定义”) hdlset_param (“my_design / my_dut /产品”,“NFPCustomLatency”4)
hdlset_param
.
你可以使用MantissaMultiplyStrategy
属性用于在本机浮点模式下支持HDL代码生成的乘数。金宝app具有此设置的块包括产品,分,数学函数(在互惠模式下),等等。通过使用此设置,您可以指定希望HDL Coder如何实现块的尾数乘法操作。
MantissaMultiplyStrategy设置 | 描述 |
---|---|
“继承” (默认) |
使用父子系统的尾数乘法策略设置。如果此子系统是最高级别的子系统,请使用模型的尾数乘法策略设置。 |
“FullMultiplier” |
HDL编码器使用乘法器对本机浮点运算符执行尾数乘法运算。乘法器可以利用目标设备上的DSP单元。 |
“PartMultiplierPartAddShift” |
HDL编码器将实现分为两部分。一部分是用乘数实现的。另一部分采用加法器和移位器的组合实现。乘法器可以利用目标设备上的DSP单元。加法器和移位器的组合不使用DSP。 |
“NoMultiplierFullAddShift” |
HDL编码器采用加法器和移位器实现尾数乘法。此选项不使用目标设备上的DSP单元。如果目标设备不包含DSP单元,也可以使用此选项。 |
要用加法器和移位器实现尾数乘法,设置MantissaMultiplyStrategy
,“NoMultiplierFullAddShift”
块。
要从“HDL块属性”对话框为子系统设置自适应管道,请执行以下操作:
右键单击该块。
选择HDL代码>HDL块属性.
在本机浮点选项卡,MantissaMultiplyStrategy中,选择继承,FullMultiplier,PartMultiplierPartAddShift,或NoMultiplierFullAddShift.
要从命令行指定块的尾数乘法策略,请使用hdlset_param
.例如,使用加法器和移位器实现尾数乘法产品分系统内部的块我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,...“尾数多重系统策略”,“PartMultiplierPartAddShift”)
hdlset_param
.
你可以使用最大迭代次数
财产国防部和雷姆的功能数学函数块在本机浮点
模式。如果你有数字A.
和B
如果是非常大的整数,可以增加最大迭代次数设置以匹配Simulink仿真结果。金宝app但是,计算这个结果将使用额外的资源,并增加目标FPGA设备上的区域占用。
MaxIterations设置 | 描述 |
---|---|
32 (默认) |
要计算的结果的默认迭代次数国防部和雷姆作用于 |
64 |
指定 |
128 |
指定 |
设置最大迭代次数获取HDL块属性对话框中的块:
右键单击该块。
选择HDL代码>HDL块属性.
在本机浮点选项卡,最大迭代次数中,选择32,64,或128.
要从命令行设置块的句柄非规范化,请使用hdlset_param
. 例如,要为产品块在子系统中,我的爸爸
在Simulin金宝appk模型中my_design
:
hdlset_param (“my_design / my_dut /产品”,“HandleDenormals”,“开”)
hdlset_param
.