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

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

3天内不再提示

从Xilinx FFT IP核到FPGA实现OFDM

Hack电子 来源:博客园-没落骑士 2023-07-10 10:43 次阅读

笔者在校的科研任务,需要用FPGA搭建OFDM通信系统,而OFDM的核心即是IFFT和FFT运算,因此本文通过Xilinx FFT IP核的使用总结给大家开个头,详细内容可查看官方文档PG109。

我们直接来看看FFT IP核配置界面:

21cf3136-1ecb-11ee-962d-dac502259ad0.png

由于OFDM接收机中大多是数据串并转换后的连续低速并行数据流输入FFT,故这里采用流水线结构。之后根据OFDM子载波数选择变换长度。该IP核仅支持50MHZ采样率数据的流水线处理,如果数高速通信场合,可以再次将数据串并转换用多个FFT IP核并行运算,也就是FPGA设计中常用的“面积换速度”。

220884ae-1ecb-11ee-962d-dac502259ad0.png

第二页中比较重要的是选择数据格式和缩减 截断处理。此IP核支持浮点运算,但随之会消耗大量的硬件资源,且延迟也较大,所以多采用定点运算方式。定点运算中固定的bit位宽很容易出现数据溢出,在蝶形运算过程中仅保留高位而整体右移可把计算过程中增加的位宽去除掉,最后再左移即可,显然这种做法是在牺牲计算精度来降低硬件资源。设置Scaling Options为Scaled则在FFT IP核配置通道可以自定义缩减因子。当设置缩减位宽后,选中本页左下角的OVFLO溢出信号仿真过程中可以通过溢出信号确定合适的缩减因子。

2229644e-1ecb-11ee-962d-dac502259ad0.png

第三页主要是设置底层资源,对功能没有多大影响。存储部分可以用BRAM和DRAM两种资源,这里普及下:两者主要的区别在于BRAM是FPGA内部专用的硬件存储资源,用不用都在那里(你见或者不见,我就在那里,不来不去。。。好像在哪里见过),而DRAM是利用SLICEM中的LUT搭建出来的,相当于是BRAM的补充。在存储量较小时,DRAM可能会表现出更好的功耗和速率优势。正如官方文档介绍的,在变换长度小于1024,即占用存储资源少的情况下可使用DRAM。而下面的Optimize Options则可以权衡使用CLB和DSP Slices。

接口和配置可以说是所有IP核使用的重中之重。

226b5624-1ecb-11ee-962d-dac502259ad0.png

AXI总线的统一封装给IP核调用带来了很多方便,各部分功能通道相互分开结构非常清晰。每个通道的data以字节为单位的packet传输信息,如config通道信息如下:

2290aa14-1ecb-11ee-962d-dac502259ad0.png

在这一通道中要在数据进入前设置好变换方式和缩减因子,此处配置为正变换,缩减因子[1 1 1 1]。给大家看下OFDM接收机工程中FFT运算部分的仿真波形图:

22ad542a-1ecb-11ee-962d-dac502259ad0.png

din是DD-OFDM ADC 接收数据,只有一路实部信号。dout_I,dout_Q分别是FFT运算后复数中的实部和虚部。显然FFT运算后得到了信号的不同频率成分,下面的dout_vld负责提取赫比特对称中数据载波。希望本文能起到抛砖引玉的作用,欢迎交流~

审核编辑:汤梓红

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

    关注

    1602

    文章

    21320

    浏览量

    593195
  • ofdm
    +关注

    关注

    6

    文章

    346

    浏览量

    56793
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119373
  • FFT
    FFT
    +关注

    关注

    15

    文章

    425

    浏览量

    58638
  • 通信系统
    +关注

    关注

    6

    文章

    1066

    浏览量

    53056

原文标题:从Xilinx FFT IP核到FPGA实现OFDM

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【基于Xilinx FPGAOFDM通信系统基带设计】随书光盘

    物理层标准IEEE 802.11a为实例,研究如何在FPGA实现一个OFDM通信系统的基带收发机。《基于XILINX FPGA
    发表于 11-02 11:09

    adc采样后数据无法实现ofdmfft)解调

    近期在利用fpga spartan6系列进行OFDM系统开发工作,基带实现平台为xilinx spartan6系列,我们系统结构是这样的,发射基带是:编码+qpsk映射+ifft+插值
    发表于 08-14 22:02

    xilinx FPGAFFT IP的调用

    有没有大神可以提供xilinx FPGAFFT IP的调用的verilog 的参考程序,最近在学习F
    发表于 12-25 17:05

    Xilinx系列FPGA芯片IP详解

    `Xilinx系列FPGA芯片IP详解(完整高清书签版)`
    发表于 06-06 13:15

    xilinx FFT ip仿真的误差太大?

    用的xilinxFFT 9.1版本的ip , 仿真出来的结果和我MATLAB算出来的结果差的很多,也没有倍数关系,scaled因数改了好几次,没有溢出,波形大致相同,但是数值上差的
    发表于 07-10 16:16

    一种基于FPGA的可配置FFT IP实现设计

    摘要针对FFT算法基于FPGA实现可配置的IP。采用基于流水线结构和快速并行算法实现了蝶形运算
    发表于 07-03 07:56

    基于FPGAFFT和IFFT IP应用实例

    基于FPGAFFT和IFFT IP应用实例AT7_Xilinx开发板(USB3.0+LVDS)资料共享腾讯链接:https://shar
    发表于 08-10 14:30

    【Mill】Xilinx ip FFT变换,为什么你的matlab数据无法严格比对?——无线通信连载

    的数据是可以完全严格比对,如果设计中存在不能完全比对的情况,要特别注意相关参数是否匹配,尤其是缩放因子。一.Xilinx FFT IP介绍1.总体特性 •FFT
    发表于 02-16 07:36

    基于Xilinx_FPGA_IP核的FFT算法的设计与实现

    利用FPGAIP核设计和实现FFT算法
    发表于 05-24 14:14 36次下载

    FFT变换的IP核的源代码

    Xilinx FPGA工程例子源码:FFT变换的IP核的源代码
    发表于 06-07 11:44 9次下载

    XilinxIP:1024点FFT快速傅立叶变换

    Xilinx FPGA工程例子源码:XilinxIP:1024点FFT快速傅立叶变换
    发表于 06-07 15:07 51次下载

    通过Xilinx FFT IP核的使用实现OFDM

    由于OFDM接收机中大多是数据串并转换后的连续低速并行数据流输入FFT,故这里采用流水线结构。之后根据OFDM子载波数选择变换长度。该IP核仅支持50MHZ采样率数据的流水线处理,如果
    发表于 06-26 10:08 1779次阅读
    通过<b class='flag-5'>Xilinx</b> <b class='flag-5'>FFT</b> <b class='flag-5'>IP</b>核的使用<b class='flag-5'>实现</b><b class='flag-5'>OFDM</b>

    如何使用FPGA设计和实现OFDM系统和OFDM中的FFT模块设计及其FPGA实现

    建立了一个基于FPGA的可实现流水化运行的OFDM系统的硬件平台,包括模拟前端、基于FPGAOFDM调制器和
    发表于 12-13 16:45 22次下载
    如何使用<b class='flag-5'>FPGA</b>设计和<b class='flag-5'>实现</b><b class='flag-5'>OFDM</b>系统和<b class='flag-5'>OFDM</b>中的<b class='flag-5'>FFT</b>模块设计及其<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    FPGA实现OFDM通信—C语言实现N点FFT

    OFDM中调制使用IFFT,解调使用IFFT,在OFDM实现系统中,FFT和IFFT时必备的关键模块。
    发表于 07-10 10:50 395次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>OFDM</b>通信—C语言<b class='flag-5'>实现</b>N点<b class='flag-5'>FFT</b>

    使用Xilinx FPGA实现OFDM系统

    OFDM中调制使用IFFT,解调使用IFFT,在OFDM实现系统中,FFT和IFFT时必备的关键模块。在使用Xilinx的7系列
    的头像 发表于 07-10 10:50 657次阅读
    使用<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>OFDM</b>系统