文档

生成HDL代码的FFT HDL优化块

FFT和IFFT HDL优化块和系统对象支持许多应用程序的仿真和HDL代码生成。金宝app它们提供了针对不同用例优化的两种架构:

  • 流的基数2^2-适用于高吞吐量应用。当您使用矢量输入时,实现每秒千兆样本。

  • 爆发基数2-低区域应用。只使用一个复杂的蝴蝶。

这个例子包括两个模型,分别展示了如何使用FFT HDL优化块的流和突发架构。

流式基数2^2架构

现代adc能够以高达每秒几千兆样本的采样率对信号进行采样。然而,最快的FPGA的时钟速度达不到这个采样率。fpga通常运行在数百兆赫兹。在FPGA上执行GSPS处理的一种方法是以低得多的时钟速率同时处理多个采样。许多现代fpga支持JESD204B金宝app标准接口,该接口以GHz时钟速率接受标量输入,并以较低时钟速率产生采样向量。因此,现代信号处理需要矢量处理。

流的基数2^2架构的设计是为了支持高吞吐量用例。金宝app这个示例模型使用大小为8的输入向量,并使用流的基数2^2体系结构。看到FFT HDL优化文档时序图,支持的功能,和FPGA资源使用。金宝app

打开示例模型:

modelname =“FFTHDLOptimizedExample_Streaming”;open_system (modelname);

InitFcn回调(Model Properties > Callbacks > InitFcn)为模型设置参数。在这个例子中,参数控制FFT的大小和输入数据的特性。

FFTLength = 512;

输入数据是两个正弦波,200 KHz和250 KHz,每个采样频率为1*2e6 Hz。输入向量大小为8个样本。

FrameSize = 8;Fs = 1*2e6;

为了演示数据不需要连续出现,本例每隔一个周期应用有效输入。

ValidPattern = [1,0];

使用光谱查看器可视化结果。

open_system (' ffthdlooptimizedexample_streaming /Spectrum Viewer/Power Spectrum Viewer ');%运行示例模型:sim (modelname);

突发基数2(最小资源)架构

使用爆发基数2架构适用于FPGA资源有限的应用,特别是FFT长度较大的应用。该架构仅使用一个复杂的蝴蝶来计算FFT。设计接受数据的同时准备好了断言,一旦整个FFT帧被保存到内存中就开始处理。在处理过程中,设计无法接受数据,因此准备好了de-asserted。看到FFT HDL优化文档时序图,支持的功能,和FPGA资源使用。金宝app

modelname =“FFTHDLOptimizedExample_Burst”;open_system (modelname);

InitFcn回调(Model Properties > Callbacks > InitFcn)为模型设置参数。在这个例子中,参数控制FFT的大小和输入数据的特性。

FFTLength = 512;

输入数据是两个正弦波,200 KHz和250 KHz,每个采样频率为1*2e6 Hz。数据每个周期有效。

Fs = 1*2e6;ValidPattern = 1;

使用光谱查看器可视化结果。

open_system (' ffthdlooptimizedexample_burst /频谱查看器/功率频谱查看器');%运行示例模型:sim (modelname);

生成HDL代码和测试台

为本示例生成HDL需要HDL Coder™许可证。

选择一种模型生成HDL代码和测试台:

systemname = ' ffthdoptimizedexample_burst /FFT HDL优化Burst';或systemname = ' ffthdoptimizedexample_streaming /FFT HDL优化流';

为生成的文件使用一个临时目录:

Workingdir = tempname;

可以运行以下命令来检查HDL代码生成的兼容性:

checkhdl (systemname TargetDirectory, workingdir);

执行如下命令生成HDL代码:

makehdl (systemname TargetDirectory, workingdir);

运行如下命令生成测试台:

makehdltb (systemname TargetDirectory, workingdir);
这个话题有帮助吗?