从Xilinx FFT IP核到OFDM
笔者在校的科研任务,需要用FPGA搭建OFDM通信系统,而OFDM的核心即是IFFT和FFT运算,因此本文通过Xilinx FFT IP核的使用总结给大家开个头,详细内容可查看官方文档PG109。关于OFDM理论背景,可参考如下博文:给"小白"图示讲解OFDM的原理 - CSDN博 https://blog.csdn.net/madongchunqiu/article/details/18614233/
我们直接来看看FFT IP核配置界面:

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

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

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

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

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

din是DD-OFDM ADC 接收数据,只有一路实部信号。dout_I,dout_Q分别是FFT运算后复数中的实部和虚部。显然FFT运算后得到了信号的不同频率成分,下面的dout_vld负责提取赫比特对称中数据载波。希望本文能起到抛砖引玉的作用,欢迎交流~
从Xilinx FFT IP核到OFDM的更多相关文章
- Xilinx FFT IP核缩放因子说明
以1024点FFT为例, reg [9:0] scale_sch = 10'b11_10_01_01_01; 流水线结构中,将每个基 2 的蝶形处理单元视为一个阶段. 每个阶段进行一次数据的缩减,缩减 ...
- Xilinx FFT IP v9.0 使用(一)
reference:https://blog.csdn.net/shichaog/article/details/51189711 https://blog.csdn.net/qq_36375505/ ...
- 实测—fft IP核使用(包括ifft的配置使用)
Vivado xilinx fft9.0 使用笔记: ****注 仿真实测1024点的转换需要经过1148个时钟周期才能得到转换结果: 模块配置信号含义请参考pg109文档手册(写的贼烂会看晕),不详 ...
- Xilinx FFT IP v9.0 使用
该ip用于实现N=2**m(m=3~16)点FFT的变换, 实现的数学类型包含: A) 定点全精度 B) 定点缩减位宽 C) 块浮点 每一级蝶型运算后舍入或者取整.对于N ...
- Quartus FFT IP核简介
为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...
- PCIE xilinx v5 IP核使用前的研究
外带一个月前啃的一个星期,加本星期心无旁骛,啃出些心得,广惠后人.但愿有用. trn信号是数据链路层的信号 TLP包是数据链路层传给transaction层的包 解包需要一个transaction的协 ...
- FPGA基础学习(1) -- FFT IP核(Quartus)
为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...
- FFT IP核调用与仿真之SCALE压缩因子设置
关于FFT IP核的配置,网上有很多相关的资料可以参考,但是唯独涉及到scaled压缩因子设置这个参数,资料却非常匮乏,这是个什么参数,应该整么设置,设置后对结果输出会有什么影响,整样才能知道它设置的 ...
- Xilinx DDR3 IP核使用问题汇总(持续更新)和感悟
一度因为DDR3的IP核使用而发狂. 后来因为解决问题,得一感悟.后面此贴会完整讲述ddr3 ip的使用.(XILINX K7) 感悟:对于有供应商支持的产品,遇到问题找官方的流程.按照官方的指导进行 ...
随机推荐
- FatMouse' Trade -HZNU寒假集训
FatMouse' Trade FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the wa ...
- Phaser文档访问不了,下载英文版文档到本地,已经共享在国内网站上面
点击链接查看, http://www.simuhunluo.top/Phaser/ 可以找到你所需要的类.
- C++位运算
移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形. 2 " < <" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2. ...
- 前端打包工具——build release介绍
前言 对于前端开发者来说,资源打包是日常过程中一个必不可少的过程:目前我们大多数时候使用grunt.gulp.webpack这三个工具来完成这个工作:但是有一个特点就是我们没创建一个项目都要对应的去编 ...
- Java开源生鲜电商平台-商品表的设计(源码可下载)
Java开源生鲜电商平台-商品表的设计(源码可下载) 任何一个电商,无论是B2C还是B2B的电商,商品表的设计关系到整个系统架构的核心. 1. 商品基本信息表:用单词:goods做为商品表 2. 商品 ...
- Unix 和· Linux 系统概述
一.Unix 1.Unix 定义 Unix 是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序 '2.Unix 特点 ① 多用户:在同一时刻可以有多个用户同时使用Unix操作 ...
- Java开源生鲜电商平台-支付模块的设计与架构(源码可下载)
Java开源生鲜电商平台-支付模块的设计与架构(源码可下载) 开源生鲜电商平台支付目前支持支付宝与微信.针对的是APP端(android or IOS) 1. 数据库表设计. 说明:无论是支付宝还 ...
- 对C#热更新方案ILRuntime的探究
转载请标明出处:http://www.cnblogs.com/zblade/ 对于游戏中的热更,目前主流的解决方案,分为Lua(ulua/slua/xlua/tolua)系和ILRuntime代表的c ...
- goroutine和线程区别
从调度上看,goroutine的调度开销远远小于线程调度开销. OS的线程由OS内核调度,每隔几毫秒,一个硬件时钟中断发到CPU,CPU调用一个调度器内核函数.这个函数暂停当前正在运行的线程,把他的寄 ...
- simple_list_item_1 和simple_list_item_2有什么区别???
在安卓系统自带的List View里, 有simple_list_item_1.simple_list_item_2.two_line_list_item等.以下对这些布局进行简要介绍: 1.simp ...