• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

1024点FFT计算波形频率设计Verilog代码VIVADO仿真

08/31 11:33
995
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409201415431C.doc

共1个文件

名称:1024点FFT计算波形频率设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

1024点FFT计算波形频率

1、输入位宽为10bit的AD采样模拟信号波形数据

2、进行FFT计算(调用IP核)

3、输出计算的频谱,找到最大值所在的位置换算为频率

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

1024点

3. Testbench

4. 仿真图

部分代码展示:

module?FFT_ctrl(
input?clk_in,//时钟100M
input?rst_p,//复位
input?[9:0]?wr_data,//AD采样的10bit数据
output?clk_AD,//AD采样时钟
output?[36:0]?max_data//最大值对应的频率
);
parameter?point=1024;//根据实际点数修改
parameter?resolve=9765625;//10000000000/point=频率分辨率*1000,采样时钟除以点数,根据实际点数修改
wire?clk;//采样时钟10M
assign?clk_AD=clk;
??clk_wiz_0?i_clk_wiz_0
?(
?//?Clock?in?ports
??.clk_in1(clk_in),??????//?input?clk_in1
??//?Clock?out?ports
??.clk_out1(clk));????//?output?clk_out1
//fifo?空满信号
wire?empty;
wire?almost_empty;
wire?full;
reg?wr_en=0;
reg?rd_en=0;
wire?[9:0]?rd_data;
wire?last;
reg?valid=0;
wire?[31:0]?fft_dout;
wire?fft_dout_tvalid;
wire?signed?[11:0]?fft_dout_re;
wire?signed?[11:0]?fft_dout_im;
//控制FIFO写使能
always@(posedge?clk?or?posedge?rst_p)
if(rst_p)
wr_en<=0;
else
if(empty==1)
wr_en<=1;
else?if(full==1)
wr_en<=0;
//控制FIFO读使能
always@(posedge?clk?or?posedge?rst_p)
if(rst_p)
rd_en<=0;
else
if(full==1?&&?fft_dout_tvalid==0)
rd_en<=1;
else?if(almost_empty==1)
rd_en<=0;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1110

  • 2-2409201415431C.doc
    下载

相关推荐