FPGA的64点FFT代码及报告,verilog快速傅里叶变换

news/2024/7/6 1:47:10 标签: fpga开发, FFT, 傅里叶变换, 报告, verilog

名称:64点FFT快速傅里叶变换Radix4

软件:Quartus

语言:Verilog

代码功能:

    使用verilog实现64-point Pipeline FFT处理器

FPGA代码资源下载网:hdlcode.com

代码下载:

名称:64点FFT快速傅里叶变换Radix4(代码在文末付费下载) 软件:Quartus 语言:Verilog 代码功能: 使用verilog实现64-point Pipeline FFT处理器名称:64点FFT快速傅里叶变换Radix4(代码在文末付费下载)软件:Quartus语言:Verilog代码功能: 使用verilog实现64-point Pipeline FFT处理器FPGA代码资源下载网:hdlcode.com部分代码展示module fft64_top(//input clk , ricon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=209

部分代码展示

module fft64_top(
//input
                 clk           ,
                 rst_n           ,
                 data_in_valid ,
                 data_in_re    ,
                 data_in_im    ,
//output
                 data_out_valid,
                 data_out_re   ,
                 data_out_im   ,
                 out_index 
                 );
                 
parameter DATAWIDTH = 10 ;
input                           clk             ;            
input                           rst_n             ;              
input                           data_in_valid   ;    
input   [DATAWIDTH-1:0]         data_in_re      ;          
input   [DATAWIDTH-1:0]         data_in_im      ;      
output                          data_out_valid  ;
output  [DATAWIDTH-1:0]         data_out_re     ;
output  [DATAWIDTH-1:0]         data_out_im     ;
output  [5:0]                   out_index       ;
reg                            data_out_valid  ;
reg    [DATAWIDTH-1:0]         data_out_re     ;
reg    [DATAWIDTH-1:0]         data_out_im     ;
reg    [5:0]                   out_index       ;
wire                            data_out_valid_tmp  ;
wire    [DATAWIDTH-1:0]         data_out_re_tmp     ;
wire    [DATAWIDTH-1:0]         data_out_im_tmp     ;
wire    [5:0]                   out_index_tmp       ;
wire                            data_out_valid_st1  ;
wire    [DATAWIDTH-1:0]         data_out_re_st1     ;
wire    [DATAWIDTH-1:0]         data_out_im_st1     ;
wire                            data_out_valid_st2  ;
wire    [DATAWIDTH-1:0]         data_out_re_st2     ;
wire    [DATAWIDTH-1:0]         data_out_im_st2     ;
always  @(posedge clk or negedge rst_n)
  if (!rst_n)
    data_out_valid <= 1'b0   ;
  else
    data_out_valid <= data_out_valid_tmp  ;
    
always  @(posedge clk or negedge rst_n)
  if (!rst_n)
    data_out_re <= {DATAWIDTH{1'b0}}   ;
  else
    data_out_re <= data_out_re_tmp  ;
    
always  @(posedge clk or negedge rst_n)
  if (!rst_n)
    data_out_im <= {DATAWIDTH{1'b0}}   ;
  else
    data_out_im <= data_out_im_tmp  ;
    
    
always  @(posedge clk or negedge rst_n)
  if (!rst_n)
    out_index <= 6'b0   ;
  else
    out_index <= out_index_tmp  ;
    
    
fft4_st1      u_fft4_st1_top(
//input
                             .clk(clk),
                             .rst_n(rst_n),
                             .data_in_valid(data_in_valid),
                             .data_in_re(data_in_re),
                             .data_in_im(data_in_im),
//output                     
                             .data_out_valid_st1(data_out_valid_st1),
                             .data_out_re_st1(data_out_re_st1),
                             .data_out_im_st1(data_out_im_st1)
                             );
fft4_st2        u_fft4_st2_top(
//input
                               .clk          (clk)                  ,
                               .rst_n        (rst_n)                  ,
                               .data_in_valid(data_out_valid_st1)   ,
                               .data_in_re   (data_out_re_st1)      ,
                               .data_in_im   (data_out_im_st1)      ,
//output                       
                               .data_out_valid_st2(data_out_valid_st2)    ,
                               .data_out_re_st2   (data_out_re_st2)       ,
                               .data_out_im_st2   (data_out_im_st2)       
                               );
                
                
bu4_st3       u_bu4_st3_top(
//input
                              .clk           (clk)                      ,
                              .rst_n         (rst_n)                    ,
                              .data_in_valid (data_out_valid_st2)       ,
                              .data_in_re    (data_out_re_st2)          ,
                              .data_in_im    (data_out_im_st2)          ,
//output                      
                              .data_out_valid (data_out_valid_tmp)  ,
                              .data_out_re    (data_out_re_tmp   )  ,
                              .data_out_im    (data_out_im_tmp   )   
                              );
                
out_index     u_out_index_top(                               
//input                                         
                              .clk       (clk)     ,    
                              .rst_n     (rst_n)   ,    
                              .start     (data_out_valid_tmp)   ,    
//output                                    
                              .out_index (out_index_tmp)    
                              );            
                              
                              
endmodule

设计报告(可下载):

64-point_Radix4_Pipeline_FFT.doc


http://www.niftyadmin.cn/n/5110817.html

相关文章

Golang数组:全面指南与实际示例

揭示Golang数组的威力&#xff1a;从基础到高级技巧 Golang数组是数据存储的基本构建块&#xff0c;为开发人员提供了多种可能性。在这篇正式的博客文章中&#xff0c;我们将探讨Golang数组&#xff0c;从基础知识到高级技巧。通过实际示例和正式的语气&#xff0c;我们将揭示…

[管理与领导-122]:IT人看清职场中的隐性规则 - 18- 一半佛一半魔,一半君子一半小人,阴阳互转,生生不息,儒、释、道、法,一个不能少

目录 一、太极阴阳图&#xff1a;阴阳互转&#xff0c;生生不息 1.1 阴阳互转&#xff0c;生生不息 1.3 职场中儒、释、道、法 二、职场中的阴阳&#xff1a;君子与小人&#xff0c;善与恶 2.1 职场中的阴阳&#xff1a;君子与小人 2.2 职场中的阴阳&#xff1a;谁不是一…

Linux系统编程:进程part_2(信号相关)

前言 这一节内容我没怎么认真写&#xff0c;就是纯当草草过了一遍&#xff0c;这部分不是很重要当然能掌握肯定更好。 更多的是有个印象然后知道遇到这样的问题能回想起来知道怎么解决即可&#xff08;虽然不太可能遇到&#xff09;。 信号量 实现PV操作 P&#xff1a;测试并…

高斯分布与高斯过程

一元高斯分布 我们从最简单最常见的一元高斯分布开始&#xff0c;其概率密度函数为&#xff1a; p ( x ) 1 σ 2 π e x p ( − ( x − μ ) 2 2 σ 2 ) p(x)\frac{1}{\sigma\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2}) p(x)σ2π ​1​exp(−2σ2(x−μ)2​) 其中 μ \…

SystemVerilog Assertions应用指南 Chapter 1.17使用参数的SVA检验器

1.17使用参数的SVA检验器 SVA允许像 Verilog那样在检验器中使用参数( parameter)&#xff0c;这为创建可重用的属性提供了很大的灵活性。比如,两个信号间的延迟信息可以在检验器中用参数表示,那么这种检验器就可以在设计只有时序关系不同的情况中重用。例子1.2显示了个带延迟默…

烘焙蛋糕外卖小程序商城的作用是什么

随着经营成本上升及电商业态的冲击&#xff0c;传统烘焙蛋糕门店商家经营止步不前&#xff0c;加之口罩原因更是雪上加霜&#xff0c;引流拓客、经营转化复购大幅度降低&#xff0c;而线上又因外卖平台间的激烈竞争&#xff0c;导致中小烘焙蛋糕商家进退两难。 烘焙蛋糕店经营…

2023年【氧化工艺】考试题库及氧化工艺考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 氧化工艺考试题库根据新氧化工艺考试大纲要求&#xff0c;安全生产模拟考试一点通将氧化工艺模拟考试试题进行汇编&#xff0c;组成一套氧化工艺全真模拟考试试题&#xff0c;学员可通过氧化工艺考试总结全真模拟&…

阿里云今年有双十一活动吗?不好说

阿里云今年有双十一活动吗&#xff1f;不好说&#xff0c;因为去年就没有。阿里云双11优惠活动是一项大型的促销活动&#xff0c;每年都有&#xff0c;但是去年没有双十一活动&#xff0c;不知道今年2023年阿里云是否有双11优惠活动。但是阿里云百科aliyunbaike.com猜想&#x…