您需要提高性能吗?没有问题。实现硬件加速与使用FPGA可编程逻辑来卸载并加速通常在应用软件中实现的任务一样简单。
您希望自动完成硬件加速吗?只需要右键点击加速您的关键性能C语言软件算法,工具会为您自动将其转换为硬件。
请继续阅读,了解在FPGA中加速软件的详细信息。Nios® II开发人员一般主要使用两种方法来进行硬件加速。
硬件加速器
硬件加速器是由Nios II C语言至硬件加速(C2H)编译器自动生成的逻辑模块,也可以是手动设计用于从系统处理器中卸载某些任务的逻辑模块。很多数学运算在硬件中实现时,要比软件实现更快,效率更高。SOPC Builder和AvalonTM交换架构支持使用硬件加速器来提升Nios II处理器软件的性能。与其他方法相比,硬件加速器能够:
- 使用主存储器和其他系统资源,这些资源具有全流水线和存储器延时匹配主机端口,支持非常高的存储器带宽。
- 由CPU通过从机端口进行控制
- 具有软件打包器功能,由CPU进行控制,在工具链中替代了最初的C代码。
图1显示了一个典型的硬件加速器,它含有两个连接至Avalon交换架构的的主机端口(读和写)。加速器使用直接存储器访问(DMA)组件来执行总线读和写操作,它提供控制端口以便处理器进行控制。最后,在中心位置,加速器逻辑是计算指定算法的引擎。
图1.典型硬件加速器组成

硬件加速器为Altera FPGA增加了强大的功能,它作为复杂多周期协处理器来实现,可以流水线访问系统中的所有存储器和外设。它们可以使用FPGA资源(例如,片内存储器和硬核宏乘法器)来实现本地存储器缓冲以及乘法累加(MAC)电路。它们能够根据需要尽可能多的使用主机端口,启动读写操作,访问系统中的所有I/O引脚。很多Nios II开发人员发现,硬件加速器是提升软件代码性能最好的方法,能够充分发挥Altera® FPGA高性能体系结构的优势。
定制指令
与硬件加速器相似,定制指令支持Nios II设计人员将部分软件代码在硬件功能中实现,从而提升了系统性能。但是,定制指令是在处理器边界内实现的,扩展了CPU指令集以加速对时间要求较高的软件。
利用Nios II处理器的可配置特性,设计人员能够将定制逻辑直接集成到算术逻辑单元(ALU)中。通过定制指令,开发人员可以优化实际应用中的软件内循环,这些应用包括数字信号处理(DSP)、数据包帧头处理,以及计算量较大的应用,将复杂的运算序列缩减为在硬件中实现的一条指令。
使用定制指令,设计人员能够优化系统性能,其实现方式是传统商用处理器所不具备的。Altera的SOPC Builder提供图形用户界面,开发人员可以利用它很方便的导入自己的硬件设计文件,开发定制指令,自动集成到Nios II处理器中。
Nios II处理器定制指令提供:
- 256条用户定义的指令
- 固定和可变周期运算
- 用户逻辑导入向导
- C和汇编语言软件宏
图2显示了灵活的定制指令逻辑。
图2.定制指令逻辑

如果需要了解详细信息,请参考Nios II 处理器手册。
