名称:调用VIVADO FFT IP核进行FFT计算Verilog代码Vivado仿真
软件:Vivado
语言:Verilog
代码功能:调用VIVADO FFT IP核进行FFT计算
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. Testbench
4. 仿真图
Matlab计算
输入实部虚部
输出FFT结果,实部虚部,与matlab计算一致,因为FFT的IP核是整数计算,因此存在一点误差,是正常现象。
部分代码展示:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2019/05/24 21:27:49
// Design Name:
// Module Name: fft_IP_1024
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module fft_IP_1024(
input clk_in,//时钟
input data_in_en,//数据输入使能
input last_data,//输入最后一个数据信号
input [15:0] data_in_real,//输入的16位数据实部
input [15:0] data_in_imag,//输入的16位数据虚部
output data_out_en,//输出使能
output [31:0] data_out//输出32位FFT结果,输出数据,高16位虚部,低16位实部
);
// sample_data(15 downto 0) := data(index).re; -- real data
// sample_data(31 downto 16) := data(index).im; -- imaginary data
wire m_axis_data_tvalid;
xfft_1024 U_xfft_1024 (
.aclk(clk_in), // input wire aclk
.s_axis_config_tdata(8'd1), //1表示FFT,0表示逆fft
.s_axis_config_tvalid(1'b1), // 1表示s_axis_config_tdata有效
.s_axis_config_tready( ), // output wire s_axis_config_tready
.s_axis_data_tdata({data_in_imag,data_in_real}), // 输入实部和虚部,高16位虚部,低16位实部
.s_axis_data_tvalid(data_in_en), // 输入数据有效使能
.s_axis_data_tready( ), // output wire s_axis_data_tready
.s_axis_data_tlast(last_data), // 输入最后一个数据结束
.m_axis_data_tdata(data_out), // 输出数据,高16位虚部,低16位实部
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=508
阅读全文
943