主要思路:(这应该是最简单的方法了)
- DDS生成一个固定频率的正交信号
- 例化两个FFTIP核分别用作FFT核IFFT变换
- 将DDS信号输入到FFT,再将FFT的信号输出到IFFT中
1. dds生乘固定频率正弦信号
调用DDS IP核,进行如下设置,生成10MHz正弦信号:







2.调用FFT IP核 进行如下设置




3.编写Verilog程序,例化IP核,将3个模块连接起来
代码如下,例化了一个DDS输出10MHz正交信号,例化2个FFT,分别用作FFT/IFFT
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: UESTC
// Engineer: RJY
//
// Create Date: 2019/05/24 10:32:04
// Design Name:
// Module Name: fft
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
// 用于实现DDS输出信号的FFT和IFFT
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module fft(
input aclk,
input aresetn,
output [7:0] fft_real,
output [7:0] fft_imag,
output [7:0] ifft_real,
output [7:0] ifft_imag
);
//-----------------DDS core(44.96MHz)------------------
wire [15:0] dds_m_data_tdata;
wire fft_s_data_tready;
wire dds_m_data_tvalid;
wire dds_m_data_tlast;//未使用
dds_compiler_0 dds_MHz (
.aclk(aclk),
.aresetn(aresetn


1983

被折叠的 条评论
为什么被折叠?



