8.2  Altera公司的NIOS II解决方案

8.2.1  NIOS的主要特点

NIOS II是一个用户可配置的通用RISC嵌入式处理器。Altera推出的NIOS II系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能。

把NIOS II嵌入到Altera的FPGA,如StratixII、Stratix、Cyclone II、Cyclone、APEX、ACEX和HardCopy系列器件中,用户可以获得超过200 DMIPS的性能,可以从3种处理器以及超过60个的IP核中选择所需要的功能。

使用NIOS II处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,快速使得产品推向市场,扩展产品的生命周期,并且避免处理器的更新换代。

 

下面是NIOS II处理器的优点和特性。

(1)提高系统性能。

·  一系列的处理器核可供选择,其中包括了超过200 DMIPS性能的核。

·  实现任何数量的处理器或将不同的处理器核组合在一起。

·  增加了已有的处理器,在FPGA中添加一个或更多的NIOS II软核处理器。

(2)更低的系统成本。

·  通过将处理器、外设、存储器和I/O接口集成到一个单一的FPGA中,从而降低了系统成本、复杂性和功耗。

·  通过将NIOS II处理器嵌入到低成本的FPGA中只需花费35美分或者更低(对大多数用户而言,NIOS II所占逻辑资源的成本大约是10~20元人民币,具体取决于所选FPGA的类型和NIOS II的配置)。

(3)应对产品的生命周期。

·  提供易用的设计工具从而快速将产品推向市场。

·  提供永久、免费的许可,从而使基于NIOS II处理器的产品避免了处理器的更新换代而带来的损失。

(4)功能强大、易用的开发工具。

·  通过使用NIOS II集成开发环境(IDE),从而加速了软件的开发。

·  利用Altera的强大的SOPC Builder系统开发工具和Quartus II设计软件可以在几分钟内设计一个系统。

(5)使用完全功能的开发包。

·  使用易用的NIOS II开发包开始一个设计。

·  使用易用的NIOS II开发包开始设计。

·  可以选择具有低成本特性的Cyclone FPGA开发套件,或高性能的StratixII FPGA开发套件。

 

在很多对速度的要求不是很高的低端应用中,Altera将一个软核放入PLD,这个软核就是NIOS。它只占芯片内部很少的一部分逻辑单元,成本很低。同ASIC相比较,如果将处理器放到ASIC中,生产的每片芯片都要付给处理器厂商专利费。况且ASIC的NRE(一次性投资)大,风险也大,NIOS则没有这个问题。NIOS的开发工具包价格很低。

 

在速度要求高的高端应用,如通信领域,软核的处理速度不够。Altera就将硬核(ARM9)集成到APEX器件中,还集成入RAM和RAM控制器。同时Altera本身在PLD的结构方面也不断发展和创新,推出的HardCopy StratixIII器件系列,是一个针对大容量设计的,从原型设计到批量生产的完整解决方案,试图成为ASIC的全面替代方案。

 

8.2.2  NIOS技术实现方式

1.设计工具

Altera的Max+Plus II曾是应用广泛、非常受欢迎的PLD(可编程逻辑器件)设计软件。它对于FPGA和CPLD这些PLD器件的应用推广、电路部件和嵌入式系统的设计,以及高校有关专业的教学实习,做出了非常重要的贡献。

近年来,为适应微电子技术及其应用的飞速发展,尤其是SoC(片上系统)技术发展的需要,Altera推出了新版本的PLD设计软件Quartus II。它继承了Max+Plus II的所有优点,是更加完善的PLD设计工具。

PLD的设计工具主要包括:不同的设计输入(包括原理图,VHDL或Verilog-HDL)工具、综合仿真工具、时限分析工具、功率评估工具、PLD布局布线工具和产品验证工具等。

Altera的SOPC开发工具SOPC Builder,将软硬件的设计结合起来,提供给客户一个很好的开发环境,开创了嵌入式系统设计的新理念。

 

2.SOPC Builder

SOPC Builder是一个软件工具,它属于一种基于IP或者平台的设计方法。利用SOPC Builder,用户可以很方便地将处理器、存储器和其他外设模块连接起来,形成一个完整的系统。

SOPC Builder中已包含了NIOS处理器以及其他一些常用的外设IP模块。用户也可以设计自己的外设IP。从用户的角度来看,SOPC Builder是一个能够生成复杂硬件系统的工具。但从内部来看,SOPC Builder包含两个主要部分:一个图形用户界面(GUI)以及一个系统生成程序。

(1)SOPC Builder图形用户界面。

SOPC Builder图形用户界面提供管理IP模块、配置系统和报告错误等功能。用户通过图形用户界面设计系统。完成设计之后,单击“Generate”按钮,则启动系统生成程序。系统生成程序通常从图形用户界面中启动。

(2)系统生成程序。

系统生成程序执行大量的功能,创建几乎所有的SOPC Builder输出文件(HDL逻辑文件,C程序的头文件和库文件,模拟文件等)。所以,SOPC Builder可看作是一个以IP模块为输入,集成的系统为输出的工具。

SOPC Builder会提示用户设置参数,并提示使用哪些可选的端口和外设。一旦向导生成了NIOS系统模块,则可以在设计文件中生成实例。一些常规硬软件接口、中断子程序等,都可被SOPC Builder完成,节约用户很多时间,而且更可靠。

 

3.NIOS II指令结构

NIOS II CPU是一种采用流水线技术、单指令流的RISC处理器,其大部分指令可以在一个时钟周期内完成。NIOS II处理器又是一种软核CPU,专门针对Altera的可编程逻辑器件以及片上可编程系统的设计思想,做了相应优化。

作为一种可配置的通用RISC处理器,它可以与用户自定义逻辑(user logic)结合构成SoC系统,并下载到Altera的可编程器件中去。32位NIOS软核,结合外部闪存以及大容量存储器,可构成一个功能强大的32位嵌入式处理器系统

在Altera的NIOS II嵌入式处理器中,用户可以在NIOS II指令系统中增加用户自定义指令,以增强其对强实时软件算法的处理能力。用户自定义指令可以通过单周期或多周期操作来完成复杂的处理任务。

另外,增加的用户自定义指令同样可以访问存储器或NIOS系统外的逻辑。采用用户自定义指令,用户可以把一个复杂的标准指令序列,简化为一条用硬件实现的单个指令。这一特性可以用于多种情况,例如对数字信号处理(DSP)、数据包处理以及计算密集型软件进行优化。

 

4.Avalon总线

Avalon总线是一种将片上处理器和外设连接成片上可编程系统(SOPC)的一种简单总线结构。它描述了主从构件间的端口连接关系,以及构件间通信的时序关系。Avalon总线规范提供了各种选项,来剪裁总线信号和时序,以满足不同类型外设的需要。

SOPC Builder能够自动产生Avalon总线。Avalon总线也包括许多特性和约定,用以支持SOPC Builder软件自动生成系统、总线和外设。片上可编程系统(SOPC)的设计人员在嵌入式系统开发和调试时,还有其他辅助工具,例如:ModelSim模拟器,以及其他监控、调试工具等。