2.2.2 方案二
用软件编写FFT,以软件的形式将FFT算法植入FPGA中。采用C语言实现时域抽取基2-FFT比较简单,并且系统占用资源很少,但是处理速度较慢。为了提高软件处理的速度,可以有以下几种方法:
1)旋转因子是通过sin和cos函数计算得到,速度较慢。所以旋转因子必须在主函数调用fft函数之前产生并存放在一个数组里,通过指针可以取出数组里的数据。这样每次运算时就不必再进行旋转因子的计算而可以直接查询得到数据进行运算,节省了大量时间。
2)软件中的循环也是比较耗费时间的。在软件设计过程中,尽量减少循环次数,把能放在一次循环中处理的步骤放在一起,删减不必要的循环,也能够加快软件处理的速度。
3)数据类型。如果采用精度很高的数据类型,例如double型,不仅占用的资源多了,而且处理速度也不是很乐观,而采用int型数据可能造成较大的误差,并且因为C语言中int型的运算没有四舍五入,而是直接舍去小数点后的数字,这样会使运算产生错误。
2.2.3 方案三
考虑到FFT的运算复杂度和硬件编写的难度,可以借用quartus软件所提供的IP核来实现FFT运算,将显示和存储功能交由NIOS来完成,这样使得硬件和软件协同,发挥了各自的优势;
综上所述,本设计采用方案三;
2.3 主要技术介绍
2.3.1 Nios Ⅱ软核处理器
2.3.1.1 Nios Ⅱ第二代软核处理器简介
2000年发布的Nios软核处理器是Altera的Excalibur嵌入式处理器计划中的第一个产品, 是当时业界第一款为可编程逻辑优化的可配置处理器。Nios将CPU与FPGA的功能集于一身,既简化了电路板设计, 又不存在接口速率瓶颈问题,因而可使整个系统在一块芯片上完成。Altera公司于2004年6月又推出了性能更好的第二代软核处理器Nios Ⅱ。与第一代产品相比, Nios Ⅱ的最大处理性能提高了3倍,而CPU内核面积则缩小了1/2。Nios Ⅱ处理器具有完全可定制和可重新配置特性, 能在多种系统设置组合中进行选择,这样,既满足了成本要求,又能实现功能的多样化。同时, 软核处理器可以很方便地实现现场软、硬件升级,使产品符合最新规范并具备最新特性。 基于FPGA的数字频谱分析仪设计和实现(5):http://www.751com.cn/tongxin/lunwen_7030.html