0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于FFT硬件实现,设计中RAM输出端为何没有使用REG

DIri_ALIFPGA 来源:互联网 作者:佚名 2018-06-20 09:05 次阅读

我知道,我对与电子有关的所有事情都很着迷,但不论从哪个角度看,今天的现场可编程门阵列(FPGA),都显得“鹤立鸡群”,真是非常棒的器件。如果在这个智能时代,在这个领域,想拥有一技之长的你还没有关注FPGA,那么世界将抛弃你,时代将抛弃你。


前面的文章我们介绍了关于FFT的硬件实现。关于FFT的逆运算IFFT,其实就是将实现FFT的过程反过来执行就可以了。

在实现过程中要注意很多问题。

同 FFT一样,效率问题。以2048点为例,根据理论值计算,计算一次2048点的IFFT的时间应为130us。在采用流水线的方式下,实部计算和虚部计算均采用两块RAM实现流水线。

结构如上图。在这种方式下,FPGA的片上RAM会消耗很多。

为了节省RAM,可以采用一块RAM的流水线方式。在实现过程中要注意对RAM操作的reading-during-write,之前的文章介绍过了。这种方式速度会降低一半。

最节省的方式是使用控制器方式,但速度更低。这里不再介绍。

上图所示的IFFT流程,存在大量的组合逻辑,时序远远不够,所以应当在组合逻辑中加入寄存器提高速度。但是,寄存器流水线的级数又影响到了读写两块RAM的切换,从而影响计算效率,所以这里值得商榷。

由于设计中RAM输出端没有使用REG,所以1处应该加入REG,提高速度,否则1处会出现时序违规,1处的组合逻辑延迟很大。

2处和3处也是值得深入考虑的地方,加法器的输出到乘法器的输入,以及乘法器的输出再到加法器的输入,均是大量的组合逻辑,设计中一定要注意,不能仅仅完成功能仿真就可以了,一定要在综合工具下综合一下,看看时序是否满足。实践中,这两处均加入REG。

4处是否再加REG需要看综合后的结果。根据实际分析,4处加REG会降低计算效率,读RAM和写RAM来不及切换,这是根据自己的设计得出的结果。

由于FFT计算过程用到乘法器,所以在IFFT中需要用到除法器。如何减少除法器使用的资源或者将除法器更改为其他逻辑实现,需要深入探讨。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21278

    浏览量

    592839
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1314

    浏览量

    113683
  • FFT
    FFT
    +关注

    关注

    15

    文章

    425

    浏览量

    58598

原文标题:关于硬件实现FFT逆运算

文章出处:【微信号:ALIFPGA,微信公众号:FPGA极客空间】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA的超高速FFT硬件实现

    实现。总体来讲,DSP速度较慢,接口不灵活,而且没有FFT运算所需要的巨量存储器,需外置特定的接口、控制芯片和RAM,限制了运算速度,但DSP开发相对简单,技术成熟,开发费用相对较低,
    发表于 06-14 00:19

    基于FPGA的FFT算法硬件实现

    本帖最后由 gk320830 于 2015-3-8 21:23 编辑 开始科创,老师给了我们一个题基于FPGA的FFT算法硬件实现。但是什么都不会,想找些论文看看,求相关的论文
    发表于 05-24 22:14

    QuartusFFT模块中文说明

    (LE)数ALUT数相关。(3)在允许使用M-RAM资源的情况下,前面的数字表明在FFT设计向导取消使用M-RAM时.M4K-RAM的模块
    发表于 08-12 16:14

    第30章 复数FFT实现

    ,就是用于输入信号的缓冲,在转化结束后用来存储输出结果。这样做的好处是节省了RAM空间,不需要为输入和输出结果分别设置缓存。由于是复数FFT,所以输入和
    发表于 09-28 08:13

    关于调用IP核实现FFT

    通过例化调用Xilinx IP核来实现一个512点、数据位宽和相位因子位宽都为10 bit的FFT算法模块,时钟频率为 50MHz,采用流水线,Streaming I/O和定点压缩结构。为了方便验证
    发表于 12-27 14:12

    FFT至简设计法实现法_FFT算法_蝶形运算_fpga

    FFT,首先会把最外层的8点运算分成两个4点FFT的奇偶组合,第二层FFT又分成四个两点FFT的奇偶组合,并且由此计算出的频谱很有趣的一
    发表于 08-02 17:32

    FFT 算法的一种 FPGA 实现

    FPGA实现FFT 处理器的硬件结构。接收单元采用乒乓RAM 结构, 扩大了数据吞吐量。中间数据缓存单元采用双口RAM , 减少了访问
    发表于 11-21 15:55

    如何在FPGA上实现硬件上的FFT算法

    =64 点的基-4DIT信号流其输入数据序列是按自然顺序排列的,输出结果需经过整序。64点数据只需进行3次迭代运算,每次迭代运算含有N/4=16个蝶形单元。2 FFT算法的硬件实现2.
    发表于 06-17 09:01

    怎么使用cordic旋转方法在​​VHDL实现FFT

    嗨,我已经实现了radix2 / 4&在ISE 14.1没有使用cordic的分裂基数FFT算法。它们运行良好... o / p即将到来,但问题是代码是不可合成的。为了使代码
    发表于 03-06 08:40

    基于FPGA的超高速FFT硬件实现

    介绍了频域抽取基二快速傅里叶运算的基本原理;讨论了基于FPGA达4 096点的大点数超高速FFT硬件系统设计与实现方法,当多组大点数进行FFT运算时,利用FPGA内部大容量存储资源,采
    发表于 04-26 18:33 26次下载

    FPGA内嵌的块RAMFFT算法中的应用

    在现代逻辑设计中,FPGA占有重要的地位,不仅因为具有强大的逻辑功能和高速的处理速度,同时因为其内部嵌有大量的可配置的块RAM,使其得到了广泛地应用,例如FFT算法的实现等。
    发表于 09-27 17:07 54次下载
    FPGA内嵌的块<b class='flag-5'>RAM</b>在<b class='flag-5'>FFT</b>算法中的应用

    基于FPGA-IPCore的FFT仿真与硬件实现

    FFT算法是离散傅罩叶变换(DFT)的一种高效算法,它被广泛地运用于图像处理、音频编码、频谱分析等数字信号处理(DSP)领域,其变换长度N.一般要求很大。DSP速度较慢、接口不灵活,而且没有FFT
    发表于 04-03 16:48 2次下载

    关于Block RAM的寄存器输出

    关于Block RAM的寄存器输出,我们在《通过RTL改善时序的技巧之Block RAM输出》中介绍过。如果我们在时序报告中关键路径上看到
    的头像 发表于 03-26 15:50 1602次阅读
    <b class='flag-5'>关于</b>Block <b class='flag-5'>RAM</b>的寄存器<b class='flag-5'>输出</b>

    采用IEEE745格式的浮点+ROM RAM的方式成功实现FFT的设计

    采用IEEE745格式的浮点+ROM RAM的方式成功实现FFT的设计(嵌入式开发要学什么知乎)-采用IEEE745格式的浮点+ROM RAM的方式成功
    发表于 07-30 16:21 7次下载
    采用IEEE745格式的浮点+ROM <b class='flag-5'>RAM</b>的方式成功<b class='flag-5'>实现</b><b class='flag-5'>FFT</b>的设计

    调用HLS的FFT实现N点FFT

    )hls_fft.h。实际上,在HLS中调用该库实现FFT,其实是Vivado中的那个FFT实现的,但是HLS中的配置和给定输入
    的头像 发表于 07-11 10:05 634次阅读
    调用HLS的<b class='flag-5'>FFT</b>库<b class='flag-5'>实现</b>N点<b class='flag-5'>FFT</b>