第7章 Nios II体系结构
NIOS2完整教程
NIOS2完整教程NIOS II 是一款高度可配置的32位嵌入式软核处理器,由Intel旗下的Altera(现在归属于英特尔)推出。
它具有低功耗、高性能和可扩展性的特点,适用于各种嵌入式应用领域。
下面是一份简要的NIOSII完整教程,帮助您了解如何开始使用NIOSII。
1. Nios II 架构Nios II 架构包括处理器核、总线接口、存储器和外设设备。
处理器核包括CPU和一些协处理器,如乘法器、除法器等。
总线接口用于连接处理器核、存储器和外设设备。
存储器用于存储指令和数据。
外设设备包括UART、GPIO、SPI、I2C等。
2. Nios II 开发环境搭建首先,您需要安装Altera的Quartus软件来进行Nios II的开发。
Quartus提供了一个开发工具套件,包括编译器、仿真器和调试器。
您还需要安装Nios II EDS,这是一个集成开发环境,用于配置和生成Nios II处理器的软件。
安装完软件后,您可以创建一个新的Nios II项目。
3. Nios II 项目配置在Quartus中创建新的Nios II项目时,您需要指定处理器类型、时钟频率和存储器大小等参数。
您还可以选择添加外设设备和协处理器。
一旦项目创建完成,您可以使用Nios II EDS来配置处理器和外设设备,并生成相关的软件。
4. Nios II 软件开发Nios II 支持多种软件开发工具,包括C/C++编译器、汇编器和调试器。
您可以使用C/C++编译器来编写和调试应用程序。
您还可以使用汇编器来编写高性能的关键代码。
调试器可以帮助您检测和修复应用程序中的错误。
5. Nios II 系统调试在开发过程中,您可能需要进行系统调试,以解决应用程序的问题。
Nios II 支持硬件和软件调试。
硬件调试通过连接JTAG接口进行,可以在硬件级别上进行调试。
软件调试使用Nios II调试器进行,可以在软件级别上进行调试。
6. Nios II 系统验证在完成软件开发和调试后,您可以进行系统验证,确保系统的正确性和稳定性。
niosII操作图解
1、打开quaratusII软件2、打开low_cost_lcd工程打开的工程:3、打开sopcbuilder正在打开:Sopc builder中建立的niosII系统4、选择system generationSystem generation界面5、点击run niosII IDE 正在读取中间会提示选择workplace点browse选择在你电脑中的low_cost_lcd文件夹中的software---workspace作为工作空间这是在我电脑中的情况之后等待一会儿,根据电脑的配置不同时间也不同。
可以从上图看到workspace文件夹上面还有一些文件夹。
这些就是存放c/c++例程的地方:这就是存储c文件的地方这个文件夹中就是你所熟悉的c语言程序。
好了言归正传,现在niosII ide 应该已经启动好了,如下显示:6、打开一个你向下载到实验板上的c程序,我以flash_test为例:点击flash_test:7、因为这些文件都是编译过的,就可以不编译了,当然在编译一次也没关系:点project-build project8、先把qaratusII的工程下载到实验板上9、实验板不要断电,下载软件程序注意控制台中显示的内容显示到这一步你的程序就成功了最后讲一下如何建立新的软件工程:1、现在新建一个工程:2、点next选择空白工程3、为你的工程起个名字这时会在旁边出现一个新的工程---flash_test_26、新建一个c/c++文档:出现如下的对话框:7、上面是选择父目录,下面打入文件名8、完成:这时在左侧的工程池中出现了你刚建的文件:9、我先把flash_test.c中的程序复制了,flash_test.c文件的位置上文已经提过了在low_cost_lcd---software---flash_test中。
10、打开文件,然后把刚才复制过的内容粘贴进去,一个新的niosII软件工程就做好了。
编译下载。
nios ii 入门手册
一、建立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设置号以后再来设置此处。
NIOSII软件硬件开发流程
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.
编译过程可能遇到系统兼容性等问题,出现编译错误,解决办法如下:
(1)WIN7下,NIOSII IDE中关于cygwin编译报错的处理
2 [main] ? (1800) d:\altera\11.0\quartus\bin\cygwin\bin\make.exe: *** fatal error -couldn't allocate heap, Win32 error 487, base 0xB00000, top 0xC90000, reserve_size 1634304, allocsize 1638400, page_const 4096
需要的内存限制,单位是十进制MB。也可以用cygwin中的regtool完成该设置。例子如下:
regtool-iset/HKLM/Software/Cygnus\Solutions/Cygwin/heap_chunk_in_mb 1024
regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin
NIOSⅡ处理器体系结构研讨PPT(46张)
clock reset cpu_resetrequest cpu_resettaken
NiosII 处理器核
地址发生器
&
程序控制器
软件调试 JTAG接口
JTAG调试模块
异常控制器
中断源[0..31]
中断控制器
紧耦合
指令存储器
NI通O用SⅡ寄存处器理器核采用硬件实现,实现指令集并支持各 功r能0.模.r3块1 的工作,处理器核不包含外设和接口逻辑;
用户定制 指令逻辑
算术逻辑或单多元或少:如增加数或据 减小缓存的大小 紧耦合
nios ii处理器功能说明
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描述在软件中禁止浮点定制指令,而是用软件实现浮点指令。
NOIS II嵌入式处理器
NIOS嵌入式处理器Nios嵌入式处理器于2001年首次推出,创新的Nios® 嵌入式处理器成为业界第一款专门针对FPGA的商用处理器。
自此以后,众多的FPGA用户采用了Altera 提供的Nios和Nios II处理器。
Altera建议新设计采用Nios II处理器。
在二○世纪九十年度末,可编程逻辑器件(PLD)的复杂度已经能够在单个可编程器件内实现整个系统。
完整的单芯片系统(SOC)概念是指在一个芯片中实现用户定义的系统,它通常暗指包括片内存储器和外设的微处理器。
最初宣称真正的SOC――或可编程单芯片系统(SOPC)――能够提供基于PLD的处理器。
在2000年,Altera发布了Nios处理器,这是Altera Excalibur嵌入处理器计划中第一个产品,它成为业界第一款为可编程逻辑优化的可配置处理器。
本文阐述开发Nios处理器设计环境的过程和涉及的决策,以及它如何演化为一种SOPC工具。
Altera很清楚地意识到,如果我们把可编程逻辑的固有的优势集成到嵌入处理器的开发流程中,我们就会拥有非常成功的产品。
基于PLD的处理器恰恰具有应用所需的特性。
一旦定义了处理器之后,设计者就“具备”了体系结构,可放心使用。
因为PLD和嵌入处理器随即就生效了,可以马上开始设计软件原型。
CPU周边的专用硬件逻辑可以慢慢地集成进去,在每个阶段软件都能够进行测试,解决遇到的问题。
另外,软件组可以对结构方面提出一些建议,改善代码效率和/或处理器性能,这些软件/硬件权衡可以在硬件设计过程中间完成。
Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。
Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。
NIOSII SOPC实例1
一.关于SOPC1)SOPC英文全名为:System-On-a-Programmable-Chip,即可编程片上系统。
SOPC 用可编程逻辑技术把整个系统放到一块硅片上,来用于嵌入式系统研究和电子信息处理。
SOPC是一种特殊的嵌入式系统,它是片上系统(System-On-a -Chip,SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
SOPC设计包括以32位NIOSII软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计以及软件调试等。
SOPC系统设计的基本软件工具有:1)QuartusII:用于完成NIOSII系统的综合、硬件优化、适配、编程下载以及硬件系统调试等;2)SOPC Builder:Altera NiosII嵌入式处理器开发软件包,用于实现NiosII 系统的配置、生成,内嵌于QuartusII软件中;3)ModelSim: 用于对SOPC生成的NiosII系统的HDL描述进行系统的功能仿真;4)NiosII IDE:用于进行软件的开发、调试,以及向目标开发板进行Flash下载;二.关于NIOSII处理器NIOSII 是一个可配置的软核处理器。
“可配置”的意思是设计者可以根据性能和成本的要求来增加或删减处理器的功能。
ALTERA公司并不销售NIOSII处理器芯片,而是销售空的FPGA,并提供NIOSII 系统相应的IP核来组成NIOSII系统,然后将这个系统下载到FPGA中实现。
1)关于AVALONAvalon总线是SOPC硬件系统的重要组成部分,Avalon总线规范是为了开发SOPC 环境下外设而设计的。
图1-1 一个SOPC的示例二. SOPC简单实例:软核控制LCD液晶字母显示器1.系统构成规划1)系统功能:在character LCD上显示”Hello LCD from NiosII!”2)本系统中需要的外围器件:(1)L CD:输出显示(2)S RAM存储器:程序运行时将其导入SRAM3)SOPC中建立系统需要添加的模块包括:(1)N ios II 32bit CPU(2)L CD display(3)外部RAM总线(4)外部RAM接口(5)J TAG UART Interface(6)定时器2.硬件系统的建立1)首先打开Quartus II 建立工程文件:将工程文件命名为hello_lcd,顶层文件与工程文件同名。
NIOSII教程
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 设计需求。
NiosII常见问题解答
flash的数据线必须是双向引脚
地址线的连接需要小心,举个例子 对于地址线22位、数据线16位的flash器件而言,SOPC Builder生成 的NiosII系统顶层文件将包含23位的flash地址线:addr[22..0], 此时应当把flash器件地址线addr[21..0]与顶层文件的 addr[22..1]互连;
z 内建的CFI Table错误识别和重载
对于已知的某些flash器件的CFI Table问题,flash programmer已经 包含了校对代码来识别和纠正它们;此种情况下,对flash programmer使
本文档版权归作者所有,未经作者同意不得翻印、抄袭或公开传播;转载或引用请征求作者同意.
Value does not match;
运行NiosII IDE中内嵌的软件模板‘Memory Test’,执行‘Test Flash’
操作,如果该操作返回失败,则可能是下面两个原因导致的:
z 目标板的物理连接有问题,例如
flash器件的引脚与FPGA对应引脚互连不正确
flash器件的供电有问题
目 录 ......................................5
1 硬件开发....................................7
1.1 Flash Programmer ........................7
1.1.1 No CFI Table...........................7
作者:蔡伟纲
NiosII 之
常见问题解答
作者: 蔡伟纲
本文档版权归作者所有,未经作者同意不得翻印、抄袭或公开传播;转载或引用请征求作者同意.
NIOS2完整教程
NIOS2完整教程NIOSII是一种32位可配置的软核处理器,支持使用硬件描述语言(HDL)进行快速设计和开发。
下面是一个完整的NIOSII教程,介绍了NIOSII的基本概念和使用方法。
第一部分:NIOSII概述(300字)NIOS II是Altera公司推出的一种可配置软核处理器。
它可以根据需要进行配置,包括选择处理器指令集的大小和功能,以及设置外设和存储器的接口。
NIOS II是基于经典的RISC架构,具有高性能和灵活性。
第二部分:NIOSII的基本构成(300字)NIOSII处理器由五个核心组件组成:指令集体系结构(ISA)、处理器核心、数据存储器、指令存储器和外设接口。
ISA定义了NIOSII支持的指令集,包括整数指令、浮点指令和多媒体指令。
处理器核心执行指令,并且可以执行单周期、多周期或流水线处理。
数据存储器用于存储数据,指令存储器用于存储程序指令。
外设接口用于连接NIOSII处理器和外部设备。
第三部分:NIOSII的配置和开发环境(300字)第四部分:NIOSII的应用场景(300字)NIOSII可用于各种应用场景,包括但不限于嵌入式系统、通信系统、工业自动化和军事应用。
NIOSII的可配置性使得它非常适合于各种需求和资源约束的项目。
NIOSII的性能和可扩展性使得它能够满足高带宽和实时性要求的应用。
此外,NIOSII的软件开发环境也非常成熟和易于使用,可以加快开发过程。
第五部分:NIOSII的优势和挑战(300字)NIOSII相对于其他软核处理器的主要优势在于其可配置性和性能。
NIOSII可以根据需求进行定制,并且可以实现高度优化的硬件和嵌入式软件系统。
然而,NIOSII的可配置性也带来了一些挑战,例如设计复杂性和调试困难。
此外,NIOSII的性能也受限于硬件资源的可用性和设计的质量。
总结(200字)在本教程中,我们介绍了NIOSII的基本概念和使用方法。
NIOSII是一种可配置的软核处理器,支持使用HDL进行快速设计和开发。
SOPC系统设计与实践-要点归纳
《现代电子设计技术》课程要点归纳第1章概述1 SOPC名词解释2 VHDL名词解释:Very-High-Speed Integrated Circuit HardwareDescription Language超高速集成电路硬件描述语言3 集成电路发展的6个阶段:晶体管,小规模集成电路(SSI),中规模集成电路(MSI),大规模集成电路(LSI),超大规模集成电路(VSLI),片上可编程系统(SOC)4 片上系统(SOC)基本概念:SoC (System on Chip,片上系统) 是ASIC(Application Specific IntegratedCircuits) 设计方法学中的新技术,是指以嵌入式系统为核心,以IP 复用技术为基础,集软、硬件于一体,并追求产品系统最大包容的集成芯片.狭意些理解,可以将它翻译为“系统集成芯片”,指在一个芯片上实现信号采集、转换、存储、处理和I/O 等功能,包含嵌入软件及整个系统的全部内容;广义些理解,可以将它翻译为“系统芯片集成”,指一种芯片设计技术,可以实现从确定系统功能开始,到软硬件划分,并完成设计的整个过程.5 SOC设计方法学中的系统集成芯片技术包括的三个方面:设计重用技术,软硬件协同设计技术,纳米级电路设计技术6 SOC设计重用技术的概念、特点、构成及要求:主要指的是IP重用技术,重用预先设计并经验证的模块(可从第三方获得),以达到缩短设计周期、加快投入市场的目的;它由IP的设计和IP的使用两个部分构成,要求所设计的IP可重用、可配置和可升级,目标是IP能即插即用。
7 软硬协同技术的概念及其构成:一般来说,面向SOC的软硬件协同设计理论是从一个给定的系统描述着手,通过有效地分析系统任务和所需的资源,采用一系列变换方法并遵循特定的准则自动生成符合系统功能要求、符合系统约束的硬件和软件架构。
软硬协同主要包括系统描述、软硬件划分、软硬件协同综合以及软硬件协同模拟与验证。
SOPC_Nios II体系结构
❖ Nios II把外部硬件 的中断事件交由中 断控制器管理,内 核异常事件交由异 常控制器管理。
clock
NiosII处理器核
reset
cpu_resetrequest cpu_resettaken
地址发生器 &
软件调
程序控制器
试接口
JTAG接口
异常控制器
中断源 [0..31]
中断控制器
通用寄存器组 r0..r31
• 0表示处于超级用户态
ct15
(Scuppueidrvisor Mode)。 唯一的CPU序第列0号位PIE—外设中断允许位:
• 1表示允许外设中断;
• 0表示禁止外设中断。
寄存器 ct10 ct11 ct12 ct13 ct14 ct15
控制寄存器一览
控制寄存器组
名字
bit位意义: 31…2
1
5.1.1 Nios II处理器结构
clock
NiosII 处理器核
reset
cpu _resetrequest cpu _resettaken
地址发生器 &
软件调
程序控制器
试接口
JTAG 接口
异常控制器
中断源 [0 ..31]
中断控制器
通用寄存器组 r0..r31
控制寄存器组 ctl0..ctl5
0
status
保留
U PIE
estatus
保留
EU EPIE
bstatus
保留
BU BPIE
ienable
中断允许位
estatus、bstatus—都是status寄存器的影子寄存器:
ipending •发生断点或者异中常断时发:生保标存志sta位tus寄存器的值;
基于Nios Ⅱ软核的运动目标检测系统设计
( 哈尔滨理工大学计算 机科学 与技术学 院 ,哈尔滨 108 ) 500
摘 要 :介绍 了一种基 于 No I的运 动视 频检 测 片上 系统 ,该 系统 通过 采 用软/ 件 协 同设 计 的 i I s 硬 方 法 ,使 用 A e P C 5F G h r E 2 3 P A芯 片与 H 7 3 R视 频摄像 头 配合 实现 了高速 的数 字视 频 处理 ,选 a V 11 用 S R M和 F A H作为视 频数 据的 外部存储 器 ,满足 了运 动检 测 和保存 运动现 场的 需要 。并 且 DA LS 采 用 V ro D e l H L和 No 定 制指 令使 用硬件 实现 了 系统 的 大部 分功 能 ,提 高 系统 的处 理速 度 , ig i I sI 同时具有 良好的 灵 活性 和适应性 。 关键 词 :No ; i I sI 1 1 S P 运 动检测 3 R; O C;
s s m d s n i p o e e p o e s g s e d,a d t e s s m l a o d f x i t d a a t i t . y t e i rv st rc si p e n y t a o h g o e i l y a d pa l y e g m h n h e s s l b i n b i
dgtl i e rc si gb sn 7 3 R vd o p o e s h p d Ah r P C 5 F GA w t D M d ii d o p o e s y u ig HV 1 1 i e r c si c isa e aE 2 3 P i S RA a av n g n n h n
Absr c :1 sat l e c b sa moin d tcin o h p s se b s d o o Ic r n ad r -o — t a t hi ri e d s r e t ee t n c i y tm a e n Nis I o e a d h r wae s f c i o o t wae c e in me h d.I iw fte rq i me t fm t n d tcin,t i y tm mp e n shih s e d r o d sg to n ve o h e ur e n so i ee to o o h ss se i lme t 3 p e g
Nios_II中断简述及中断调试技巧
Nios II中断简述及中断调试技巧2008-11-05 17:35一、Nios II中断简述Nios II 的中断处理方式带有典型的RISC处理器的特征,所有的中断处理都从同一入口进入,然后由软件加以分配。
负责分配工作的软件叫系统ISR,它是由开发系统提供的,自动的连接到可执行程序上。
系统ISR维护着一个中断向量表,表中的每一项代表着一个专项处理程序的入口。
所有的专项处理程序都是由用户定义然后注册到中断向量表中的,叫做用户ISR。
系统ISR的入口地址是在SOPC_Builder中定义的,叫Exception Address。
和中断有关的CPU寄存器有:ctl0、ctl1、ctl3、ctl4。
Ctl0 是程序状态字,它的bit0位是全局中断允许位,1代表允许,0代表禁止。
Ctl1是程序状字的堆栈,当发生中断时,由它保留一个程序状态字的备份。
Ctl3是中断允许寄存器,其中每一位控制着一个中断源,1代表允许,0代表禁止,共计32位。
Ctl4是中断申请寄存器,每一位对应着一个中断源的中断请求,1代表有中断,0代表没有……计32位。
NiosII的中断处理过程是这样的:1.拷贝一份程序状态字到ctl1;2.清除全局中断允许位PIE,禁止中断;3.将下一条将执行的指令的地址存入R29,以便中断返回之用;4.跳转到中断入口地址,进入系统ISR;5.系统ISR保护现场;6.系统ISR检测ctl1的PIE位,如为0则进入软中断处理程序从11继续,否则由7继续;7.系统ISR检测Ctl4,如果有中断申请,则转到硬中断处理和序,否则进入软中断处理程序;8.硬中断处理程序将检测中断申请号,并检索中断向量表,跳转到用户中断处理程序;9.用户中断处理程序做出具体的处理,最后返回系统ISR;10.系统ISR恢复现场,并返回;11.软中断处理程序进行陷井指令、模拟指令判断,并做相应处理,然后返回系统ISR;12.系统ISR恢复现场并返回;软中断处理程序是用来处理由软件发起的中断事件的,包括调试指令引起的中断及未定义指令引起的中断。
NIOS2平台简要介绍
基于NIOS2的SOPC系统构建1 NIOS II体系结构Nios2处理器是Altera公司推出的32位RISC嵌入式处理器它是SOPC的核心。
具有200DMIPS 用来计算同一秒内系统的处理能力它的单位以百万来计算以上的运算能力处理器以软核的形式实现具有高度的灵活性和可配置性。
Nios II系列包括三种产品1 Nios II/f快速最共的系统性能中等FPGA使用量 2 Nios II/s标准高性能低FGPA使用量 3 Nios II/e经济低性能最低的FGPA 使用量。
Nios II系列支持使用专用指令。
专用指令是用户增加的硬件模块它增加了算术逻辑单元ALU。
开发者能为系统中使用的每个Nios II 砥鞔唇ǘ啻?56个专用指令这使得设计者能够细致地调整系统硬件以满足性能目标。
专用指令逻辑和本身Nios II指令相同能够从多达两个源寄存器取值可选择将结果写回目标寄存器。
同时Nios II系列支持60多个外设选项通过选择合适的外设获得最合适的处理器、外设和接口组合而不必支付根本不使用的硅片功能。
Nios II特性全32位指令集、数据和地址路径32个通用寄存器32个外部中断源单指令3232乘法器、除法器可产生32位的结果专门用于计算64位和128位乘法的指令用于单精度浮点运算的浮点运算指令单指令筒形移位寄存器可以同很多片上外设、接口、片外存储器和片外外设接口使用IDE驱动硬件调试模块可以轻松的对处理器进行开始、停止、中断等操作图1.1是Nios II处理器核的结构图各模块将分别做简要介绍。
图1.1 Nios II处理器核模块图数据处理主要由算术逻辑单元ALU完成现有的Nios II 内核中暂时没有协处理器。
用户逻辑接口Custom Instruction Logic用来连接用户定制的逻辑电路与Nios II内核。
在上图中可以看出Nios II采用哈佛结构数据总线和指令总线分开。
为了调试方便Nios II处理器集成了一个JTAG调试模块可以方便的与IDE 环境联合调试。
NiosII处理器中文参考手册
Hello MicroC/OS-II 设计 你使用的该指南的设计示例是一个用于练习熟悉该操作系统一些基本特点的简单的设计。图1—1是一个简化的应用图表。
图1-1Tutorial Example Design
在图1-1中展示的设计有五个活动的任务。send_task用增量数据(incrementing data)填入消息队列(message queue)。receive_task1和receive_task2定时把消息从消息队列中取出。getsem_task1 和 getsem_task2
3.建立并运行Nios II 软件工程.
这些步骤在接下来的章节中被详细描述.
创建一个新的Nios II IDE工程
在这个章节中你将要使用一个软件模板来创建一个新的Nios II IDE工程。执行以下步骤:
1.选择Programs > Altera > Nios II Development Kit <版本号> > Nios II IDE (Windows 开始菜单).
NiosII处理器中文参考手册
说明: 该指南将会使你熟悉niosII IDE和MicroC/OS-II开发流程。niosII IDE提供设计者一个充足的niosII开发平台。niosII IDE包含MicroC/OS-II实时操作系统,为设计者提供快速地搭建基于niosII处理器的MicroC/OS-II应用程序的能力。该指南提供了搭建一个基于MicroC/OS-II实时操作系统的简单程序的步骤说明。
2.选择 New > C/C++ Application (File menu).The first page of
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Nios II处理器结构框图
Nios II的寄存器文件包括32个通用寄存器和6个控制寄存器,Nios II结构允许将来添加浮点寄存器,其具体细节在下节介绍
第6章 目录
6.1 Nios II处理器结构 6.2 Nios II的寄存器文件 6.3 算数逻辑单元(ALU) 6.4 复位信号 6.5 Nios II处理器运行模式 6.6 异常和中断控制器 6.7 Nios II的异常处理 6.8 存储器及I/O结构 6.9 存储器和外设访问 6.10 Nios II处理器性能
控制寄存器组 寄存器 ct10 ct11 ct12 ct13 ct14 ct15 名字 status estatus bstatus ienable bit位意义: 31…2 保留 保留 保留 中断允许位 1 U EU BU 0 PIE EPIE BPIE
estatus、bstatus—都是status寄存器的影子寄存器: ipending •发生断点或者异常时:保存status寄存器的值; 中断发生标志位 唯一的CPU序列号 cpuid •断点或异常处理返回时:恢复status寄存器的值。
NiosII 理器核 处 紧耦合 指令存储器
地址发生器 & 程序控制器
通用寄存器组 r0..r31 指令Cache
异常控制器 中断源 [0..31 ] 中断控制器
紧耦合 指令存储器 指令总线 数据总线 紧耦合 数据存储器
控制寄存器组 ctl0..ctl5
IO口
用户逻辑
算术逻辑单元 (ALU)
指令Cache 紧耦合 数据存储器
6.2 Nios II的寄存器文件
Nios II的通用寄存器
尽管硬件对寄存器的用法几乎没有规定,但是它们在实际使
用过程中还是遵循一些约定俗成的惯例。如果想使用他人的子程 序,编译器或操作系统,最好还是遵守这些惯例。 我们通过下面的通用寄存器一览表来了解Nios II的32个通 用寄存器。
通用寄存器一览
控制寄存器组 ctl0..ctl5
IO口
用户逻辑
算术逻辑单元 (ALU)
指令Cache 紧耦合 数据存储器
Nios II处理器结构框图
Nios II采用哈佛结构,数据总线和指令总线分开。 为了调试方便,Nios II处理器集成了一个JTAG调试模块。
6.1 Nios II处理器结构
为了提高系统的整体性能, Nios II内核不仅可以集成 数据Cache和指令Cache, 还带有紧耦合存储器TCM 接口。TCM可以使Nios II 处理器既能提高性能,又 能获得可预测的实时响应。
控制寄存器组 ctl0..ctl5
IO口
用户逻辑
算术逻辑单元 (ALU)
指令Cache 紧耦合 数据存储器
Nios II处理器结构框图
6.1 Nios II处理器结构
Nios II把外部硬件的中断 事件交由中断控制器管理, 内核异常事件交由异常控 制器管理。
clock reset cpu _resetrequest cpu _resettaken 软件调 试接口 JTAG接口
控制寄存器一览
控制寄存器组 寄存器 ct10 ct11 名字 status estatus bit位意义: 31…2 保留 保留 1 U EU BU 0 PIE EPIE BPIE
status—状态寄存器: 只有第1位和第0位有意义。 保留 ct12 bstatus
ct13 ct14 ct15 ienable 中断允许位
通用寄存器一览
通用寄存器组 寄存器 r0 助记符 zero 清零 汇编中的临时变量 功能 寄存器 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 et bt gp sp fp ea ba ra 助记符 功能 子程序要保存的寄存器 子程序要保存的寄存器 子程序要保存的寄存器 子程序要保存的寄存器 子程序要保存的寄存器 子程序要保存的寄存器 子程序要保存的寄存器 子程序要保存的寄存器 为异常处理保留 为程序断点保留 全局指针 堆栈指针 帧指针 异常返回地址 断点返回地址 函数返回地址
r17 子程序要保存的寄存器 r0或zero: r1或at: r18 子程序要保存的寄存器 总是存放0值,对它读写无效。 这个寄存器在汇编程序中常用 r19 子程序要保存的寄存器 Nios II没有专门的清零指令, r2,r3: 作临时变量。 所以常用它来对寄存器清零。 用来传递4个非浮点参数给一 r4~r7: r20 子程序要保存的寄存器 个子程序。r3存放返回值的高 用来传递4个非浮点参数给一 r21 子程序要保存的寄存器 32位。如果这两个寄存器不够 个子程序。r4传递第一个参数, r22 子程序要保存的寄存器 存放需要返回的值,编译器将 r5传递第二个参数,以此类推。 r23 子程序要保存的寄存器 通过堆栈来传递。 如果这四个寄存器不够传递参 r24 为异常处理保留 数,编译器将通过堆栈来传递。 r8~r15: et r25 bt 为程序断点保留 习惯上,子程序可以使用其 中的值而不用保存它们。但 r26 gp 全局指针 使用者必须记住,这些寄存 r27 sp 堆栈指针 器里面的值可能被一次子程 r28 fp 帧指针 序调用改变,所以调用着有 r29 ea 异常返回地址 责任保护它们。 r30 r31 ba ra 断点返回地址 函数返回地址
通用寄存器组 寄存器 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 助记符 zero at 清零 汇编中的临时变量 函数返回值(低32位) 函数返回值(高32位) 传递给函数的参数 传递给函数的参数 传递给函数的参数 传递给函数的参数 调用者要保存的寄存器 调用者要保存的寄存器 调用者要保存的寄存器 调用者要保存的寄存器 调用者要保存的寄存器 调用者要保存的寄存器 调用者要保存的寄存器 调用者要保存的寄存器 功能 寄存器 r16 助记符 功能 子程序要保存的寄存器
clock reset cpu _resetrequest cpu _resettaken 软件调 试接口 JTAG接口
NiosII 理器核 处 紧耦合 指令存储器
地址发生器 & 程序控制器
通用寄存器组 r0..r31 指令Cache
异常控制器 中断源 [0..31 ] 中断控制器
紧耦合 指令存储器 指令总线 数据总线 紧耦合 数据存储器
紧耦合 指令存储器 指令总线 数据总线 紧耦合 数据存储器
IO口
用户逻辑
算术逻辑单元 (ALU)
数据Cache 紧耦合 数据存储器
Nios II
Nios II处理器结构框图
32位软核处理器
6.1 Nios II处理器结构
数据处理主要由算术逻辑 单元完成,在现有的Nios II内核中暂时没有协处理 器。 用户逻辑接口用来连接用 户定制的逻辑电路与Nios II内核。
r1r16~r23: at
r2习惯上,子程序必须保证这 函数返回值(低32位) r3些寄存器中的值在调用前后 函数返回值(高32位) r4保持不变,即要么在子程序 传递给函数的参数 r5
执行时不使用它们,要么使 传递给函数的参数 用前把它们保存在堆栈中并 r6 传递给函数的参数 在退出时恢复。 r24或et: r7 传递给函数的参数 在异常处理时使用。使用时, r25或bt: r8 调用者要保存的寄存器 可以不恢复原来的值。该寄存 在程序断点处理时使用。使用 r26或gp: r9 调用者要保存的寄存器 器很少作用其它用途。 时,可以不恢复原来的值。该 它指向静态数据区中的一个运 r27或sp: r10 调用者要保存的寄存器 寄存器很少作其它用途。 行时临时决定的地址。这意味 堆栈指针。Nios II没有专门的 r28或fp: r11 调用者要保存的寄存器 着在存取位于gp值上下32KB范 出栈(POP)入栈(PUSH)指令, 帧指针,习惯上用于跟踪栈的 r29或ea: r12 调用者要保存的寄存器 围内的数据时,只需要一条以 在子程序入口处,sp被调整指 变化和维护运行时环境。 保存异常返回地址。 r30或ba: r13 调用者要保存的寄存器 gp作为基指针的指令即可完成。 向栈底部,然后以sp为基址, 保存断点返回地址。 r31或ra: r14 调用者要保存的寄存器 用寄存器基址+偏移地址的方 保存函数返回地址。 r15 调用者要保存的寄存器 式来访问栈中的数据。
第6章(二)
Nios II 体系结构
第6章 目录
6.1 Nios II处理器结构 6.2 Nios II的寄存器文件 6.3 算数逻辑单元(ALU) 6.4 复位信号 6.5 Nios II处理器运行模式 6.6 异常和中断控制器 6.7 Nios II的异常处理 6.8 存储器及I/O结构 6.9 存储器和外设访问 6.10 Nios II处理器性能
第1位U—反映计算机当前状态: ipending 中断发生标志位 • 1表示处于用户态(Usermode); 唯一的CPU序列号 cpuid 第0位PIE—外设中断允许位: • 0表示处于超级用户态 • 1表示允许外设中断; (Supervisor Mode)。 • 0表示禁止外设中断。
控制寄存器一览
6.1 Nios II处理器结构
Nios II是一种软核(Soft-Core)处理器。
所谓软核,是指未被固化在硅片上,使用时需要借助EDA
软件对其进行配置并下载到可编程芯片(比如FPGA)中的 IP核。软核最大的特点就是可由用户按需要进行配置。
6.1 Nios II处理器结构
ห้องสมุดไป่ตู้
Nios II软核处理器简介
6.2 Nios II的寄存器文件