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 过程可以并行
2021-03-15
最新推荐文章于 2021-10-04 21:22:59 发布