计算两个复数的积。

高吞吐率复数乘函数将两个复数值相乘:x = xr + jxiy = yr + jyi,生成结果p,如下列公式所示。

p = x*y = pr + jpi

其中 pr=xryrxiyipi=xryi+xiyr

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


icon

对话框选项

选项 说明
定点配置

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

  • xr/xi类型

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

    如连线定点数据类型至接线端,LabVIEW将禁用该部分并使用来自连线的信息。

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

    指定 yryi 输入接线端的定点配置

    如连线定点数据类型至接线端,LabVIEW将禁用该部分并使用来自连线的信息。

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

    指定pr和pi输出接线端的定点配置

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

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

      • 输入接线端的溢出状态为TRUE。
      • 在函数运算时产生溢出。
      注: 如在函数运算期间内部产生溢出,LabVIEW将对prpi设置溢出位。

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

  • 溢出模式

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

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

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

执行模式

指定函数的运算方式。

  • 在单周期定时循环之外

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

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

  • 单周期定时循环内部

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

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

流水线选项

指定选项在内部 流水线化 该函数。指定函数可完成编译的最大时钟频率。关于两者关系的详细信息见本主题的“通过流水线增强函数性能”。

  • 流水线级数-指定该函数内部使用的流水线级数。增加级数将会提高该函数可编译的时钟频率,但也会增加该函数所需的FPGA资源总数。默认值为0级,表示无流水线。最多11个阶段
  • 实现资源-指定乘法器的实现方式。

    包含以下可选项:

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

指定是否添加用于函数输入和/或输出的内部寄存器 。上述寄存器将被放置在任意嵌入式资源的外部,例如块乘法器或DSP48E逻辑片。只有在选择在单周期定时循环内选项后,该部分可用。

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

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

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

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

输入/输出

  • cunkn.png xr

    指定被乘数x的实部。

  • cunkn.png xi

    指定被乘数x的虚部。

  • cunkn.png yr

    指定y被乘数的实部。

  • cunkn.png yi

    指定y被乘数的虚部。

  • 输入有效

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

    要显示该在 握手 接线端,选择 内部单周期定时循环 选项并执行下列任一操作:

    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。

    上述选项位于配置对话框中。

  • 输出就绪

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

    注: 如该接线端在给定周期内为FALSE, 输出有效 接线端在该周期内返回FALSE。

    要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:

    • 勾选寄存器输入寄存器输出复选框。
    • 将流水线级数设置为至少1。

    上述选项位于配置对话框中。

  • iunkn.png pr

    返回结果的实部。

  • iunkn.png pi

    返回结果的虚部。

  • 运算溢出

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

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

  • 输出有效

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

    要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:

    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。

    上述选项位于配置对话框中。

  • 输入就绪

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

    注: 如该接线端在给定周期内返回FALSE, LabVIEW将丢弃其他节点在下一个周期内发送至该节点的数据。即使在后续周期中,输入有效接线端为TRUE,LabVIEW也会舍弃数据。

    要显示该接线端,请选择 内部单周期定时循环 选项并执行下列任一操作:

    • 勾选寄存器输入寄存器输出复选框。
    • 设置流水线层级数的值至少为1。

    上述选项位于配置对话框中。

  • 输入有效第一次返回TRUE值前,该函数可能在FPGA终端上返回与主机不同的结果。输出有效初次返回TRUE后,结果将一致。

    通过流水线增强函数性能

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

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

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