2021-03-15

Xilinx 7-Series 的FFT Core 学习
1. NFFT 配置常数的取值,这个是以 log2(transform length) 的计算结果来配置的, 比如, 1024->10, 256->8
2. SCALE-SCH 每一次运算 stage 中,对于数据进行比例计算的配置,对于FFT Core 选择配置的运算结构不同有不同的配置。Pipeline Stream 结构和 Radix-4 结构的, SCALE-SCH 长度是 2*ceil(NFFT/2), 比如,transform length 是 1024, 计算结果是 2*ceil(10/2) = 5, 这个结构的配置值就可能是[01 01 01 01 10], 这里的 5 就是 5个stage, 每个 stage 使用 2 bit
3. SCALE-SCH 对于 Radix-2 的结构,SCALE-SCH 长度是 2*NFFT, 比如,transform length 是 128, 计算结果是 2*5 = 10, 这个结构的配置值就可能是[00 01 01 01 00 01 01 01 01 00], 这里有 10个stage ,每个 stage使用 2bit
4. FWD_INV 配置为 0, 做 IFFT, 配置为 1 ,做 FFT
5. 在配置FFT Core时,可选择的运算结构可以是 Pipeline stream, Radix-4, Radix-2, Radix-2 Lite, 这几种结构在运算时间和资源消耗上,依次是2的降幂的关系,Pipeline stream 运算最快 但资源消耗最多; Radix-2 Lite 运算最慢 但资源消耗最少 
6. 在FFT的运算过程中,数据会随蝶形运算而发生位宽的扩展,如何控制这种位宽的扩展,有 Scaled 数据表示方法和 Unscaled 数据表示方法, Unscaled 的方法是 Fixed point 数据表示方法, Scaled 数据表示方法是 Floating point 数据表示方法
7. 如果选用 Floating point 数据表示方法,数据的动态表示范围大, 但需要额外的资源来支持, 选择 单精度浮点就需要 单精度浮点库的支持. 选择 Block floating point 也需要额外的资源来支持计算
8. 如果选用了 Fixed point 定点数据表示方法, 就需要 SCALE-SCH 来对于每一步 stage 的数据缩放进行控制, 要确保运算中不会出现 overflow
9. FFT Core 的计算结果会有 Nature order 和 Bit reverse 两种输出方式, Nature order 需要额外资源支持, 同时 Nature order 支持 CP 插入
10. FFT Core 对于运算结束的数据输出称为 unloading 数据卸载过程, Pipeline stream 方式中, 数据输入的 loading 过程和 数据输出的 unloading 过程都可以采用数据流方式的处理, 
11. Burst IO 结构中,如果数据是 Nature order 输出的,那么只有在 unloading 结束了之后 才能有 loading 的过程; 如果数据是 Bit reverse 输出的,那么 unloading 和 loading 过程可以并行 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值