高吞吐率乘法
- 更新时间2025-01-28
- 阅读时长9分钟
计算x和y的乘积。
该函数仅支持定点 数据类型。

对话框选项
| 参数 | 说明 |
|---|---|
| 定点配置 |
指定该函数的输入和输出接线端的 编码、字长和整数字长 。您指定的配置决定了接线端的 取值范围 。
|
| 执行模式 |
指定函数的运算方式。 |
| 流水线选项 |
指定选项在内部 流水线化 该函数。上述选项将影响函数能够获取的最大时钟速率。请参阅有关这种关系的信息,请参阅本主题的 “通过流水线化提高函数性能” 部分。
包含以下可选项:
|
| 寄存器 |
指定是否为函数输出接线端 添加内部寄存器 。仅当选择 内部单周期定时循环时,该部分才可用。 注: 添加寄存器可以减少组合路径,可防止组合路径过长导致的编译错误。但添加寄存器的同时增加了函数的延迟,即函数需要额外的时钟周期以返回有效结果。
|
| 可选接线端 |
指定用于显示可选程序框图接线端的设置。
|
| 配置反馈 |
显示关于该函数运行的相关信息。该信息由指定的配置选项确定。 |
输入/输出
x
—
指定被乘数。
y
—
指定被乘数。 指定下一个数据点是否已就绪。连续上面节点的输出有效输出端值该输入,使上面节点的数据传输至该节点。 要显示该在 握手 接线端,选择 内部单周期定时循环 选项并执行下列任一操作:
指定后续节点是否已就绪以便该节点返回一个新值。默认值为TRUE。使用反馈节点 ,用于将下游节点 的输入就绪 输出连接至当前节点的该输入。 注: 如该接线端在给定周期内为FALSE, 输出有效 接线端在该周期内返回FALSE。
要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:
x*y
—
返回x和y的积。 如理论计算出的值超出了输出数据类型的有效范围则返回TRUE。如运算溢出返回TRUE,溢出模式选项将判定函数返回的值。 仅当勾选运算溢出复选框时,LabVIEW才会显示运算溢出接线端。该复选框位于配置对话框的可选接线端部分。 如果该节点的计算结果可用于后续节点,将返回TRUE。将该输出连线至后续节点的输入有效的输入,以便将该节点的数据传递至后续节点。 要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:
如该节点可接受新的输入数据,将返回TRUE。使用反馈节点连线该输出至上方数据流节点的准备就绪输出输入。 注: 如该接线端在给定周期内返回FALSE, LabVIEW将丢弃其他节点在下一个周期内发送至该节点的数据。即使在后续周期中,输入有效接线端为TRUE,LabVIEW也会舍弃数据。
要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:
|
在输入有效第一次返回TRUE值前,该函数可能在FPGA终端上返回与主机不同的结果。输出有效初次返回TRUE后,结果将一致。
通过流水线增强函数性能
通过调整流水线级数量可优化函数在FPGA终端上的定时性能。的功能流水线 乘法器等价于非流水线乘法器级联一定数量的寄存器寄存器的数量与流水线的层级相同。
通常,增加流水线层级也会增加函数可获取的最大时钟速率。但实际时钟速率取决于多种因素,例如:
- 所用的FPGA终端
- 乘法器的大小
- 选择的舍入和溢出模式
- 选择的实现资源
- 乘法器外的FPGA逻辑
下图显示了流水线层级分别针对Xilinx Virtex-II、Virtex-5和Spartan-3 FPGA终端的最大时钟速率预估。
在上图中,每条线代表一个使用特定实现资源的具有特定大小的乘法器。例如,I32*I32 Block线显示了一个使用嵌入式块乘法器将2个32位有符号整数相乘的乘法器。结果为有符号64位整数:<+/–,32,32> × <+/–,32,32> = <+/–,64,64>。如在Virtex-II FPGA终端上使用一个流水线层级,该乘法器类型可获取的最大时钟速率约为51 MHz。如使用3个流水线层级,最大时钟速率约为76 MHz。
下图显示了用于其他FPGA终端的类似信息。

范例
参考LabVIEW FPGA模块中包含的下列范例文件。
- labview\examples\CompactRIO\FPGA Fundamentals\FPGA Math and Analysis\High-Throughput Math\Vector Normalization\Vector Normalization.lvproj
- labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\High-Throughput Math\Vector Normalization\Vector Normalization.lvproj
x
—
x*y
—