单通道、多采样

计算每个周期多个采样的输入信号流的快速傅立叶变换(FFT)。

该节点允许处理每个数据时钟周期多个采样的FPGA I/O。该节点实现了更高的数据吞吐量,但比FFT(单通道、单采样)节点消耗更多的FPGA资源。

1378

输入/输出

datatype_icon

重置

指定是否重置节点内部状态的布尔值。

TRUE 重置节点的内部状态。
FALSE 不重置节点的内部状态。

Default value: FALSE

握手输入和输出的行为

重置为TRUE的周期内,该节点上的握手输入和输出的行为模式如下:

  • 忽略输入有效
  • 忽略输出就绪
  • 输出有效为FALSE。
  • 输入就绪为FALSE,因此仅处理重置保持TRUE状态超过一个周期的条件分支。重置完成且返回FALSE后,该节点输入就绪。
datatype_icon

数据输入

要计算FFT的信号输入流。

该输入端接受以下数据类型的数组:
  • 8位有符号整数
  • 8位无符号整数
  • 16位有符号整数
  • 16位无符号整数
  • 32位有符号整数
  • 定点数
  • 定点复数

数组大小必须为2、4、8或16。每个数组元素的最大字长是32位。

datatype_icon

输入有效

表示下一个数据元素是否已到达并等待处理的布尔值。连线上游节点的输出有效输出至该输入,将数据从上游节点传输至该节点。

TRUE 下一个数据元素已经到达,等待处理。
FALSE 下一个数据元素尚未到达。
datatype_icon

输出就绪

指定下游节点是否已就绪,以便该节点返回一个新值的布尔值。使用反馈节点将下游节点的输入就绪输出端连线至当前节点的输入端。

TRUE 后续节点对于该节点返回一个新值已就绪。
FALSE 后续节点对于该节点返回一个新值未就绪。
注: 如在一个周期内该输入端为FALSE,输出有效接线端在该周期返回FALSE。

Default value: TRUE

datatype_icon

数据输出

信号输入流的FFT结果。

每个FFT结果的最大字长为32位。

自定义FFT结果的字长

通常,每个FFT结果的字长比相应的输入数据大log2 (N)+1位,其中N是FFT大小。如需自定义FFT结果的字长,可单击选项卡接线端部分中精度控件旁边的定点复数配置器按钮。

降低输出字长可节省FPGA资源,但会降低数据精度。建议用户仿真给定配置,以确保精度满足应用程序要求。

datatype_icon

数据索引

该节点返回的FFT区间的索引。

datatype_icon

输出有效

布尔值,表示该节点的计算结果是否可用于下游节点。

将该输出连线至后续节点的输入有效的输入,以便将该节点的数据传递至后续节点。

TRUE 下游节点可使用该节点的计算结果。
FALSE 该节点返回未定义值,下游节点无法使用。
注: 该节点在仿真模式下运行时与在硬件上运行时会返回不同的未定义值。
datatype_icon

输入就绪

指定该节点是否已准备就绪接收新输入数据的布尔值。使用反馈节点将该输出连线至上游节点的输出就绪输入。

TRUE 节点已经就绪,可接收新的输入数据。
FALSE 节点尚未就绪,不可接收新的输入数据。
注: 如该输出端在给定周期内返回FALSE,节点将忽略其他节点在下一周期发送至该节点的全部数据。即使在下一周期中输入有效为TRUE,节点仍将丢弃数据。

时序示意图

该节点的吞吐率为1周期/输入,表示每个周期都会接收新数据。下图演示了该节点所采用的定时。


1378

FFT计算时避免数据丢失

计算FFT时,该节点不接受或返回值。在该段时间,如系统或其他节点发送数据至该节点,节点将忽略该数据。该节点接收复杂、不具有统一格式的数据时可能发生上述情况。

要避免数据丢失,新建FIFO以保存数据,直至该节点再次接收数据。确保创建的FIFO足够大,能够在节点计算FFT时收集并保存所有的数据点。如需粗略估计要创建的FIFO的大小,可使用平均系统吞吐率除以该节点的延迟。延迟位于配置窗格选项卡的性能部分。

输入/输出索引模式

在配置窗格的选项卡的接口部分中,可以将此节点配置为使用连续输入/M间隔输出M间隔输入/连续输出索引模式。

下表比较并说明了索引模式,以输入信号输入流为例,每个输入有4个采样,FFT大小为4096(表示M等于1024)。

索引模式 说明 示例 注释
连续输入/M间隔输出 输入数据FFT帧中的索引是连续的,输出数据的间隔为M,其中M = FFT大小/数据输入大小。
1378

该节点使用0, 1, 2, 3作为第一个有效输入周期中输入采样的索引,第二个周期中为4, 5, 6, 7并以此类推。第一个有效输出周期中的输出采样索引为0, 1024, 2048, 3072,第二个周期中的输出索引为1, 1025, 2049, 3073并以此类推。
M间隔输入/连续输出 输入数据FFT帧中的索引间隔为M,输出数据是连续的,其中M = FFT大小/数据输入大小。
1378

连续输入/M间隔输出索引模式相比,输入和输出的索引相反。

如果数据源是每个周期多个采样的FPGA I/O,请选择连续输入/M间隔输出索引模式。如果数据源是另一个FFT(单通道、多采样)节点的输出,例如计算从另一个FFT(单通道、多采样)节点获得的逆FFT结果时,请确保该节点的输入索引模式设置与另一个FFT(单通道、多采样)节点的输出索引模式设置匹配。

优化精度、资源使用或定时

可在配置窗格选项卡的优化部分对该节点进行配置,以优化精度、最小资源使用或定时。

目标部分,可以配置该节点以优化输出数据的精度,或在确定输出数据字长时将资源使用降至最低。下表提供了特定用例可使用的选项指南。

用例 推荐选项 节点行为 结果
希望以增加FPGA资源使用为代价来优化输出数据最后一位的精度。 精度 该节点通过填充零将输入数据的字长扩展为输出字长。所有内部复数乘法运算都使用该字长。 资源使用选项相比,复数乘法器保留更多的位,并且输出数据中增加的log2(N)+1位精度更高。
下列两种情况之一:
  • 希望以降低输出数据精度为代价来减少FPGA资源使用。
  • 数据输入的大小是16,FFT大小是16384或更高。
资源使用 该节点从输入到输出逐步增加字长。因此,复数乘法器的位长度也是逐级增加的。 精度选项相比,复数乘法器和内部寄存器的位宽较小,因而节省了FPGA资源,但也可能在编译时导致更高的FPGA时钟频率。

如果配置优化目标后此节点仍无法满足精度、资源或定时要求,则可以调整旋转因子字长蝶形中的流水线层级数的值以改进此节点的性能。