NiosII Processor
- 格式:ppt
- 大小:2.28 MB
- 文档页数:24
题目:Nios Ⅱ和Micro Blaze的比较目录引言 (2)体系结构及特点 (2)开发环境 (4)应用与使用 (5)总结 (6)参考文献 (7)引言Nios Ⅱ嵌入式处理器是ALTERA公司推出的采用哈佛结构、具有32位指令集的第二代片上可编程的软核处理器, 其最大优势和特点是模块化的硬件结构, 以及由此带来的灵活性和可裁减性。
相对于传统的处理器, Nios Ⅱ系统可以在设计阶段根据实际的需求来增减外设的数量和种类。
Micro Blaze嵌入式软核是一个被Xilinx公司优化过的可以嵌入在FPGA中的RISC处理器软核,具有运行速度快、占用资源少、可配置性强等优点,广泛应用于通信、军事、高端消费市场等领域。
Xilinx公司的Micro Blaze 32位软处理器核是支持Core Connect总线的标准外设集合。
Micro Blaze处理器运行在150MHz时钟下,可提供125 D-MIPS的性能,非常适合设计针对网络、电信、数据通信和消费市场的复杂嵌入式系统。
体系结构及特点(一)Nios ⅡNios Ⅱ处理器核Nios Ⅱ处理器系列由三个不同的内核组成,可以灵活地控制成本和性能,从而拥有广泛的应用空间。
1)JTAG调试模块JTAG调试模块提供了通过远端PC主机实现Nios Ⅱ处理器的在芯片控制、调试和通讯功能,这是Nios Ⅱ处理器的一个极具竞争力的特性。
2)用户指令开发人员可以在Nios Ⅱ CPU 核内增加硬件,用以执行复杂运算任务,为时序要求紧张的软件提供加速算法。
3)外围设备及接口Nios Ⅱ开发套件包括一套标准外围设备库,在Altera的FPGA中可以免费使用。
4)Avalon™交换式总线Avalon交换式总线在处理器、外围设备和接口电路之间实现网络连接,并提供高带宽数据路径、多路和实时处理能力。
Avalon交换式总线可以通过调用SOPC Builder设计软件自动生成。
Nios II系列支持使用专用指令。
一、前言学习NIOS的必备条件:具有一定的单片机基础;具有一定的C语言编程能力;了解Quartus II的开发流程;一块开发板。
二、建立工程首先,打开Quartus II 9.0 软件。
接下来,建立一个工程File->New Project Wizard第一行是工程的路径,你选择你放置的路径即可,第二,第三行都是工程名(注意:工程名不要用中文,路径中也不要含有中文字符,否则后面编译时会出错),写好以后如下,点击Next,点击后,如下图所示,这个不需要改动,接着点击Next,点击后,如下图所示,Family 里选择Cyclone II,在Available devices中选择EP2C8Q208C8(具体内容根据你的芯片所定)。
接着点击Next,不需要修改,点击Finish,显示如下图所示。
至此为止,工程已经建立完成。
接下来,需要建立一个Block Diagram/Schematic File,点击File->New,如下图所示:点击OK,完成建立,工程中出现了一个Block1.bdf 文件。
三、AD7606的工作原理1.工作原理AD7606是8通道16位逐次逼近型ADC,有2种接口模式:串行接口模式和高速的并行接口模式,并行接口模式又分为8位和16位传送方式。
在数据转换时,2个转换信号CONVSTA/B,用来控制每4个或每8个ADC同时采样。
如果将2个CONVST引脚连接在一起,就可对8个ADC同时进行采样。
在CONVSTX的上升沿,被选择的ADC对被置为保持模式,转换开始。
CONVSTX的上升沿过后,BUSY信号变为高电平表明转换正在进行,转换时间是2μs,BUSY信号返回低电平表明转换结束。
在BUSY信号的下降沿,ADC 回到跟踪模式,数据可以通过并行或串行接口从输出寄存器读出。
16位并行接口读取数据时可以用CS和RD信号通过并行数据总线从AD7606读取数据。
通过并行总线读取数据时,需将PAR/SER/BYTE SEL引脚和低电平相连。
一、建立quartus ii工程首先,双击quartus ii 9.1图标打开软件,界面如下图1.1所示图1.11.1新建工程(1)点击file –>New Project Wizard 出现图1.2所示的对话框。
图1.2(2)点击Next。
如图1.3所示:第一行是工程的路径,二、三行为实体名。
填好后点击Next。
图1.3(3)此处可选择加入已设计好的文件到工程,点击Next。
图1.4(4)选择设计器件如图1.5所示。
接着点击Next。
图1.5(5)接着点击Next。
无需改动,点击finish,显示如下图所示。
图1.6(6)此时,工程已经建立完成,接下来需要建立一个原理图输入文件,点击file –>New ->Block Diagram/Schematic File 后如图1.7所示。
图1.7二、构建一个nios ii 软核(1)首先点击Tools ->Sopc Builder图2.1在System Name中输入软核的名称,注意:软核的名称不能和quartus工程的实体名相同,否则编译会出现错误,接着点击ok。
图2.2图中clk_0为时钟名称,100.0为时钟值双击可修改其值。
即软核的时钟就是100MHZ。
(2)建立nios ii处理器点击Processors -> Nios ii Processor 如图2.3所示图2.3点击后,将出现下图,在下图中选择软核的类型。
这里提供了三种类型,Nios II/e占用资源最少600-800LEs,功能也最简单,速度最慢。
Nios II/s占资源比,前者多一些,功能也多了,速度也忚一些Nios II/f 占资源最多,功能也最多,速度就最快,用户可根据实际的需要选择不同的类型。
此处选择Nios II/f型,速度和功能都能满足。
下方Reset Vector是复位后启动的Memory类型和偏移量。
待SDRAM设置号以后再来设置此处。
NIOS II常见编译问题解答win7下的兼容性问题cygdrive/f/altera/10.0/nios2eds/components/altera_hal/build/system_rules.mk:120:/components/altera_hal/build/gnu_rules.mk: No such file or directory/cygdrive/f/altera/10.0/nios2eds/components/altera_hal/build/system_rules.mk:124:/components/altera_hal/build/gtf_rules.mk: No such file or directorymake[1]: *** No rule to make target `/components/altera_hal/build/gtf_rules.mk'. Stop.make: *** [system_project] Error 2Build completed in 11.068 seconds解决办法:因为在win7下的权限问题.具体解决方法参考下面的方法:Under your Quartus II folder, go to bin->cygwin->bin folder, select the following files in the list below and then right-click and choose Properties. Under the Compatibility tab, check “Run this program in compatibility mode for:”and choose “Windows XP (Service Pack 2)”. Check “Run this program as an administrator”, as well.Here is the list of files that you can select to change their compatibility mode under the Quartus II->bin->cygwin->bin folder:1. Make.exe2. Sh.exe3. Echo.exe4. Cygstart.exe5. MakeInfo.exe6. Perl.exe7.Collect2.exe(undernios2eds\bin\nios2-gnutools\H-i686-pc-cygwin\libexec\gcc\nios2-elf\3.4.6)8. Nios2-elf-g++.exe (under nios2eds\bin\nios2-gnutools\ H-i686-pc-cygwin\bin)在英文网上查到的,这几个不同的exe文件在不同的bin文件夹之间,依次右击改掉属性,把允许管理员使用权限前面打上勾即可.5.如果run Niosii时经常出现到2%后N久也不动,也不报错,甚至进度条也在滚,当然没有前进了。
IDE: Quartus Prime 18.0 Standard Edition,max10能用的只有Standard和lite版本.开发板: DE10-Lite, 芯片型号为:10M50DAF484C7G语言: Verilog HDL, C.Step 1.建立一个MAX10的工程. 注意Device and pin options的configuration mode的选择。
基于MAX10的NIOS II入门Step 2. 启动Platform designer (老版本叫Qsys),添加Nios II Processor、onchip_memory、onchip_flash、pio、jtag_uart以及sysid_qsys几个简单的模块。
采用默认就可以了,Clk直接使用的是50 MHZ。
连接相关clk等的连线(连线都连上就行)。
Step 3. 设置NIOS. 程序储存在FLASH中,在RAM运行Step 4. 设置flash. 注意configuration mode. 需要与Device and pin options的configuration mode设置一致。
Step 5. 基本就这些设置,完后generate,生成HDL文件。
在Test.v中调用NIOS_CPU,然后在Quartus左侧的文件列表中添加synthesis目录下的NIOS_CPU.qip文件。
此处NIOS_CPU是你自己命名保持的platform designer工程名,编译,下载到Max10中。
Step 6. Tool -> NIOS II software build tools for eclipse. 新建一个Nios II Application and BSP form Template. SOPC information file name选择上一步生成的NIOS_CPU.sopcinfo. Template选择hello_world_small应用,点击finish完成应用程序创建。
NIOS II功能模块说明(一)结合前面的NIOS II处理器架构简介,后面对各功能模块进行简要说明。
NIOS II功能模块说明(一)l 通用寄存器NIOS II架构包含32个32位通用寄存器,还包含32个32位的控制寄存器。
处理器架构能支持超级用户模式和普通用户模式,以便系统软件保护不同应用的控制寄存器。
这可以通过设置控制寄存器来实现。
NIOS II架构还能兼容未来增加的浮点寄存器。
算术逻辑单元(ALU)NIOS II的算术逻辑操作是基于通用寄存器来完成的,整个操作需要将一个或两个输入操作数进行运算,然后将计算结果输出并存储到寄存器中。
NIOS II支持的数据运算包括:1.算术运算:包括对有符号和无符号操作数进行的加、减、乘和除运算。
2.关系运算:包括对有符号和无符号操作数进行的等于、不等于、大于等于和小于运算。
EDA中国门户网站2e#t;jF"{1S3.逻辑运算:包括对逻辑操作数进行的与、或、或非和异或操作4.移位和循环移位操作:可以在单指令对操作数进行0至31位的移位和循环移位操作,并且能支持左移和右移、左循环和右循环移位。
NIOS II核并没有采用硬件来实现全部的NIOS II指令集,对没有用硬件实现的指令又称为未实现指令(Unimplemented Instructions)。
NIOS II核支持IEEE标准754‐1985规定的单精度浮点指令,这些单精度定制指令包括浮点加、减和乘运算,浮点除运算作为扩展的简单指令集有效。
这些指令均作为定制指令在NIOS II中实现,通过NIOS II Processor MegaWizard接口可以很容易的设计这些浮点指令。
需要注意的是,浮点除指令若采用硬件来实现,或占用比其他指令多的多的资源,若在设计中不使用硬件实现,则处理器会使用软件来实现浮点除运算。
另外,由于指令集仿真器不支持定制指令,若需要在指令集仿真器上运行软件,可以使用如下的#pragma描述在软件中禁止浮点定制指令,而是用软件实现浮点指令。
NIOS教程(4) --------使用板载的SRAM存储器在此实验中我们将建立一个NIOS工程,实验点亮LED的演示使用板载的SRAM并且烧代码烧录到板载的EPCS4存储配置芯片中运行。
1.先打开QuartusII 9.0SP2软件点击菜单栏FileÆ New Project Wizard,弹出如下对话框点击Next>按钮继续,在此步中,What is the working directory for this project? 是询问你的这个项目工程打算放在哪里?我们改为D:\ask2cb_nios\nios4 (表示整个工程建立在D盘的ask2cb_nios目录下的NIOS4目录下面)What is the name of this project? 是询问你这个工程项目名是什么?我们改为nios4(表示这是第四个nios示例工程)What is the name of the top-level design entity for this project? 是询问这个工程项目的顶层设计入门名我们改为nios4,表示顶层模块名为nios4改成如下图所示:点击Next>继续提示D盘ask2cb_nios目录下下面没有nios4这个目录,询问是否要创建它,选择是(y),让QuartusII创建这个目录。
向导开始询问是否有现成的文件需要加到当前新建的工程中?这步不用管它,点击Next>继续,在此步中,向导询问你使用的是何种器件,我们在Device family组合框中,Family下拉列表中选择CycloneII,在Available devices:下面的列表框中选择EP2C5Q208C8,这是我们ASK2CB-5开发板所使用的FPGA主芯片(EP2C5Q208C8),如果您购买的是ASK2CB-8开发板,请选择EP2C8Q208C8。
在本教程中,默认采用的是EP2C5Q208C8,如果你的开发板上的FPGA主芯片为EP2C8Q208,请修改相应的器件为EP2C8Q208C8点击Next按钮继续在此步中询问你要使用何种综合工具,仿真工作,时序分析工具,不用管它,点Next>继续,最后显示一个整个新建的Project的摘要。
NIOSII教程NIOS II 是一种基于软核的处理器,可用于 FPGA 设计中。
它是由Altera 公司所开发的。
NIOS II 可以在 FPGA 中进行快速原型设计,并且具有高度可配置性和可扩展性。
本文将介绍 NIOS II 的基本架构和使用方法。
NIOSII架构基于RISC架构,它是一个32位的处理器,并且具有可选的指令扩展。
它的流水线深度可以根据设计的需求进行配置,以实现不同的性能要求。
NIOSII支持多种功能,包括硬件中断、异常处理以及浮点运算等。
在开始使用NIOSII进行开发之前,首先要进行软核处理器的配置。
配置包括选择所需的指令集、流水线深度和其他性能参数。
配置完成后,可以将软核处理器添加到FPGA设计中。
一旦软核处理器被添加到FPGA设计中,就可以开始编写应用程序。
NIOSII支持标准的C/C++语法,并且还提供了一些特殊的函数和指令,用于访问FPGA的硬件资源。
例如,可以使用特殊函数来配置GPIO引脚、读取和写入存储器以及执行其他与硬件交互的操作。
使用NIOSII进行FPGA开发具有许多优点。
首先,它提供了一种快速原型设计的方法,可以大大加快开发进程。
其次,NIOSII的可扩展性和高度可配置性使得它适用于各种不同的FPGA设计需求。
最后,NIOSII的开发工具和调试接口使得开发和调试过程更加简单和高效。
总结起来,NIOS II 是一种基于软核的处理器,适用于 FPGA 设计中。
它具有灵活性和可配置性,可以使用 C/C++ 或 HDL 进行开发,并通过Altera 公司提供的工具链进行编译和调试。
NIOS II 提供了一种快速原型设计的方法,并且适用于各种不同的 FPGA 设计需求。
熟悉Nios II开发环境注意:此文档是提供学习Nios II开发环境的过程。
具体的器件要根据自己的学习板上的器件选择。
Nios II的开发涉及到多个软件工具,由于文档需要面向最广泛的开发者,在这一篇中以一般的开发流程,图文并列的方式进行探讨,假设读者已经正确安装Altera公司的Quartus II6.0或更高版本、Nios II Development Kit6.0或更高版本的软件,对软件安装不再赘述。
1软件工具介绍Nios II的开发包括了以32位Nios II软核处理器为核心的硬件配置、硬件设计、软件仿真、软件设计、软件调试等,基本的软件工具有:1.1Quartus II,用于完成Nios II系统的综合、硬件优化、适配、编程下载和硬件测试1.2SOPC Builder是Altera Nios II嵌入式处理器开发软件包,用于实现Nios II系统的配置、生成、Nios II系统相关的软件的生成1.3ModelSim用于对SOPC Builder生成的Nios II的HDL描述进行系统功能仿真1.4Matlab/DSP Builder,生成Nios II系统硬件加速器,并为定制新指令提供支持。
1.5Nios II IDE,软件开发调试环境。
我们主要使用上述工具1、2、5,对3、4工具的开发使用可以根据大家的具体需求另行探讨。
2Nios II应用系统开发设计流程介绍II开发分硬件开发和软件开发两个流程,硬件开发过程主要由用户定制系统硬件, Nios然后由SOPC Builder等工具完成系统硬件和对应的开发软件生成;软件设计和传统方式类似,接近于unix/linux系统开发,软件开发又可以细分为HAL驱动程序开发和应用系统开发。
在以后的实践中我们会体会到Nios II的开发是一个灵活的软硬件融合的开发过程。
3Nios II系统硬件设计实例导航我们以一个简单的基于Nios II的系统开发过程来介绍Nios II系统的开发过程,该系统具有四个按钮,8个LED输出,SDRAM,FLASH硬件,实现简单的流水灯。