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

news2024/12/24 9:09:41

名称: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.coloradmin.cn/o/1119093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

保姆级 Keras 实现 Faster R-CNN 十四 (预测)

保姆级 Keras 实现 Faster R-CNN 十四 一. 预测模型二. TargetLayer三. 预测四. 显示预测结果五. 加载训练好的参数六. 效果展示七. 代码下载 上一篇 文章中我们完成了 Faster R-CNN 训练的功能, 现在到了预测部分了 一. 预测模型 因为在预测的时候并不需标签, 所以 RoiLabel…

[Linux打怪升级之路]-system V共享内存

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习目标&…

基于Ubuntu Server编译YTM32 SDK工程

基于Ubuntu Server编译YTM32 SDK工程 文章目录 基于Ubuntu Server编译YTM32 SDK工程需求下载软件包安装与配置配置虚拟机联网模式启用ssh连接启用ftp连接安装armgcc编译工具链确认make工具 验证 需求 在Linux系统环境下搭建SDK的编译环境&#xff1a; 方便加入到持续集成工具…

16.The Tensor Product:Vector/Covector combinations

本节将概括目前为止所学的张量积知识。并讨论一般张量&#xff0c;它可以由任意数量的向量和协向量的任意组合来生成。 同样&#xff0c;也是使用的非标准的符号。 (2&#xff0c;0)阶张量&#xff0c; 由两个向量生成的。 &#xff08;1&#xff0c;2&#xff09;阶张…

C++学习之多态详解

目录 多态的实现 例题 重载 重写 重定义的区别 抽象类 多态实现原理 多态的实现 C中的多态是指&#xff0c;当类之间存在层次结构&#xff0c;并且类之间是通过继承关联时&#xff0c;就会用到多态。多态意味着调用成员函数时&#xff0c;会根据调用函数的对象的类型来执…

Spring IOC之@ComponentScan

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

[SWPUCTF 2023 秋季新生赛] web题解

文章目录 colorful_snakeNSS_HTTP_CHEKER一键连接!ez_talkPingpingpingUnS3rialize查查needRCE-PLUSbackup colorful_snake 打开题目&#xff0c;查看js源码 直接搜flag 把那三行代码复制到控制器&#xff0c;得到flag NSS_HTTP_CHEKER 都是http请求基本知识 抓包按照要求来&…

企业知识库管理系统怎么做?

21世纪&#xff0c;一个全新的信息化时代&#xff0c;从最初的传统办公到现在的信息化办公&#xff0c;一个世纪的跨越造就了各种大数据的诞生。 知识库系统 在这个数据横行的时代&#xff0c;文档管理产品市场逐渐兴盛起来&#xff0c;企业知识库管理系统作为企业的智慧信息的…

计算机组成原理new15 磁盘

文章目录 磁盘的结构磁盘的性能指标磁盘阵列固态硬盘SSD关于机械硬盘和固态硬盘的地址 这里计算传输时间和数据传输率是难点 磁盘的结构 注&#xff1a;磁盘的基本读取单位是扇区&#xff0c;但是每次只能读取1bit&#xff0c;这里我们应该理解为磁盘每次的读写操作至少要持续…

初始 c++(1)

目录: 目录 1: 命名空间的详解 2:c的输入与输出关键字及理解 3:详细讲解第一个c程序(每段代码的意思) 4:缺省参数的理解 5:函数重载 引言&#xff1a;从今天开始我们就开始学习c了&#xff0c;让我们一起开始新的知识吧&#xff01; 1&#xff1a;命名空间 所谓的命名空间…

深度学习学习笔记-模型的修改和CRUD

目录 1.打印模型,理解模型结构2.模型保存与加载3.模型的模块CRUD和模块的层的CRUD 1.打印模型,理解模型结构 import torchclass MyModel(torch.nn.Module):def __init__(self):super().__init__()self.layer1 torch.nn.Sequential(torch.nn.Linear(3, 4),torch.nn.Linear(4, …

云计算——网络虚拟化简介

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 前期回顾 前言 一.网络虚拟化 二.网络虚拟化介绍 三.为什么要网络虚拟化 四,网络…

STM32+2.9inch微雪墨水屏(电子纸)实现显示

本篇文章从硬件原理以及嵌入式编程等角度完整的介绍了墨水屏驱动过程&#xff0c;本例涉及的墨水屏为2.9inch e-Paper V2,它采用的是“微胶囊电泳显示”技术进行图像显示&#xff0c;其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移&#xff0c;从而改变显示屏各…

【C++初阶】小白入门C++

目录 前言&#xff1a;1、C关键字2、命名空间2.1命名空间是什么2.2为什么要有命名空间2.3命名空间怎么使用2.3.1命名空间的写法2.3.2命名空间是可以嵌套的2.3.3使用命名空间的三种方式 3、C输入和输出3.1初识cout和cin3.2C的输入输出可以自动识别变量类型 4、缺省参数4.1缺省参…

Linux:用户和权限

Linux&#xff1a;用户和权限 1. 认知root用户1.1 root用户&#xff08;超级管理员&#xff09;1.2 su和exit命令1.3 sudo命令1.3.1 为普通用户配置sudo认证 2. 用户、用户组管理2.1 用户组管理2.2 用户管理2.3 getent命令 3. 查看权限控制3.1 认知权限信息3.1.1 案例 4. 修改权…

react 实战- 玩转 react 全家桶(进阶)学习

一个命令是怎么运行起来的? Shell运行一个命令,实际上是运行一个脚本 环境变量 装了node以后,node的路径,就被注册到了环境变量里. 一个js的东西,可以注册? bin Webpack配置 构建 import A from A , const Arequire(A) 为什么可以这么写?为哈都行?本质上,是构建工…

人人自媒体的时候,Ai绘画还值得踏入吗?

前言 先说结论&#xff0c;如果你不打算涉足自媒体&#xff0c;平时也从不上网发什么内容去展示自己的话&#xff0c;其实AI绘画对你来说意义不大。但如果你对自媒体感兴趣&#xff0c;会涉及发作品&#xff0c;发内容&#xff0c;甚至去设计图片&#xff0c;那么AI绘画值得你…

【【萌新的SOC学习之自定义IP核的学习与设计】】

萌新的SOC学习之自定义IP核的学习与设计 本章为了更加深入的了解FPGA的自定义IP和IP封装测试等问题 参考了正点原子 第六讲自定义IP核呼吸灯实验 和 第十九章 IP封装与接口定义实验 为了更好的理解自定义IP核 我们先介绍一个带AXI主从接口的IP核 我们可以展开AXI从接口 下…

Vue--》简易资金管理系统后台项目实战(后端)

今天开始使用 node vue3 ts搭建一个简易资金管理系统的前后端分离项目&#xff0c;因为前后端分离所以会分两个专栏分别讲解前端与后端的实现&#xff0c;后端项目文章讲解可参考&#xff1a;前端链接&#xff0c;我会在前后端的两类专栏的最后一篇文章中会将项目代码开源到我…

转行做程序员,多晚都不晚

大家好啊&#xff0c;我是董董灿。 最近有不少小伙伴加我微信咨询一些问题&#xff0c;有同学想了解AI行业的现状&#xff0c;想着转行的&#xff0c;也有在校生想了解毕业后工作方向的&#xff0c;当然也有想学习编程知识的。 诚惶诚恐&#xff0c;没想到之前写的文章&#…