有关NIOS II软核处理器的简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关NIOS II软核处理器的简介相关的知识,希望对你有一定的参考价值。

因为要写的论文中需要对Nios II处理器做一下介绍,主要是论述性的文字,说明其创新、独特的地方,和以前旧单片机有哪些优势。字数越多越好

有关NIOS II软核处理器的简介:

    Altera 正式推出了Nios II系列32位RSIC嵌入式处理器。Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。

    自Altera于2000年推出第一代16位Nios处理器以来,已经交付了13000多套Nios开发套件,Nios成为最流行的软核处理器。刚推出的Nios II系列采用全新的架构,比第一代Nios具有更高水平的效率和性能。和第一代相比,Nios II核平均占用不到50%的FPGA资源,而计算性能增长了1倍。

    Nios II系列包括3种产品,分别是:Nios II/f(快速)——最高的系统性能,中等FPGA使用量;Nios II/s(标准)——高性能,低FPGA使用量;Nios II/e(经济)——低性能,最低的FPGA使用量。这3种产品具有32位处理器的基本结构单元——32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源;使用同样的指令集架构(ISA),100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。
    特别是,Nios II系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了算术逻辑单元(ALU)。用户能为系统中使用的每个Nios II处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身Nios II指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器。同时,Nios II系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。

    Nios II系列能够满足任何应用32位嵌入式微处理器的需要,客户可以将第一代Nios处理器设计移植到某种Nios II处理器上,Altera将长期支持现有FPGA系列上的第一代Nios处理器。另外,Altera提供了一键式移植选项,可以升级至Nios II系列。Nios II处理器也能够在HardCopy器件中实现,Altera还为基于Nios II处理器的系统提供ASIC的移植方式。

    Nios II处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。设计者能够用Altera Quartus II开发软件中的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。
    使用Nios II软件开发工具能够为Nios II系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。Nios II集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,Nios II开发套件包括两个第三方实时操作系统(RTOS)——MicroC/OS-II(Micrium),Nucleus Plus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。

    长期以来,Altera一直推行嵌入式处理器战略的原因是,随着应用的ASIC开发日益受到成本的困扰,OEM日渐转向FPGA来构建自己的系统。这些系统中绝大多数需要一个处理器,而Altera正是为设计者提供了为FPGA优化的灵活的嵌入式处理器方案,可以满足16位和32位嵌入式处理器市场的需求。估计到2007年,该市场价值将到达110亿美元。

    在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios II处理器的方案是基于HDL源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。

    Nios II嵌入式处理器特性
    嵌入式处理器Nios®II系列为Altera® FPGA和可编程片上系统(SOPC)的集成应用专门做了优化。表1详细描述了Nios II软核嵌入式处理器系列的特性,更多通用信息请参阅Nios II简介页面。

参考技术A 核心器件: Nios II

.clock (s1_clk), file://s1_clk为来自Avalon总线模块上的S1端口的时钟信号
.aclr (s1_reset), file://s1_reset为来自Avalon总线模块上的S1端口的复位信号
.q (s1_readdata), file://s1_readdata为流向Avalon总线模块的S1端口的32位数据
.address (s1_address) file://s1_address为来自于Avalon总线模块的S1端口的地址
);
file://控制寄存器读写端口(S2):
control_register the control_register
(
.clk (s2_clk), file://s2_clk为来自Avalon总线模块上的S2端口的时钟信号
.reset (s2_reset), file://s2_reset为来自Avalon总线模块上的S2端口的复位信号
.read (s2_read), file://s2_read为来自Avalon总线模块上的S2端口的读使能信号
.write (s2_write), file://s2_write为来自Avalon总线模块上的S2端口的写使能信号
.schipselect (s2_chipselect), file://s2_chipselect为来自Avalon总线模块上的S2端口的片选信号
.address (s2_address), file://s2_address为来自Avalon总线模块上的S2端口的地址
.readdata (s_readdata), file://s2_chipselect为流向Avalon总线模块上的S2端口的32位读数据
.writedata (s2_writedata) file://s2_writedata为来自Avalon总线模块上的S2端口的32位写数据
);

启动方案的软件设计

启动方案的软件设计目标是当系统复位后,在外部处理器向Nios II程序存储器和数据存储器传输数据的过程中,Nios II处理器运行要受到外部处理器的控制。当一切就绪后,外部处理器发出一条释放Nios II处理器的命令,接下来Nios II处理器就可以正常运行了。

软件部分主要就是存放在启动延迟模块中ROM的代码,此代码主要是检测启动延迟模块中控制寄存器2的第0位是否为1。若为1,则跳转到控制寄存器1中所存储的地址处执行。若设控制寄存器的基址为CONTROL_REG_BASE,为了减少代码量,这段代码容易用Nios II的汇编指令来实现,代码部分在此从略。

最后本方案在我们自己设计的一块开发板上经过测试,能够正确完成Nios II 处理器的启动。

结语

采用多处理器的系统虽然可以提高系统的性能,但传统的多处理器系统一般只出现在工作站及高端PC上,在嵌入式系统中由于其设计代价太高很少采用。本文设计了一种在多处理器系统中的Nios II软核处理器的启动方案,这个方案在外部处理器向Nios II的程序存储器和数据存储器加载数据时,可以控制Nios II处理器的启动。

在HardCopy II结构化ASIC中实现Nios II处理器
Nios® II系列嵌入式处理器具有三个处理器内核,可实现较大范围的嵌入式处理应用。这些软IP处理器内核可以工作在任何最新一代Altera® FPGA以及HardCopy®系列结构化ASIC上。设计人员可以选择使用高性能内核、低成本内核或者性价比合适的内核。Nios II系列处理器可实现如下任务:

做为系统处理器运行实时操作系统
实现复杂的状态机
分担现有处理器载荷
执行I/O和数据处理任务
加速数字信号处理(DSP)算法
在HardCopy II结构化ASIC中运行时,Nios II嵌入式处理器出众的处理能力满足了高性能片上系统(SOC)的要求。Nios II嵌入式处理器能够提供系统级处理器性能,实现处理器和系统功能以及逻辑在单个器件中的集成。HardCopy II结构化ASIC和Nios II嵌入式处理器结合使用能够满足计算、大容量存储、电信和网络应用的要求。

图1是单个HardCopy II结构化ASIC中多个Nios II处理器在数据处理和控制应用上的实例。

图1. HardCopy II器件中Nios II处理器进行数据处理

HardCopy器件设计流程使设计人员可以在一个FPGA中测试、验证其设计。然后将经过验证的设计递交给HardCopy设计中心,以没有风险的无缝移植方式在结构化ASIC中实现。HardCopy结构化ASIC是唯一能够实现在正式投产前,硬件功能在FPGA中验证以及系统软件在真实系统配置环境中进行设计、测试的器件。

由于设计在移交给Altera之前在FPGA中进行了测试,因此Altera从第一个原型开始就可以保证实现芯片的全部功能。

HardCopy II结构化ASIC体系结构
HardCopy II结构化ASIC基于Stratix II系列FPGA,在HardCopy II器件和Stratix II FPGA之间有多个原型选择。这取决于所需的HardCopy器件、I/O引脚和封装要求。HardCopy II器件具有高达350-MHz的性能,以Nios II处理器内核实现迄今为止最高的性能表现,而只消耗原型Stratix II器件的一半功率。

Stratix II器件结构中的嵌入式DSP模块也可以应用在HardCopy II器件中。这些DSP模块是对Nios II用户指令集和其他硬件加速单元的完美补充。DSP设计人员现在可以在高性能硬件DSP模块中生成DSP算法和复杂的数学程序,做为常用软件程序来访问或者做为Nios II CPU的用户指令来运行。设计人员可以方便灵活的实现高级软件设计,支持结构化ASIC中的并行硬件操作性能,而不需要进行额外的时钟加速。

HardCopy II器件的存储器可满足典型SOC的所有存储要求。每个最大9 M-RAM模块可提供64-K字节段。最大的HardCopy II器件含有576 K字节源码和数据存储。HardCopy II结构化ASIC还支持高速存储器接口,可使用最新的DDR2 SDRAM进行外部源码和数据存储。

低成本许可方式
Nios II系列嵌入式处理器以一次付清的方式进行许可,不需要对每个器件或每个工程支付额外的版税。Nios II许可允许在任何Altera器件中使用处理器内核,因此采用Nios II处理器和HardCopy II器件可为批量产品提供最具成本效益的解决方案。

Nios II许可通常做为Nios II开发包的一部分进行购买。现在可应用于Stratix®、Stratix II 和 Cyclone™ 器件系列,开发包含有Quartus® II FPGA设计软件和Nios II集成开发环境以及Nios II全部许可。所有的开发包都包括一块开发板及所需的电缆、电源,用户在打开包装后的几分钟内就可以使用Nios II处理器进行开发设计。

全面的SOPC解决方案
Altera的SOPC Builder自动系统开发工具为设计人员提供了强大的开发平台,可构成包括处理器、外设和存储器接口等常用系统组成的总线系统。

HardCopy II设计流程得益于采用了在FPGA原型阶段,FPGA设计文件生成时的SOPC Builder模块设计方法。基于模块的设计方法有助于Nios II处理器和其他IP模块同用户逻辑、用户指令和硬件加速器等典型高密度逻辑设计组成的集成。

Nios II外设和接口库页面上有适用于Nios II处理器的外设的更多详细信息
参考技术B 前不久,Altera 正式推出了Nios II系列32位RSIC嵌入式处理器。Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。
自Altera于2000年推出第一代16位Nios处理器以来,已经交付了13000多套Nios开发套件,Nios成为最流行的软核处理器。刚推出的Nios II系列采用全新的架构,比第一代Nios具有更高水平的效率和性能。和第一代相比,Nios II核平均占用不到50%的FPGA资源,而计算性能增长了1倍。
Nios II系列包括3种产品,分别是:Nios II/f(快速)——最高的系统性能,中等FPGA使用量;Nios II/s(标准)——高性能,低FPGA使用量;Nios II/e(经济)——低性能,最低的FPGA使用量。这3种产品具有32位处理器的基本结构单元——32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源;使用同样的指令集架构(ISA),100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。
特别是,Nios II系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了算术逻辑单元(ALU)。用户能为系统中使用的每个Nios II处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身Nios II指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器。同时,Nios II系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。
Nios II系列能够满足任何应用32位嵌入式微处理器的需要,客户可以将第一代Nios处理器设计移植到某种Nios II处理器上,Altera将长期支持现有FPGA系列上的第一代Nios处理器。另外,Altera提供了一键式移植选项,可以升级至Nios II系列。Nios II处理器也能够在HardCopy器件中实现,Altera还为基于Nios II处理器的系统提供ASIC的移植方式。
Nios II处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。设计者能够用Altera Quartus II开发软件中的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。
使用Nios II软件开发工具能够为Nios II系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。Nios II集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,Nios II开发套件包括两个第三方实时操作系统(RTOS)——MicroC/OS-II(Micrium),Nucleus Plus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。
长期以来,Altera一直推行嵌入式处理器战略的原因是,随着应用的ASIC开发日益受到成本的困扰,OEM日渐转向FPGA来构建自己的系统。这些系统中绝大多数需要一个处理器,而Altera正是为设计者提供了为FPGA优化的灵活的嵌入式处理器方案,可以满足16位和32位嵌入式处理器市场的需求。估计到2007年,该市场价值将到达110亿美元。
在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios II处理器的方案是基于HDL源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。
Nios II嵌入式处理器特性
嵌入式处理器Nios®II系列为Altera® FPGA和可编程片上系统(SOPC)的集成应用专门做了优化。表1详细描述了Nios II软核嵌入式处理器系列的特性,更多通用信息请参阅Nios II简介页面。

表1. Nios II嵌入处理器系列特性
特性 说明
设计流程及工具
硬件开发工具 本页面详列了搭建Nios II处理器硬件系统所用到的开发工具。
软件开发工具 本页面提供了Nios II集成开发环境(IDE)的相关信息,这是一种开发人员广泛应用的,包含编辑、编译和调试应用软件等功能的集成开发环境。
开发套件 Altera及其合作伙伴提供了大量应用了NiosII系列嵌入式处理器的开发板套件。
系统级设计流程 Altera的SOPC Builder工具提供了快速搭建SOPC系统的能力,这种架构可以是包含一个或几个CPU,提供存储器接口,外围设备和系统互连逻辑的复杂系统。
构架及特性
Nios II处理器核 Nios II处理器系列由三个不同的内核组成,可以灵活地控制成本和性能,从而拥有广泛的应用空间。
JTAG调试模块 JTAG调试模块提供了通过远端PC主机实现Nios II处理器的在芯片控制、调试和通讯功能,这是Nios II处理器的一个极具竞争力的特性。
用户指令 开发人员可以在Nios II CPU 核内增加硬件,用以执行复杂运算任务,为时序要求紧张的软件提供加速算法。
外围设备及接口 Nios II开发套件包括一套标准外围设备库,在Altera的FPGA中可以免费使用。
Avalon™交换式总线 Avalon交换式总线在处理器、外围设备和接口电路之间实现网络连接,并提供高带宽数据路径、多路和实时处理能力。Avalon交换式总线可以通过调用SOPC Builder设计软件自动生成。
设计资源
Nios II处理器支持 Nios II处理器支持页面提供了对Nios II 设计者有帮助的多种信息,其中包括使用许可、下载、参考设计、文档资料、在线展示及常见问题。
嵌入式处理器方案中心 嵌入式处理器方案中心提供了大量的信息以帮助开发人员应用Altera的嵌入式处理器实现系统设计。可获取的信息有器件支持、软件开发工具,外围设备及接口、培训、技术支持和资料。
Nios续订信息 Nios II开发套件包括一年期的CPU、外设和嵌入式软件开发工具的升级许可。(其中不包括Quartus® II软件的升级。)客户可以通过Nios续订程序每年订购包括Nios II 处理器的升级等额外信息。
Nios II嵌入式处理器问与答页面 此页提供Altera Nios II系列嵌入式处理器的常见问题及解答。

Stratix® II器件及Nios II处理器系列 Stratix II器件结构的优异特性和Nios II嵌入式处理器系列相结合,提供了无与伦比的处理能力,满足网络、通信、数据信号处理(DSP)应用、海量存储及其他高带宽系统的应用需求。
Stratix器件及Nios II处理器系列 Stratix FPGA结构的优异特性和Nios II嵌入式处理器相结合,提供了很高的处理能力,满足高带宽系统应用需求。
Cyclone™器件及Nios II处理器系列 在Cyclone器件中应用Nios II嵌入式处理器系列,降低了成本,提高了灵活性,在价格敏感应用环境中给低成本分立式微处理器提供了一个理想的替代品。本回答被提问者和网友采纳

nios II--实验2——led软件部分

软件开发

  1. 首先,在硬件工程文件夹里面新建一个software的文件夹用于放置软件部分;打开toolsàNios II 11.0 Software Build Tools for Eclipse,需要进行Workspace Launcher(工作空间)路径的设置,需要注意的是路径中不要含有空格等,然后单击OK即可。

技术分享

技术分享

?

  1. 新建工程。单击File -> New ->?Nios II Application and BSP from Template,弹出Nios II Application and BSP from Template对话框。先选择对应的SOPC系统,单击SOPC Information File name后面的浏览按钮,选择之前硬件部分做好的软核文件,后缀名为.sopcinfo,这里一定要注意,选择的文件一定要对应起来,否则会因为软硬不匹配导致系统失败。这里选择的lab2_led.sopcinfo,然后系统会自动读取CPU name,不用再进行设置,下面填写Project name,这里填写为lab2_led,工程模板(Project template)使用默认的即可。然后单击Finish完成即可。这时候会在左侧的Project Explorer中生成两个工程文件。

    技术分享

    代码设计如下,具体看源工程

    技术分享

  2. 右击工程,选择Nios II -> BSP Editor,进入Nios II BSP Editor配置界面。主要在main选项卡下hall中进行配置。然后单击Generate,生成BSP库。生成完成后,单击Exit退出即可。

    技术分享

    技术分享

  3. 编译工程。右击选择Build Project。第一次编译的话,时间也会比较常,耐心等待一下。
  4. 编译完成后,先将.sof文件下载到FPGA;

    技术分享

  5. 右击工程,选择Run As -> Nios II Hardware,弹出Run Configurations对话框,默认Project选项卡中Project name和Project ELF file name应该都是有内容的,没有的选一下。然后进入Target Connection选项卡,Connections中如果没有东西的话,单击右侧的Refresh Connection来查找下载器,查找后单击System ID Prroperties…,进行系统ID检测,检查是否是之前设置的ID号,无误后点击Apply,然后再点击Run,这是程序会被自动下载,最终在Nios II Console选项卡中会显示下载完成后程序运行的结果。

    技术分享

    技术分享

  6. 运行结果,在调试窗口输出Hello from Nios II!,并且板上的四个LED灯流动显示,表明测试成功!

    技术分享

实验代码

/*

* "Hello World" example.

*

* This example prints ‘Hello from Nios II‘ to the STDOUT stream. It runs on

* the Nios II ‘standard‘, ‘full_featured‘, ‘fast‘, and ‘low_cost‘ example

* designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT

* device in your system‘s hardware.

* The memory footprint of this hosted application is ~69 kbytes by default

* using the standard reference design.

*

* For a reduced footprint version of this template, and an explanation of how

* to reduce the memory footprint for a given application, see the

* "small_hello_world" template.

*

*/

#include "system.h"

#include "altera_avalon_pio_regs.h"

#include <stdio.h>

#include <unistd.h>

int main()

{

int i;

printf("Hello from Nios II!\n");

while(1)

{

for( i=0; i<4; i++ )

{

IOWR_ALTERA_AVALON_PIO_DATA( LED_PIO_BASE, 1<<i );

usleep( 1000000 );//each one 0.5s delay

}

}

return 0;

}

以上是关于有关NIOS II软核处理器的简介的主要内容,如果未能解决你的问题,请参考以下文章

Nios ii处理音频信号有何优点

在做FPGA嵌入软核时the nios ii elf executable does not exist错误,求详解哈,谢谢,用的是7.2版本

NIOS EDS最容易出错的地方

初学FPGA构建软核后,在nios2构建了helloworld简单程序但编译失败,好像是内存的问题希望能得到指点谢谢

NIOS2随笔——uCOS-II实时操作系统

nios ii在线调试后出现以下信息,采用的FPGA芯片是EP2C8Q208,不加SDRAM时调试正常,加后出现如下错误