计算xy的乘积。

该函数仅支持定点 数据类型。


icon

对话框选项

参数 说明
定点配置

指定该函数的输入和输出接线端的 编码、字长和整数字长 。您指定的配置决定了接线端的 取值范围

  • x类型

    指定x输入接线端的定点配置。

    如连线定点数据类型至接线端,LabVIEW将以灰色显示该部分,并使用接线端的信息。

    • 符号-指定该接线端有符号。
    • 无符号-指定该接线端无符号。
    • 字长-指定接线端的字长。
    • 数字长-指定接线端的整数字长。
  • y 类型

    指定y输入接线端的定点配置。

    如连线定点数据类型至接线端,LabVIEW将以灰色显示该部分,并使用接线端的信息。

    • 符号-指定该接线端有符号。
    • 无符号-指定该接线端无符号。
    • 字长-指定接线端的字长。
    • 数字长-指定接线端的整数字长。
  • x*y 类型

    指定x*y输出接线端的定点配置。

    • Adapt tosource-指定LabVIEW是否自动调整输出数据类型的定点配置溢出和舍入误差。该复选框默认为已勾选并且LabVIEW将禁用以下选项。
      注: LabVIEW支持的最大字长为64位,最大整数字长为2047位。如勾选该复选框且输出数据类型需要超出最大值范围的字长,可能产生溢出和/或凑整错误。
    • 符号-指定该接线端有符号。
    • 无符号-指定该接线端无符号。
    • 字长-指定接线端的字长。
    • 数字长-指定接线端的整数字长。
    • 包含溢出状态-指定输出接线端是否包含溢出状态。LabVIEW将该状态传播给下面数据流节点。包含该状态需要附加的FPGA资源。默认情况下未勾选该复选框。

      如勾选该复选框,溢出状态在下列任一情况下变为TRUE:

      • 输入接线端的溢出状态为TRUE。
      • 在函数运算时产生溢出。

      如勾选了匹配至源复选框,LabVIEW根据输入接线端是否包含该状态设置包含溢出状态

  • 溢出模式

    指定该函数如何处理溢出。可选择 环绕 (默认)或 饱和。

    注:环绕 选项相比, 饱和选项需要更多的FPGA资源和更长的组合路径。在该情况下,选择饱和可能降低该函数可获取的最大时钟速率。
  • 舍入模式

    指定该函数如何如需要舍入,则 入输出数据。可选择截断舍入(默认)、半值向上奇偶舍入。如果发生舍入,您选择的选项可能影响该函数所需的资源量

执行模式

指定函数的运算方式。

  • 在单周期定时循环之外

    将该Express VI配置为在外部执行单周期定时循环

    如选中该选项并将Express VI置于单周期定时循环中,编译FPGA VI时, 代码生成错误 窗口报告错误。

  • 单周期定时循环内部

    将该Express VI配置为在单周期定时循环内部执行。

    如选择该选项且Express VI位于单周期定时循环外,代码生成错误窗口将在用户编译FPGA VI时报告错误。

流水线选项

指定选项在内部 流水线化 该函数。上述选项将影响函数能够获取的最大时钟速率。请参阅有关这种关系的信息,请参阅本主题的 “通过流水线化提高函数性能” 部分。

  • 流水线级数-指定该函数内部使用的流水线级数。增加级数将会提高该函数可编译的时钟频率,但也会增加该函数所需的FPGA资源总数。默认值为0级,表示无流水线。最大值为12级,因为添加超过12级的流水线不会增加函数可编译的最大时钟速率。
  • 实现资源-指定乘法器的实现方式。如需启用该选项,可增加流水线级数并大于0级。

包含以下可选项:

  • 自动(默认)-指定编译器 决定是使用嵌入式块乘法器还是使用查找表(LUT)来实现乘法器。
  • 查找表-指定该函数使用LUT实现乘法器。选择该选项可能增加函数能够编译的时钟速率。
寄存器

指定是否为函数输出接线端 添加内部寄存器 。仅当选择 内部单周期定时循环时,该部分才可用。

注: 添加寄存器可以减少组合路径,可防止组合路径过长导致的编译错误。但添加寄存器的同时增加了函数的延迟,即函数需要额外的时钟周期以返回有效结果。
  • 寄存器输入-在该函数的输入之后添加内部寄存器。选择该选项可将该函数的延迟增加一个周期。
  • 寄存器输出-在该函数的输出前添加内部寄存器。选择该选项可将该函数的延迟增加一个周期。
可选接线端

指定用于显示可选程序框图接线端的设置。

  • 运算溢出-指定该函数在程序框图上显示 运算溢出 输出接线端。该接线端表示在函数运算中是否发生溢出。
配置反馈

显示关于该函数运行的相关信息。该信息由指定的配置选项确定。

输入/输出

  • cunkn.png x

    指定被乘数。

  • cunkn.png y

    指定被乘数。

  • 输入有效

    指定下一个数据点是否已就绪。连续上面节点的输出有效输出端值该输入,使上面节点的数据传输至该节点。

    要显示该在 握手 接线端,选择 内部单周期定时循环 选项并执行下列任一操作:
    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。
    上述选项位于配置对话框中。
  • 输出就绪

    指定后续节点是否已就绪以便该节点返回一个新值。默认值为TRUE。使用反馈节点 ,用于将下游节点 的输入就绪 输出连接至当前节点的该输入。

    注: 如该接线端在给定周期内为FALSE, 输出有效 接线端在该周期内返回FALSE。
    要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:
    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。
    上述选项位于配置对话框中。
  • iunkn.png x*y

    返回xy的积。

  • 运算溢出

    如理论计算出的值超出了输出数据类型的有效范围则返回TRUE。如运算溢出返回TRUE,溢出模式选项将判定函数返回的值。

    仅当勾选运算溢出复选框时,LabVIEW才会显示运算溢出接线端。该复选框位于配置对话框的可选接线端部分。

  • 输出有效

    如果该节点的计算结果可用于后续节点,将返回TRUE。将该输出连线至后续节点的输入有效的输入,以便将该节点的数据传递至后续节点。

    要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:
    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。
    上述选项位于配置对话框中。
  • 输入就绪

    如该节点可接受新的输入数据,将返回TRUE。使用反馈节点连线该输出至上方数据流节点的准备就绪输出输入。

    注: 如该接线端在给定周期内返回FALSE, LabVIEW将丢弃其他节点在下一个周期内发送至该节点的数据。即使在后续周期中,输入有效接线端为TRUE,LabVIEW也会舍弃数据。
    要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:
    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。
    上述选项位于配置对话框中。
  • 输入有效第一次返回TRUE值前,该函数可能在FPGA终端上返回与主机不同的结果。输出有效初次返回TRUE后,结果将一致。

    通过流水线增强函数性能

    通过调整流水线级数量可优化函数在FPGA终端上的定时性能。的功能流水线 乘法器等价于非流水线乘法器级联一定数量的寄存器寄存器的数量与流水线的层级相同。

    通常,增加流水线层级也会增加函数可获取的最大时钟速率。但实际时钟速率取决于多种因素,例如:

    • 所用的FPGA终端
    • 乘法器的大小
    • 选择的舍入和溢出模式
    • 选择的实现资源
    • 乘法器外的FPGA逻辑

    下图显示了流水线层级分别针对Xilinx Virtex-II、Virtex-5和Spartan-3 FPGA终端的最大时钟速率预估。

    注: NI将在综合后获取上述预估值,该值未考虑舍入模式、溢出模式或连线的影响。因此时钟速率可能高于实际可获取的值。

    在上图中,每条线代表一个使用特定实现资源的具有特定大小的乘法器。例如,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