一、系统概述
本系统基于FPGA技术,围绕快速傅里叶变换(FFT)与直接数字频率合成(DDS)核心功能展开设计,主要应用于超声多普勒频移解调场景。系统通过DDS模块生成特定频率的信号,再经由FFT模块对信号进行频域分析,最终实现对超声多普勒频移信号的处理与解调。整体代码基于Verilog/VHDL硬件描述语言开发,包含测试激励模块、DDS编译器IP核及相关辅助模块,可在Xilinx Vivado开发环境中进行仿真与部署,具备高实时性、高稳定性的特点,满足超声信号处理对精度和速度的双重需求。
二、核心模块功能解析
(一)FFT顶层测试模块(tb_fft_top.v)
1. 模块定位
该模块为FFT顶层设计的测试激励模块,主要功能是为FFT顶层模块(fft_top)提供时钟信号,并监测FFT处理后的输出结果,用于验证FFT模块在仿真环境下的功能正确性。
2. 关键参数与信号
- 参数定义
SIM:仿真模式控制参数,默认值为1,用于区分仿真环境与实际硬件运行环境,在仿真时可通过该参数启用特定的测试逻辑。CLK_PERIOD:时钟周期参数,设置为10ns,对应50MHz时钟频率,与系统主时钟频率保持一致,确保模块间时钟同步。- 信号定义
i_clk_50m:50MHz时钟输出信号,作为FFT顶层模块的主时钟输入,由测试模块内部的时钟生成逻辑驱动。o_fft_process_1k:32位宽的FFT处理结果输出信号,用于观测FFT模块对输入信号的频域处理结果,可通过仿真波形查看信号的数值变化,判断FFT运算是否正常。
3. 核心逻辑
- 时钟生成:通过
initial块初始化时钟信号为低电平,随后在always块中以CLK_PERIOD/2(即5ns)为周期翻转时钟信号,持续生成稳定的50MHz时钟,为整个FFT系统提供同步时钟源。 - 模块例化:例化FFT顶层模块(fft_top),并将测试模块生成的时钟信号
i_clk_50m接入,同时获取FFT模块输出的处理结果o_fft_process_1k,实现测试激励与结果监测的闭环。
(二)DDS编译器IP核模块(dds_compiler_2m_2m1k)
1. 模块定位
DDS(直接数字频率合成)编译器IP核是系统的信号生成核心,用于产生高精度、高稳定度的正弦波等周期性信号,为后续FFT模块提供标准的输入信号源,可满足超声多普勒频移解调中对参考信号或激励信号的需求。该IP核由Xilinx Vivado工具生成,包含组件声明、实例化模板及相关配置逻辑。
2. 关键接口信号
| 信号名称 | 信号方向 | 位宽 | 功能描述 |
|---|---|---|---|
aclk | 输入 | 1位 | 时钟信号,为DDS核提供同步时钟,确保信号生成的时序稳定性 |
m_axis_data_tvalid | 输出 | 1位 | 数据有效标志信号,高电平时表示m_axis_data_tdata和m_axis_data_tuser信号中的数据有效 |
m_axis_data_tdata | 输出 | 8位 | 数据 payload 信号,存储DDS核生成的信号数据(如正弦波采样值),位宽为8位,保证一定的数据精度 |
m_axis_data_tuser | 输出 |


