主要内容

Multiply-Accumulate

对输入执行乘法累积操作

  • 库:
  • HDL编码器/ HDL操作

  • Multiply-Accumulate块

描述

Multiply-Accumulate块对输入执行此操作一个b,和偏见c计算结果数据库

dataOut =(一个求和。* b) + c

默认情况下,块以向量模式操作。输入一个b可以是标量、向量或二维矩阵。默认情况下,偏差值c等于零。该块计算输入的点产品一个b.可以指定一个非零值c通过使用对话框或者输入端口随着.该块将此偏置添加到DOT产品中一个b.倍增操作是完全精确的,而不管输出数据类型设置。的输出数据类型整数舍入模式设置适用于添加操作。

通过使用操作模式设置时,可以指定流的操作模式Multiply-Accumulate块。对于HDL代码生成,当您使用流操作模式时,您必须向块输入标量值。该块有两种流模式:流 - 使用开始和结束端口流-使用样本的数量.当您选择这些流模式时,您可以指定与该模式一起使用的控制信号。控制信号指定何时开始和结束积累以及输出何时有效。

HDL代码生成的限制

  • HDL代码生成不支持标量输入。金宝app要为代码块生成代码,请使用向量输入。对于标量输入,使用Multiply-Add块。

  • 块端口接口不支持矩阵数据类型。金宝app如果你有矩阵类型的信号,使用产品矩阵乘法模式下的块。

  • 块内部不支持流操作模式金宝app复位子系统用于HDL代码生成的块。

港口

输入

全部展开

端口为块提供输入。

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

端口为块提供输入。

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|布尔|固定点|枚举|公共汽车

向块提供偏置信号的端口。区块将这个偏差添加到输入中。确保偏置信号数据类型与输入的点积数据类型匹配。

依赖关系

要启用该端口,请设置输入端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

端口提供控制信号,开始积累。建议您使用a布尔数据类型信号作为端口的输入。开始从。获取累积输出值数据库信号,startInvalidIn信号必须高。的数据库信号产生下一个时钟周期的累积结果。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

端口提供控制信号以指示输入信号有效累积。建议您使用a布尔数据类型信号作为端口的输入。开始从。获取累积输出值数据库信号,validInstartIn信号必须高。的数据库信号产生下一个时钟周期的累积结果。的validIn信号优先级高于startInendIn信号。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口或者流-使用样本的数量

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

提供控制信号以指示积累结束的端口。你可以使用startInendIn信号与validIn表示包含累积输出的帧的信号。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口然后选择结束输入和输出端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

输出

全部展开

从乘积操作生成输出数据的端口。默认情况下,块使用向量运算方式,并计算输入信号的点积,并加上偏差来产生结果。如果指定流操作模式为操作模式,值的价值数据库信号取决于您提供的控制信号。输出信号的数据类型与累加器的数据类型相同。

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

产生输出控制信号以指示积累开始的端口。当两个validInstartIn高,开始信号在下一个时钟周期变得高。它的时钟周期开始变高表示框架的开始和那个数据库信号开始产生有效的累积输出。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口然后选择开始输出端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

产生输出控制信号的端口,以指示数据库信号是有效的。当validIn信号变高,则validOut信号在下一个时钟周期变得高,表明数据库是有效的。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口然后选择有效的输出端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

产生输出控制信号以指示积累结束的端口。你可以利用时钟周期之间的时间开始信号变高,何时变高endOut信号变高以指示包含累积输出的有效帧。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口然后选择结束输入和输出端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

产生输出控制信号的端口,以指示累积的样本数。该信号的值增加1对您指定的值数量的样品.只要validIn信号是高的countOut增量依次1每个时钟周期。

依赖关系

要启用该端口,请设置操作模式流-使用样本的数量然后选择计算输出端口

数据类型:||INT8.|int16|int32|uint8|uint16|uint32|固定点

参数

全部展开

您可以指定操作模式为:

  • 向量:您可以使用Scalar或Vectors作为输入。该块执行输入的点产品u1u2并增加偏见k产生结果。

  • 流-使用开始和结束端口:使用标量输入生成HDL代码。在此模式下,您可以使用startInendIn控制信号来确定何时开始和停止积累。输出数据是有效的validIn是很高的。

  • 流-使用样本的数量:使用标量输入生成HDL代码。在此模式下,可以指定数量的样品并使用countIn控制信号来确定何时开始和停止积累。输出数据是有效的validIn是很高的。

编程使用

块参数:opMode
类型:特征向量
价值:“向量”|'流媒体-使用开始和结束端口'|“流—使用样本数量”
默认值:“向量”

你可以指定偏差:

  • 作为对话框.然后,指定价值

  • 作为输入端口.这个设置创建一个外部输入端口c将偏置信号输入到块。

编程使用

块参数:initValueSetting
类型:特征向量
价值:“对话框”|输入端口的
默认值:“对话框”

如果你设置了作为对话框,您可以使用initvalue2.设置。

块参数:initvalue2.
类型:特征向量
价值:大于或等于零的整数
默认值:“0.0”

您可以指定数量的样品指定包含有效累积输出样本数的帧数据库

依赖关系

要启用该端口,请设置操作模式流-使用样本的数量

编程使用

块参数:num_samples
类型:特征向量
价值:大于或等于零的整数
默认值:' 2 '

将输出数据类型设置为:

  • 继承数据类型的规则,例如继承:与第一次输入相同

  • 内置数据类型,例如或者int16

  • 数据类型对象的名称。例如,一个金宝app仿真软件。NumericType目的。

  • 计算结果为有效数据类型的表达式,例如,fixdt (1 16 0)

不支持流模式金宝app继承:通过内部规则继承.当你设置输出数据类型,你可以使用数据类型的助理.要显示助手,单击显示数据类型助手

编程使用

块参数:OutDataTypeStr
类型:特征向量
默认值:{'继承:通过内部规则继承}

要查看可为该参数指定的可能值,请参见屏蔽一些参数

指定舍入行动为:

天花板

将正数和负数舍入积极无限。等价于MATLAB®细心函数。

收敛

四舍五入数到最接近的可表示值。如果出现平局,四舍五入到最接近的偶数。相当于定点设计器™收敛函数。

地板上

将正数和负数取整数到负无穷。等价于MATLAB地面函数。

最近的

将数字舍入到最接近的可代表值。如果发生扎带,则朝向积极的无限度。相当于固定点设计师最近的函数。

圆形的

四舍五入数到最接近的可表示值。如果出现平局,将正数舍入到正无穷,将负数舍入到负无穷。相当于固定点设计师函数。

简单的

在向底四舍五入和向零四舍五入之间选择,以生成尽可能有效的四舍五入代码。

四舍五入数接近零。等价于MATLAB修复函数。

编程使用

块参数:RndMeth
类型:特征向量
默认值:{“地板”}

要查看可为该参数指定的可能值,请参见屏蔽一些参数

控制生成validOut输出端口。该端口指示是否数据库是有效的。

离开

没有显示validOut输出端口。

显示validOut输出端口。

依赖关系

要启用该端口,请设置操作模式流-使用样本的数量或者流-使用开始和结束端口

编程使用

块参数:validOut
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

控制生成endIn输入端口和endOut输出端口。端口表示包含有效累加输出的帧的结尾。

离开

没有显示endIn输入端口和endOut输出端口。

显示endIn输入端口和endOut输出端口。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口

编程使用

块参数:endInandOut
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

控制生成开始输出端口。此端口生成开始表示包含有效累积输出的帧开始的信号。

离开

没有显示开始输出端口。

显示开始输出端口。

依赖关系

要启用该端口,请设置操作模式流-使用开始和结束端口

编程使用

块参数:开始
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

控制生成countOut输出端口。此端口生成计数器,该计数器表示包含有效样本的帧。

离开

没有显示countOut输出端口。

显示countOut输出端口。

依赖关系

要启用该端口,请设置操作模式流-使用样本的数量

编程使用

块参数:countOut
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

提示

与之Multiply-Accumulate块,您可以:

  • 执行矩阵乘法运算。例如,如果你有两个有维度的矩阵输入n-by-mM-by-P,您可以通过使用来计算结果n-by-p并行乘法累积操作。

  • 通过在FPGA上映射到DSP片,替换滤波块中的乘加运算序列,提高硬件性能。该图显示了如何使用Multiply-Accumulate块的sfir_fixed.模型。

算法

全部展开

扩展功能

C / c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

介绍了R2017b