用一个输入除以另一个输入
金宝appSimulink /数学运算
HDL编码器/ HDL浮点运算
HDL编码器/数学运算
的分块输出其第一个输入除以第二个输入的结果。输入可以是标量,一个标量和一个非标量,或者两个具有相同维数的非标量。当所有端口具有相同的单金宝app或双数据类型时,此块仅支持分隔端口的复杂输入值。
的分块在功能上是产品预置两个块参数值的块:
乘法,Element-wise (. *)
输入数量-*/
为这些参数中的任何一个设置非默认值都可能改变分块在功能上等价于产品块或产品的元素块。
X
-输入信号相乘输入信号与其他输入信号相乘。
启用一个或多个X端口,指定一个或多个*
字符的输入数量参数。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
÷
—输入信号进行分割或逆变用于除法或反转运算的输入信号。
启用一个或多个÷端口,指定一个或多个/
字符的输入数量参数。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
Port_1
-第一个输入乘法或除法第一个乘法或除法的输入,作为标量、向量、矩阵或N-D数组提供。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
Port_N
-第n个输入要乘或除第n个输入以乘以或分割,作为标量,矢量,矩阵或n-D阵列。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
Port_1
-通过对输入进行乘法、除法或反运算来计算的输出通过对输入进行乘法、除法或逆运算而得到的输出。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
输入数量
-控制输入数量和操作类型*/
(默认)|正整数标量|*
或/
对于每个输入端口控制块的两个属性:
块上输入端口的数量
每个输入是乘以还是除以输出
当您指定:
1
或*
或/
块有一个输入端口。在元素方向模式中,块按照产品的元素块。在矩阵模式下,如果参数值为1
或*
时,块输出输入值。如果值为/
,输入必须是方阵(包括作为退化情况的标量),块输出矩阵的逆。看到Element-Wise模式和矩阵模式为更多的信息。
整型值> 1
该块具有由整数值给出的输入数量。按元素方式或矩阵方式将输入相乘,由乘法参数。看到Element-Wise模式和矩阵模式为更多的信息。
两个或多个未加引号的字符串*
和/
字符
该块的输入数量由字符向量的长度给出。对应于a的每个输入*
字符乘入输出。对应于a的每个输入/
字符分为输出。属性指定的操作在元素方向模式或矩阵模式下进行乘法参数。看到Element-Wise模式和矩阵模式为更多的信息。
块参数:输入 |
类型:特征向量 |
价值观:'2'|'*'|'**'|'* /'|'* / *'|... |
默认值:“* /” |
乘法
-元素(.*)或矩阵(*)乘法Element-wise (. *)
(默认)|矩阵(*)
指定块是否执行Element-wise (. *)
或矩阵(*)
乘法。
块参数:乘法 |
类型:特征向量 |
价值观:Element-wise(. *) |“矩阵(*)” |
默认值:“Element-wise(. *)” |
用在
-所有尺寸或指定尺寸所有维度
(默认)|指定的尺寸
指定要乘为的维度所有维度
,或指定的尺寸
.当您选择指定的尺寸
,可以指定维作为1
或2
.
要启用该参数,请设置输入数量来*
和乘法来Element-wise (. *)
.
块参数:CollapseMode |
类型:特征向量 |
价值观:'所有尺寸' | '指定尺寸' |
默认值:“所有维度” |
维
-要乘以的维度1
(默认)|2
|...
|N
指定要乘上的维数为小于或等于输入信号的维数的整数。
要启用该参数,请设置:
输入数量来*
乘法来Element-wise (. *)
用在来指定的尺寸
块参数:CollapseDim |
类型:特征向量 |
价值观:'1' | '2' |… |
默认值:' 1 ' |
要求所有输入具有相同的数据类型
-要求所有输入具有相同的数据类型从
(默认)|在
指定输入信号是否必须具有相同的数据类型。如果启用此参数,则如果输入信号类型不同,则在模拟过程中发生错误。
块参数:InputSamedt. |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
输出最小
—范围检查的最小输出值[]
(默认)|标量降低Simulink的输出范围值金宝app®检查。
金宝appSimulink使用最小值来执行:
参数范围检查(参见指定块参数的最小值和最大值)为一些街区。
定点数据类型的自动缩放。
优化您从模型生成的代码。这种优化可以删除算法代码,并影响某些模拟模式(如SIL或外部模式)的结果。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码).
请注意
输出最小不饱和或剪辑实际输出信号。使用饱和块来代替。
块参数:OutMin |
类型:特征向量 |
值:“[]” |标量 |
默认的:“[]” |
输出最大
—范围检查的最大输出值[]
(默认)|标量Simulink检查的输出范围的上限值。金宝app
金宝appSimulink使用最大值来执行:
参数范围检查(参见指定块参数的最小值和最大值)为一些街区。
定点数据类型的自动缩放。
优化您从模型生成的代码。这种优化可以删除算法代码,并影响某些模拟模式(如SIL或外部模式)的结果。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码).
请注意
输出最大不饱和或剪辑实际输出信号。使用饱和块来代替。
块参数:OutMax |
类型:特征向量 |
值:“[]” |标量 |
默认的:“[]” |
输出数据类型
—指定输出数据类型继承:通过内部规则继承
(默认)|继承:通过反向传播继承
|继承:与第一次输入相同
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
选择输出的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType
.有关更多信息,请参见控制信号数据类型.
当您选择继承的选项时,块的行为如下:
继承:通过内部规则继承
- 金宝appSimulink选择一个数据类型来平衡数字精度、性能和生成的代码大小,同时考虑嵌入式目标硬件的属性。如果更改内嵌目标设置,则内部规则选择的数据类型可能会更改。例如,如果块乘以一个类型为int8
获得int16
和ASIC / FPGA
指定为目标硬件类型,输出数据类型为sfix24
.如果未指定(假设32位通用)
,换句话说,一个通用的32位微处理器,被指定为目标硬件,输出数据类型为int32
.如果目标微处理器提供的单词长度都不能容纳输出范围,Simulink软件会在诊断查看器中显示一个错误。金宝app
软件并不总是可以同时优化代码效率和数值准确性。如果内部规则不符合您对数值准确性或性能的特定需求,请使用以下选项之一:
继承:通过反向传播继承
—使用驱动块的数据类型。
继承:与第一次输入相同
—使用第一输入信号的数据类型。
块参数:OutDataTypeStr |
类型:特征向量 |
值:继承:通过内部规则继承 |'继承:与第一个输入相同' |“继承:通过反向传播继承” |“双” |“单一” |'int8' |“uint8” |“int16” |“uint16” |“int32” |'uint32' |“int64” |“uint64” |“fixdt(16)” |“fixdt(0) 1, 16日” |“fixdt(1, 16日2 ^ 0,0)” |“< >数据类型表达” |
默认的:“继承:通过内部规则继承” |
根据定点工具的更改锁定输出数据类型设置
-防止定点工具覆盖Output数据类型从
(默认)|在
选择此参数可防止定点工具覆盖输出在块上指定的数据类型。有关更多信息,请参见使用锁定输出数据类型设置(定点设计师).
块参数:LockScale |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
整数舍入模式
-定点操作舍入模式地面
(默认)|天花板
|收敛
|最近的
|轮
|简单的
|零
为定点操作选择舍入模式。您可以选择:
天花板
将正数和负数取整数到正无穷。等价于MATLAB®装天花板
函数。
收敛
四舍五入数到最接近的可表示值。如果出现平局,四舍五入到最接近的偶数。相当于定点设计器™收敛
函数。
地面
将正数和负数取整数到负无穷。等价于MATLAB地板上
函数。
最近的
四舍五入数到最接近的可表示值。如果出现平局,四舍五入到正无穷。相当于定点设计器最近的
函数。
轮
四舍五入数到最接近的可表示值。如果出现平局,将正数舍入到正无穷,将负数舍入到负无穷。相当于定点设计器圆形的
函数。
简单的
在向底四舍五入和向零四舍五入之间选择,以生成尽可能有效的四舍五入代码。
零
四舍五入数接近零。等价于MATLAB修复
函数。
有关更多信息,请参见舍入(定点设计师).
块参数总是舍入到最接近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数在掩码字段中输入表达式。
块参数:RndMeth |
类型:特征向量 |
价值观:'天花板' | '收敛' | '地板' | '最近' | 'Round' | '最简单' | '零' |
默认值:“地板” |
整数溢出饱和
-溢出动作的方法从
(默认)|在
指定溢出是否饱和或缠绕。
行动 | 基本原理 | 对溢出的影响 | 例子 |
---|---|---|---|
选择此复选框( |
您的模型可能存在溢出,您希望在生成的代码中显示饱和保护。 |
溢出会饱和到数据类型所能表示的最小值或最大值。 |
的最大值 |
不选择此复选框( |
您希望优化生成代码的效率。 您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围误差. |
溢出包装为数据类型可表示的适当值。 |
的最大值 |
当您选中此复选框时,饱和度将应用于块上的每个内部操作,而不仅仅是输出或结果。通常,当不可能溢出时,代码生成过程可以检测到。在这种情况下,代码生成器不会产生饱和代码。
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
这些条件可能会在模拟和生成的代码之间产生不同的结果:
的分块输入包含南
或INF.
价值
的分块生成南
或INF.
在执行期间
这种差异是由于非有限南
或INF.
值。在这种情况下,检查您的模型配置并消除产生的条件南
或INF.
.
的金宝appSimulink Coder™构建过程为矩阵的逆运算和除法运算提供了有效的代码。该表描述了好处以及每个好处何时可用。
好处 | 小矩阵 (2×2 5-by-5) |
媒体矩阵 (6-by-6 20-by-20) |
大型矩阵 (大于20-by-20) |
---|---|---|---|
与R2011a和更早版本相比,更快的代码执行时间 | 是的 | 没有 | 是的 |
与R2011a和更早版本相比,减少了ROM和RAM的使用 | 是的,为了真正的价值 | 是的,为了真正的价值 | 是的,为了真正的价值 |
重用的变量 | 是的 | 是的 | 是的 |
死代码消除 | 是的 | 是的 | 是的 |
常数合并 | 是的 | 是的 | 是的 |
表达折叠 | 是的 | 是的 | 是的 |
一致性与MATLAB编码器结果 | 是的 | 是的 | 是的 |
对于有三个或更多不同维度的输入的块,代码可能包括一个额外的缓冲区来存储中间结果的临时变量。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
请注意
在将生成的HDL代码部署到目标硬件上时,请确保设置有符号整数除法舍入参数硬件实现窗格中的零
或地面
.
要执行优化的划分操作,请连接a产品块一个分以互惠模式阻塞。
默认模式
的分Block与a产品块与输入数量设置为*/
.
体系结构 | 参数 | 描述 |
---|---|---|
线性 默认的 |
没有一个 | 产生分歧(/ )操作符。 |
ShiftAdd |
UsePipelines | 使用非恢复除法算法对定点类型执行除法运算,该算法执行多次移位和加法运算来计算商。与牛顿-拉夫森近似方法相比,这种结构提供了更高的精度。 当您使用这种架构时,要在目标FPGA设备上实现更高的最大时钟频率,请离开UsePipelinesHDL块属性 |
互惠模式
当输入数量被设置为/
,分块为倒数模式。
该块具有多周期实现,在生成的代码中引入了额外的延迟。要查看添加的延迟,请查看生成的模型或验证模型。看到生成模型和验证模型(高密度脂蛋白编码器).
在互动模式下,分块具有下表中描述的HDL块实现。
体系结构 | 参数 | 额外的延迟周期 | 描述 |
---|---|---|---|
默认的 线性 |
没有一个 | 0 | 当计算倒数时,使用HDL除( |
Comprocalrsqrtbasednewton. |
迭代 |
签署的输入: 无符号输入: |
使用迭代牛顿法。选择此选项可优化区域。 的默认值 的推荐值 |
ReciprocalRsqrtBasedNewtonSingleRate |
迭代 |
输入:签署( 无符号输入:( |
使用单速率流水线牛顿法。选择此选项以优化速度,或者如果您想要一个单一的速率实现。 的默认值 的推荐值 |
ShiftAdd |
UsePipelines | Signed input:(input wordlength + 4) 无符号输入:(input wordlength + 4) |
通过使用非恢复除法算法对定点输入执行互反运算,该算法执行多次移位和相加运算来计算互反运算。与牛顿-拉夫森近似方法相比,这种结构提供了更高的精度。 当您使用这种架构时,要在目标FPGA设备上实现更高的最大时钟频率,请离开UsePipelinesHDL块属性 |
Newton-Raphson迭代法:
Comprocalrsqrtbasednewton.
和ReciprocalRsqrtBasedNewtonSingleRate
用以下方法实现Newton-Raphson方法:
一般 | |
---|---|
ConstrainedOutputPipeline | 通过在设计中移动现有延迟而放置在输出处的寄存器数。分布式管道不会重新分发这些寄存器。默认值是 |
ConstrainedOutputPipeline | 通过在设计中移动现有延迟而放置在输出处的寄存器数。分布式管道不会重新分发这些寄存器。默认值是 |
DSPStyle | 为乘法器映射合成属性。默认值是 使用此属性:
|
InputPipeline | 输入管道级的数量以插入生成的代码。分布式管道和受约束的输出管道可以移动这些寄存器。默认值是 |
OutputPipeline | 要插入生成代码的输出管道阶段的数量。分布式管道和受约束的输出管道可以移动这些寄存器。默认值是 |
LatencyStrategy | 要启用此属性,请将HDL体系结构设置为 |
CustomLatency | 要启用此属性,请将HDL体系结构设置为 |
本机浮点 | |
---|---|
HandleDenormals | 指定是否希望HDL编码器插入额外的逻辑来处理设计中的正常数字。非正数是指大小小于最小浮点数的数,可以在尾数中不带前导零表示。默认值是 |
NFPCustomLatency | 要指定一个值,请设置LatencyStrategy来 |
mantissamultiplystrategy. | 指定如何在代码生成期间实现尾数乘法操作。通过不同的设置,可以控制目标FPGA设备上DSP的使用。默认值是 |
DivisionAlgorithm | 指定是否使用Radix-2或Radix-4算法来执行浮点除法。Radix-2模式提供了延迟和频率之间的权衡。Radix-4模式提供了延迟和资源使用之间的权衡。有关更多信息,请参见DivisionAlgorithm(高密度脂蛋白编码器). |
使用。查看定点类型的延迟计算分和互惠块,在MATLAB命令提示符下,输入:
HDLMathLib
此块不支持复杂信号除法的代码生成。金宝app
当你使用分如果是对等模式,则有以下限制:
当您使用定点类型时,输入和输出必须是标量。要使用向量输入,请指定数学
架构并输入浮点值。
只有零
支持舍入模式。金宝app
您必须选择整数溢出饱和期权出售。
为分块,只有零
和简单的
支持舍入模式。金宝app
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。