
技术摘要:
本发明涉及一种用于FFT运算的块浮点处理方法及装置,属于集成电路技术领域,解决了现有技术对FFT数据的吞吐率较差造成的FFT数据运算效率较低的问题。该处理方法包括如下步骤:对采集的多个FFT数据分别进行第1级蝶形运算,得到第1级蝶形运算结果;基于第n‑1级蝶形运算 全部
背景技术:
快速傅里叶变换(Fast Fourier Transform,FFT)是一种将数据从时域转换到变 换域进行处理的快速实现算法。现代的无线通信系统对FFT处理提出了较高的运算速率要 求和运算精度要求。 当前主流的FFT处理器采用基于存储的运算架构,通过多级蝶形运算完成各种点 数的FFT运算。由于蝶形运算主要通过多级的加法和乘法来实现,运算过程中需要进行位宽 扩展,而存储器的位宽是固定的,中间需要进行数据舍位处理。当输入数据的范围较大时, 传统的蝶形运算往往无法满足系统的精度要求,而浮点运算又占用过多的硬件资源。 另一方面,多级加法和乘法级联也导致运算延时较大,为了提高电路的运行速度, 往往需要采用级数较多的流水线设计来进行实现。但是流水线深度的加深,容易导致蝶形 运算占用较多的周期,特别是当FFT运算的点数较少时,常常会由于流水线的利用率较低而 导致很低的吞吐率,造成FFT运算效率较低。
技术实现要素:
鉴于上述的分析,本发明实施例旨在提供一种用于FFT运算的块浮点处理方法及 装置,用以解决现有技术对FFT数据的吞吐率差造成的FFT运算效率较低的问题。 一方面,本发明实施例提供了一种用于FFT运算的块浮点处理方法,包括如下步 骤: 对采集的多个FFT数据分别进行第1级蝶形运算,得到第1级蝶形运算结果;以及, 基于第n-1级蝶形运算结果,计算多个第n-1级蝶形运算的移位值; 基于所述第n-1级蝶形运算的移位值分别对相应的第n-1级蝶形运算结果进行移 位; 对移位后的第n-1级蝶形运算结果分别进行第n级蝶形运算; 直至得到第N级蝶形运算结果; 其中,2≤n≤N;N表示蝶形运算的级数,为大于等于2的自然数。 进一步,所述移位值由最小冗余位宽减去扩展位宽得到,其中,所述最小冗余位宽 为蝶形运算结果的最小符号位减1,所述扩展位宽为蝶形运算结果为了防止运算溢出所需 扩展的位宽。 进一步,得到第1级蝶形运算结果的同时,还包括:基于初始指数值减去所述第1级 蝶形运算的移位值,得到第1级指数值,其中,所述初始指数值基于外部输入获得; 得到第n级蝶形运算结果的同时,还包括:由第n-1级指数值减去第n级蝶形运算的 移位值,得到第n级指数值。 4 CN 111580867 A 说 明 书 2/7 页 另一方面,本发明实施例提供了一种用于FFT运算的块浮点处理方法,包括: 存储模块,用于采集多个FFT数据并存储;以及用于缓存第n-1级蝶形运算结果; 输入缓存处理模块,用于对缓存的所述第n-1级蝶形运算结果基于移位值进行移 位; 蝶形运算模块,用于分别对多个所述FFT数据进行第1级蝶形运算,得到第1级蝶形 运算结果,再对移位后的第n-1级蝶形运算结果分别进行第n级蝶形运算,以得到第N级蝶形 运算结果;其中,2≤n≤N,N为大于等于2的自然数; 块浮点处理模块,用于基于第n-1级蝶形运算结果得到移位值。 进一步,所述块浮点处理模块包括冗余计数单元、比较器、最小冗余寄存器和移位 值计算单元; 所述冗余计数单元,用于获得冗余位宽; 所述比较器,用于比较冗余计数单元获得的所述冗余位宽与最小冗余寄存器中的 当前冗余位宽,得到最小冗余位宽; 所述最小冗余寄存器,用于存储所述最小冗余位宽,所述最小冗余位宽为下一周 期中的当前冗余位宽; 所述移位值计算单元,用于根据所述最小冗余位宽得到移位值。 进一步,所述移位值由最小冗余位宽减去扩展位宽得到,其中,所述扩展位宽为蝶 形运算结果被扩展的符号位数。 进一步,所述块浮点处理模块还包括移位值更新单元,用于接收所述移位值计算 单元输出的移位值并存储。 进一步,所述移位值更新单元包括读写控制电路和移位值寄存器堆; 所述读写控制电路,用于根据当前输入的移位值选通移位值寄存器堆中相应的移 位寄存器; 所述移位值寄存器堆,用于存储移位值。 进一步,所述块浮点处理模块还包括轮转式指数值更新单元,用于更新多个所述 FFT数据的指数值。 进一步,所述轮转式指数值更新单元执行下述流程更新多个所述FFT数据的指数 值: 基于初始指数值减去第1级蝶形运算的移位值,得到第1级指数值,其中,所述初始 指数值基于外部输入获得;以及, 基于第n-1级指数值减去第n级蝶形运算的移位值得到第n级指数值。 与现有技术相比,本发明至少可实现如下有益效果之一: 1、一种用于FFT运算的块浮点处理方法,以解决现有技术存在的FFT数据的吞吐率 较差造成的块浮点处理效率低的问题,实现了多个FFT数据交叉进行的蝶形运算,在保证计 算精度的同时,提高了运算效率。 2、输出结果采用指数和尾数相结合的方法,相比定点数增加了一个指数位,使得 可表示的数据范围大大增加,同时通过多个数据共享一个指数位的方式减少了存储器件并 节省了运算资源,提高了硬件资源的利用率,节省了运算成本,具有较高的实用价值。 3、一种用于FFT运算的块浮点处理装置,解决了现有技术存在的FFT数据的吞吐率 5 CN 111580867 A 说 明 书 3/7 页 较差造成的块浮点处理效率低的问题,实现了多个FFT数据交叉进行的蝶形运算,在保证计 算精度的同时,提高了多级蝶形运算的效率。 4、存储模块通过采集并存储FFT数据为后期进行蝶形运算提供了支撑和依据,对 实现块浮点处理具有重要的意义。同时,蝶形运算模块实现了多个FFT数据交叉进行蝶形运 算,对FFT数据有较大的吞吐率,在保证计算精度的同时,提高了运算速率。 5、通过块浮点处理模块,获得了FFT数据的移位值,继而实现对蝶形运算结果的移 位,使得存储蝶形运算结果的存储器得到了重复利用,节省了硬件资源,提高了存储器的复 用率。 本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本 发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而 易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所 特别指出的内容中来实现和获得。 附图说明 附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图 中,相同的参考符号表示相同的部件。 图1为一个实施例中用于FFT运算的块浮点处理方法流程图; 图2为另一个实施例中用于FFT运算的块浮点处理装置结构图; 图3为另一个实施例中块浮点处理模块内部结构示意图; 图4为另一个实施例中移位值更新单元内部结构示意图; 图5为另一个实施例中轮转式指数值更新单元内部结构示意图; 附图标记: 100-输入缓存处理模块;200-蝶形运算模块;300-块浮点处理模块;400-存储模 块;500-输出缓存处理模块;600-控制模块。