添加,减去,元素和,总和
添加或减去输入
- 库:
金宝appSimulink /数学运算
HDL编码器/ HDL浮点运算
HDL编码/数学运算
描述
的总和块对其输入执行加法或减法。Add, Subtract, Sum of Elements和Sum块是相同的块。此块可以添加或减去标量、矢量或矩阵输入。它还可以分解信号的元素并进行求和。
指定块的操作标志列表带+(的参数+
),减去(-
),以及垫片(|
).
的数量
+
和-
字符数等于输入的数量。例如,+-+
需要三个输入。该块从第一个(顶部)输入中减去第二个(中间)输入,然后添加第三个(底部)输入。间隔字符在块图标上的端口之间创建额外的空间。
如果只执行加法,则可以使用等于输入数的数值。
如果只有一个输入端口,一个
+
或-
在所有维度上或指定维度中添加或减去元素。
Sum块首先将输入数据类型转换为累加器数据类型,然后执行指定的操作。该块使用指定的舍入和溢出模式将结果转换为其输出数据类型。
块输出的计算
Sum块的输出计算取决于块输入的数量和输入端口的符号:
如果Sum块有… | 和… | 计算输出的公式是… | 在那里…… |
---|---|---|---|
一个输入端口 |
输入端口符号为“+” |
Y = e[0] + e[1] + e[2]…+ e [m] |
|
输入端口符号为- |
Y = 0.0 - e[0] - e[1] - e[2]…- e [m] |
||
两个或多个输入端口 |
所有输入端口的标志都是- |
Y = 0.0 - u[0] - u[1] - u[2]…- u [n] |
|
kth输入端口是第一个符号为+的端口 |
y = u [k] - u [0] - [1] - u [2] - u (k - 1) (+ / -) [k + 1]…(+ / -) u [n] |
港口
输入
输入可以是不同的数据类型,除非您选择要求所有输入具有相同的数据类型参数。
Port_1
-第一个输入操作数信号
标量|向量|矩阵
加减运算的输入信号。如果只有一个输入信号,则对所有维度或指定维度上的元素执行加法或减法。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
Port_n
- - - - - -n
输入操作数信号
标量|向量|矩阵
n
操作的输入信号。输入的数量与符号的数量相匹配标志列表参数。该块按照列出的顺序对输入应用操作。也可以使用等于输入端口数量的数值作为标志列表参数。该块创建输入端口并对所有输入应用加法。例如,如果你分配5
为标志列表参数,块创建5
输入端口,并将它们加在一起产生输出。
所有非标量输入必须具有相同的维度。标量输入被扩展为与其他输入具有相同的维度。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
输出
Port_1
-输出信号
标量|向量|矩阵
由加法和/或减法运算产生的输出信号。输出信号与输入信号具有相同的维数。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
参数
主要
图标的形状
-块图标形状
矩形(默认)|轮
指定块的图标形状为矩形或圆形。
对于矩形块,第一个输入端口是顶部端口。对于圆形Sum块,第一个输入端口是最靠近12点钟位置的端口,沿逆时针方向绕块运行。类似地,其他输入端口以逆时针顺序出现在块周围。
编程使用
块参数:IconShape |
类型:字符向量 |
值:“矩形” |“圆” |
默认的:“圆” |
标志列表
—输入执行的操作
++
(默认)|+
|-
||
|整数
输入对输入执行的加法和减法操作。为每个操作创建一个输入端口。垫片(|
)在块图标的输入端口之间创建额外的空间。添加是默认操作。如果您只想添加输入,请输入输入端口数。操作按照所列的顺序执行。
当您只输入一个元素时,该块将启用求和参数。对于单个矢量输入,+
或-
在所有维度上或指定维度中添加或减去元素。
提示
您可以通过插入间隔条(|
)的标志之间标志列表参数。例如,“++|--
在第二和第三个输入端口之间创造了额外的空间。
编程使用
块参数:输入 |
类型:字符向量 |
值:“+” |“- - -” || |整数 |
默认的:“+ +” |
求和
-单个矢量输入操作的维数
所有维度(默认)|指定的尺寸
选择块执行求和操作的维度。
为所有维度,对所有输入元素求和。选择配置参数时使用针对行为主数组布局优化的算法,仿金宝app真软件®启用行主要算法进行仿真。若要生成行主码,请设置配置参数阵列布局(金宝app仿真软件编码器)来行
除了选择使用针对行为主数组布局优化的算法.列主要算法和行主要算法仅在求和顺序上有所不同。在某些情况下,由于对同一数据集的操作顺序不同,您可能会在列为主算法和行为主算法的输出中遇到轻微的数值差异。
当你选择指定的尺寸,另一个参数维出现了。选择特定的维度来求和向量输入。
依赖
中只列出一个标志时启用标志列表参数。
编程使用
块参数:CollapseMode |
类型:字符向量 |
值:“所有维度” |“指定维度” |
默认的:“所有维度” |
维
-矢量输入求和的维数
1
(默认)|整数
当你选择指定的尺寸为求和参数时,指定要执行操作的维度。
该块遵循与MATLAB相同的求和规则®总和
函数。
假设你有一个2 × 3矩阵U.
设置维来
1
输出结果Y计算为:设置维来
2
输出结果Y计算为:
如果指定的尺寸大于输入的尺寸,则会出现错误消息。
依赖
当您选择时启用指定的尺寸
为求和参数。
编程使用
块参数:CollapseDim |
类型:字符向量 |
价值:整数 |
默认的:' 1 ' |
信号的属性
单击显示数据类型助手按钮要显示数据类型助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
要求所有输入具有相同的数据类型
-要求所有输入具有相同的数据类型
从
(默认)|在
指定输入信号是否必须具有相同的数据类型。如果启用此参数,则如果输入信号类型不同,则在模拟期间发生错误。
编程使用
块参数:InputSameDT |
类型:特征向量 |
价值观:'off' b| 'on' |
默认值:“关闭” |
累加器数据类型
—累加器的数据类型
继承:通过内部规则继承
(默认)|继承:与第一次输入相同
|双
|单
|一半
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型表达式>
选择累加器的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType
.当你选择继承:通过内部规则继承
, 金宝appSimulink选择一种数据类型来平衡数值精度、性能和生成的代码大小,同时考虑到嵌入式目标硬件的属性。
编程使用
块参数:AccumDataTypeStr |
类型:字符向量 |
值:继承:通过内部规则继承 |“继承:与第一次输入相同” |“双” “单一” |“一半” |“int8” |“uint8” |“int16” |“uint16” ,“int32” |“uint32” |“int64” |“uint64” |“fixdt(16)” |“fixdt(0) 1, 16日” |“fixdt(1, 16日2 ^ 0,0)” |'<数据类型表达式>' |
默认的:“继承:通过内部规则继承” |
输出最小
—量程校验的最小输出值
[]
(默认)|标量
Simulink检查输出范围的较低值。金宝app
金宝appSimulink使用最小值来执行:
参数范围检查(参见指定块参数的最小值和最大值)。
定点数据类型的自动缩放。
从模型生成的代码的优化。这种优化可以删除算法代码并影响某些仿真模式(如SIL或外部模式)的结果。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码).
请注意
输出最小不饱和或剪辑实际输出信号。使用饱和块来代替。
编程使用
块参数:OutMin |
类型:字符向量 |
值:“[]” |标量 |
默认的:“[]” |
输出最大
—范围检查的最大输出值
[]
(默认)|标量
Simulink检测输出范围的最大值。金宝app
金宝appSimulink使用最大值来执行:
参数范围检查(参见指定块参数的最小值和最大值)。
定点数据类型的自动缩放。
从模型生成的代码的优化。这种优化可以删除算法代码并影响某些仿真模式(如SIL或外部模式)的结果。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码).
请注意
输出最大不饱和或剪辑实际输出信号。使用饱和块来代替。
编程使用
块参数:OutMax |
类型:字符向量 |
值:“[]” |标量 |
默认的:“[]” |
输出数据类型
—指定输出数据类型
继承:通过内部规则继承
(默认)|继承:保留MSB
|继承:保持LSB
|继承:通过反向传播继承
|继承:与第一次输入相同
|继承:与累加器相同
|双
|单
|一半
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型表达式>
选择输出的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType
.
当你选择一个继承的选项时,块的行为如下:
继承:通过内部规则继承
s金宝appimulink选择一种数据类型来平衡数值精度、性能和生成的代码大小,同时考虑到嵌入式目标硬件的属性。请注意
累加器内部规则倾向于更高的数值精度,但代价可能是生成的代码效率较低。要获得相同的输出精度,请将输出数据类型设置为
继承:继承与累加器相同
.请注意
当输入是小于单精度的浮点数据类型时
继承:通过内部规则继承
控件的设置决定了输出数据类型继承小于单精度的浮点输出类型配置参数。当编码数据类型所需的位数少于编码单精度数据类型所需的32位时,数据类型小于单精度数据类型。例如,一半
和int16
都小于单精度。继承:保留MSB
- 金宝appSimulink选择一种数据类型,保持操作的全部范围,然后将输出精度降低到适合嵌入式目标硬件的大小。提示
为更有效地生成代码,请设置累加器数据类型来
继承:通过内部规则继承
,取消选择使整数溢出饱和参数。此规则永远不会产生溢出。
继承:保持LSB
- 金宝appSimulink选择一种保持操作精度的数据类型,但如果完整类型不适合嵌入式目标硬件,则会减小范围。提示
为更有效地生成代码,请设置累加器数据类型来
继承:通过内部规则继承
,取消选择使整数溢出饱和参数。该规则可能会产生溢出。
如果更改嵌入式目标设置,则这些内部规则选择的数据类型可能会更改。软件并不总是能够同时优化代码效率和数值精度。如果规则不能满足您对数值精度或性能的特定需求,请使用以下选项之一:
继承:通过反向传播继承
—使用驱动块的数据类型。继承:与第一次输入相同
—使用第一次输入信号的数据类型。继承:继承与累加器相同
—使用累加器的数据类型。
编程使用
块参数:OutDataTypeStr |
类型:字符向量 |
值:继承:通过内部规则继承 |“继承:保留MSB” |“继承:保留LSB” |“继承:通过反向传播继承” “继承:与第一次输入相同” |继承:与累加器相同 |“双” |“单一” |“一半” |“int8” |“uint8” |“int16” |“uint16” ,“int32” |“uint32” |“int64” |“uint64” |“fixdt(16)” |“fixdt(0) 1, 16日” |“fixdt(1, 16日2 ^ 0,0)” |'<数据类型表达式>' |
默认的:“继承:通过内部规则继承” |
针对定点工具的更改锁定数据类型设置
—防止定点工具覆盖数据类型
从
(默认)|在
选择此选项以锁定此块的数据类型设置,不受定点工具和定点顾问的更改影响。有关更多信息,请参见锁定输出数据类型设置(定点设计师).
编程使用
块参数:LockScale |
价值观:'off' b| 'on' |
默认值:“关闭” |
整数舍入模式
—定点运算的舍入模式
地板上
(默认)|天花板
|收敛
|最近的
|轮
|简单的
|零
指定定点操作的舍入模式。有关更多信息,请参见舍入(定点设计师).
块参数总是四舍五入到最接近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数在掩码字段中输入表达式。
编程使用
块参数:RndMeth |
类型:特征向量 |
价值观:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | ' most ' | 'Zero' |
默认值:“地板” |
使整数溢出饱和
—溢出动作方式
从
(默认)|在
指定溢出是饱和溢出还是自动溢出。
行动 | 基本原理 | 对溢出的影响 | 例子 |
---|---|---|---|
选择此复选框( |
您的模型可能存在溢出,并且您希望在生成的代码中显式地进行饱和保护。 |
溢出饱和到数据类型可以表示的最小值或最大值。 |
最大值 |
不要选择此复选框( |
您希望优化生成代码的效率。 您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围误差. |
溢出将自动换行到可由数据类型表示的适当值。 |
最大值 |
当您选择此复选框时,饱和度适用于块上的每个内部操作,而不仅仅是输出或结果。通常,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。
编程使用
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:'off' b| 'on' |
默认值:“关闭” |
块特征
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
默认的线性
体系结构为N个输入生成N个操作(加法器)链。
为元素和块,HDL编码器支持金宝app树
和级联
用于具有单个矢量输入和多个元素的元素和块的体系结构。
该块具有多周期实现,在生成的代码中引入了额外的延迟。要查看添加的延迟,请查看生成的模型或验证模型。看到生成模型和验证模型(高密度脂蛋白编码器).
体系结构 | 额外的延迟周期 | 描述 |
---|---|---|
线性 |
0 | 生成一个线性加法器链来计算乘积的和。下载188bet金宝搏 对于具有不同位宽度的多个输入 |
树 |
0 | 生成一个加法器的树状结构来计算乘积的和。下载188bet金宝搏 |
级联 |
1、当块具有单个矢量输入端口时。 | 此实现优化了延迟*区域,并且比 看到级联架构最佳实践(高密度脂蛋白编码器). |
请注意
要使用LatencyStrategy设置在本地浮点数选项卡,在“HDL块属性”对话框中指定线性
或树
作为HDL架构。
一般 | |
---|---|
ConstrainedOutputPipeline | 通过在设计中移动现有延迟来放置在输出端的寄存器数。分布式管道不会重新分配这些寄存器。默认值为 |
InputPipeline | 在生成的代码中插入的输入管道阶段的数目。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
OutputPipeline | 要在生成的代码中插入的输出管道阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
请注意
Sum of Elements块不支持原生浮点模式下双数据类型的HDL金宝app代码生成。
本地浮点数 | |
---|---|
LatencyStrategy | 指定是否将设计中的块映射到 |
NFPCustomLatency | 要指定一个值,请设置LatencyStrategy来 |
默认的线性
实现支持复杂数据。金宝app
的树
实现支持复杂的数据金宝app+
为标志列表块参数。对于原生浮点支持,金宝app树
实现同时支持复杂的数据金宝app+
和-
为标志列表.
要为混合了标量和矢量输入的多输入Sum块生成HDL代码,必须在Sum块的前两个输入之一指定矢量输入。
PLC代码生成
生成结构化文本代码使用Simulink®PLC编码器™。金宝app
定点转换
使用定点设计器™设计和模拟定点系统。
版本历史
MATLAB编程
在MATLAB中,该函数对应于一个最基本的函数:
在MATLAB中,用MATLAB编写了仿真程序。Los navegadores web no admit commandos de MATLAB。
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。