首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
FPGA实现64点IFFT(VHDL)
返回列表
发新帖
FPGA实现64点IFFT(VHDL)
[复制链接]
发表于 2022-10-31 22:30:39
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
笔者最近用FPGA实现的64点IFFT,记录一下作为笔记也可以为各位读者提供一个思路。(输入12bit实数+12bit虚数)
IFFT算法的原理这里就不再赘述,主要讲解算法的实现过程。
如图2:我们要用FPGA实现此算法的话,利用流水线的思想,可分为如下几步:1.输入重新排序。2.对应数据与蝶形算子相乘。3.将复乘结果与对应数据相加/减得到输出。4.输出作为输入参与下一级运算直到最后一级。
1.输入排序:如下面图1和图2所示,输入序列的顺序就是自然序的二进制的倒序对应的十进制数。
图1
图2
2.复乘运算:复乘运算的对象是每一级的输入数据与旋转因子。旋转因子实际的值是实部虚部都不大于1的复数,如果不对旋转因子进行放大就去参与复乘运算需要浮点运算,而fpga实现浮点运算特别消耗资源,所以这里我将旋转因子×2^10后变成12bit复数与对应的每一级输入进行复乘运算。运算工具用vivado自带的Complex Multiplier IP核。
注:因为 在运算前将旋转因子×2^10,对于复乘后的结果要右移十位。此外,我们可以根据结果适当删去不需要的位数。例如这里的复乘是实虚12bit数据×实虚12bit旋转因子,本来复乘需要乘法和加法两次运算,而每次运算导致结果都会增加1bit,但在这里扩大后的旋转因子最大只有2^10,与数据相乘后的最大值并不达到要扩充位数的标准,所以这里的复乘运算的结果是实部虚部都是13bit的复数,于是我们可以对Complex Multiplier IP核输出的结果进行截位以减少资源消耗。
3.加/减法运算:将复乘后的结果与对应输入相加/减得出这一级的输出。
4.下一级重复上述操作直到最后一级。
附:对于批量编辑
代码
的问题,我们可以利用matlab提供的交互式操作方式去产生我们想要的结果复制后利用在文本编辑器的列模式下粘贴。
回复
使用道具
举报
返回列表
浏览过的版块
SAAS
网络安全
DevOps与敏捷开发
分布式数据库
物联网
区块链
SQL-Server
linux
数据仓库与分析
用多少眼泪才能让你相信
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表