FPGA实现OFDM通信——FFT与IFFT(2)——调用HLS的FFT库实现N点FFT(hls:fft)

在HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案,调用HLS中自带的FFT库(hls:fft)hls_fft.h。实际上,在HLS中调用该库实现FFT,其实是Vivado中的那个FFT核实现的,但是HLS中的配置和给定输入输出数据比较方便,并且对其外部封装其他类型的总线接口非常容易。

1.hls_fft.h初探

在HLS中打开示例例程 fft_single ,注意以下几点:
(1)默认设定
【1】输入数据和输出数据的格式固定,必须采用16位定点复数数据,其中1bit表示整数,其他的表示小数部分,即输入数据范围 —1 ~ 1,输出也是 —1 ~ 1;

【2】结构类型为流水线型;

【3】默认点数1024点,当不是这个点数时,除了修改头文件的点数,还需要修改config里的参数才能重新配置IP核;

【4】默认输入输出16位定点,相位因子16位,如果需要改成浮点数输入输出,需要更改相位因子为24或25位,并且在config里面更改IP核的配置;

【5】HLS中的FFT的IP库只处理复数类型complex的FFT数据。

【6】Xilinx FFT IP块只对复数类型数据进行操作。尽管可以对把所有虚部都设为0的复数进行FFT,但是通过预处理数据可以更有效地执行FFT。

【7】HLS需要bit-reverse命令数据块后端,所说的自然顺序和一个O (N)转换适用于FFT输出提取的频谱数据N-p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值