高速64点FFT芯片设计技术
发布时间:2008/6/3 0:00:00 访问次数:999
fft(快速傅里叶变换)广泛应用于现代数字信号处理的各个领域,如雷达信号处理、卫星通信、无线通信等,而专用fft处理芯片已成为其中的关键部件之一,对系统性能影响较大。本文针对64点fft处理器,探讨和研究了采用标准cmos数字工艺库研制fft处理asic(专用集成电路)芯片的若干问题,成果可引伸到更大点数的fft处理芯片的设计中。
本文介绍了按照固定几何结构fft算法,采用并行及流水线结构的fft处理器的原理与电路实现。fft处理器主要包括i/o缓存、数据缓存、旋转因子存储器、蝶形运算单元、地址产生器、i/o控制器和系统控制器等模块。内部数据采用ieee754标准的单精度浮点格式,实现高精度数据处理。为进一步提高系统数据吞吐率,fft处理器采用双i/o缓存,可同步进行数据变换和i/o操作。
1 fft原理及运算流图的改进
dft(离散傅里叶变换)满足以下关系式:
式中:
序列x(n)及x(k)均是复数表示。cooly和tukey提出的的fft算法利用系数wknn的对称性和周期性,大大减小了dft的运算量。
g(k)仪包含x(n)中偶数点序列,而h(k)仅包含x(n)中奇数点序列,考虑g(k)、h(k)的周期性,得到:
经典fft运算流图的缺点是每级蝶形运算数据寻址方式都不同,fft处理器寻址电路设计复杂。本文采用了一种固定几何结构的fft运算方法,每级运算采用相同寻址电路,简化了电路设计。
下面以16点fft运算为例,分析固定几何结构fft运算流图。如图1所示,固定几何结构的fft运算流图中,每级蝶形运算寻址结构相同,序列中每相隔n/2的两个数据送入一个蝶形运算单元进行处理,输出结果顺序排列。由于该流图数据处理具有倒序的特点,所以旋转因子也采用倒序输入,并且,得到的变换结果也为倒序排列。
本文采用c语言对该流图算法进行模拟,证明该结构正确可行。
2 fft处理器的结构与模块划分
fft处理器主要包括蝶形运算单元、数据缓存、i/o缓存、地址生成器、运算控制器,i/o控制器。
为实现高速处理,本文采用并行结构处理数据,并用流水线结构实现蝶形运算单元。为进一步提高系统工作效率,采用双缓存分别用作数据缓存及i/o缓存,进行fft操作的同时,读入新的待处理数据,输出之前的处理结果,实现数据处理和i/o操作的并行。由于fft运算按特定方式寻址,且变换结果倒序排列,因此,需要一组地址生成器用于数据处理及i/o操作的寻址。运算控制器和i/o控制器共同控制系统各模块协同工作。
3 流水线结构蝶形运算单元的实现
蝶形运算单元的性能直接影响到处理器的工作速度。由于数据采用ieee754标准单精度浮点格式,因此蝶形运算单元的浮点加法器及浮点乘法器是电路设计的难点之一。
如图2蝶形结所示,蝶形运算的一次复数乘法包含4次乘法和2次加/减法,若将旋转因子w对应的c,c+s,c-s预先存入rom,采用
则如式(4)、(5)所示,一次复数乘法只需要3次乘法和3次加/减法。用1次减法取代乘法,降低了电路的面积和功耗。
因此,可以根据各数据的运算顺序,采用并行处理和流水线结构实现蝶形运算单元,其结构见图3。
3.1 浮点加法器的设计实现
由于fft为复数运算,因此数据的实部、虚部均采用ieee754标准32bit单精度浮点格式,字长为64 bit。
如图4所示,浮点加法器可分为3部分。首先通过data_man模块,将数据的符号位、指数、尾数分离,并进行预处理;然后根据指数的差值,将尾数部
fft(快速傅里叶变换)广泛应用于现代数字信号处理的各个领域,如雷达信号处理、卫星通信、无线通信等,而专用fft处理芯片已成为其中的关键部件之一,对系统性能影响较大。本文针对64点fft处理器,探讨和研究了采用标准cmos数字工艺库研制fft处理asic(专用集成电路)芯片的若干问题,成果可引伸到更大点数的fft处理芯片的设计中。
本文介绍了按照固定几何结构fft算法,采用并行及流水线结构的fft处理器的原理与电路实现。fft处理器主要包括i/o缓存、数据缓存、旋转因子存储器、蝶形运算单元、地址产生器、i/o控制器和系统控制器等模块。内部数据采用ieee754标准的单精度浮点格式,实现高精度数据处理。为进一步提高系统数据吞吐率,fft处理器采用双i/o缓存,可同步进行数据变换和i/o操作。
1 fft原理及运算流图的改进
dft(离散傅里叶变换)满足以下关系式:
式中:
序列x(n)及x(k)均是复数表示。cooly和tukey提出的的fft算法利用系数wknn的对称性和周期性,大大减小了dft的运算量。
g(k)仪包含x(n)中偶数点序列,而h(k)仅包含x(n)中奇数点序列,考虑g(k)、h(k)的周期性,得到:
经典fft运算流图的缺点是每级蝶形运算数据寻址方式都不同,fft处理器寻址电路设计复杂。本文采用了一种固定几何结构的fft运算方法,每级运算采用相同寻址电路,简化了电路设计。
下面以16点fft运算为例,分析固定几何结构fft运算流图。如图1所示,固定几何结构的fft运算流图中,每级蝶形运算寻址结构相同,序列中每相隔n/2的两个数据送入一个蝶形运算单元进行处理,输出结果顺序排列。由于该流图数据处理具有倒序的特点,所以旋转因子也采用倒序输入,并且,得到的变换结果也为倒序排列。
本文采用c语言对该流图算法进行模拟,证明该结构正确可行。
2 fft处理器的结构与模块划分
fft处理器主要包括蝶形运算单元、数据缓存、i/o缓存、地址生成器、运算控制器,i/o控制器。
为实现高速处理,本文采用并行结构处理数据,并用流水线结构实现蝶形运算单元。为进一步提高系统工作效率,采用双缓存分别用作数据缓存及i/o缓存,进行fft操作的同时,读入新的待处理数据,输出之前的处理结果,实现数据处理和i/o操作的并行。由于fft运算按特定方式寻址,且变换结果倒序排列,因此,需要一组地址生成器用于数据处理及i/o操作的寻址。运算控制器和i/o控制器共同控制系统各模块协同工作。
3 流水线结构蝶形运算单元的实现
蝶形运算单元的性能直接影响到处理器的工作速度。由于数据采用ieee754标准单精度浮点格式,因此蝶形运算单元的浮点加法器及浮点乘法器是电路设计的难点之一。
如图2蝶形结所示,蝶形运算的一次复数乘法包含4次乘法和2次加/减法,若将旋转因子w对应的c,c+s,c-s预先存入rom,采用
则如式(4)、(5)所示,一次复数乘法只需要3次乘法和3次加/减法。用1次减法取代乘法,降低了电路的面积和功耗。
因此,可以根据各数据的运算顺序,采用并行处理和流水线结构实现蝶形运算单元,其结构见图3。
3.1 浮点加法器的设计实现
由于fft为复数运算,因此数据的实部、虚部均采用ieee754标准32bit单精度浮点格式,字长为64 bit。
如图4所示,浮点加法器可分为3部分。首先通过data_man模块,将数据的符号位、指数、尾数分离,并进行预处理;然后根据指数的差值,将尾数部