FPGA Nios II学习笔记一

该笔记主要内容来源于锆石科技的教程及Altera相关手册,主要用于学习记录。

FPGA Nios II

在这里插入图片描述

寄存器组

寄存器分为三类:32个通用寄存器、32个控制寄存器、影子寄存器组

通用寄存器

用来暂存指令、数据、地址
在这里插入图片描述

控制寄存器

用于控制和确定Nios II处理器的操作模式,以及当前执行任务的特性
在这里插入图片描述

影子寄存器组

用来备份通用寄存器和状态寄存器,影子寄存器组通常会和外部中断控制器联合使用
在这里插入图片描述
每个外部中断对应一个** 影子寄存器组** ,用于快速保护中断现场,进行切换

复位信号

全局硬件复位信号 reset

外部输入,高电平有效,强制处理器核进入复位

本地复位信号 cpu_resetrequest

高电平有效,只让CPU复位,而NIOS II系统中的其他元件不受这个复位影响

异常和中断

NIOS II中讲中断机制统称为异常,根据类型分为以下五类
在这里插入图片描述

根据中断异常的实现方式可以分为:1、内部中断;2、外部中断
实际使用时,只能二选一

内部中断

Nios II支持32个内部中断,在Qsys为中断分配优先级
系统产生中断的条件:
1、Status控制寄存器中断PIE位置1
2、某个中断请求有效
3、在ienable寄存器中,该中断源相应位为1

Nios II系统相应中断依次执行的工作
1、把status寄存器内容复制到estatus寄存器总,保存当前处理器状态
2、清除status寄存器的PIE位为0,并禁止所有中断
3、把异常返回地址写入ea寄存器(r29)
4、跳转到异常处理地址

外部中断

在使用外部中断时,还需要设置相应的影子寄存器组。针对每一个外部中断,都会给它分配一个相对应的影子寄存器组,用来备份通用寄存器和状态寄存器,一旦外部中断来了之后,CPU就会切换到影子寄存器组中运行。运行完成后,CPU再返回到之前的寄存器中运行,因此能够完成保护现场的工作。
nios2_qsys通过interrupt_controller_in端口连接外部中断,逻辑中调用Vectored interrupt Controller IP

** 使用外部中断的场景**
1、 需要一个或多个中断来减少平均响应时间
2、中断性能有很强的实时性要求
3、不可屏蔽的中断
4、需要处理的中断超过32个

存储器与IO结构

在这里插入图片描述
Nios II 处理器属于哈弗结构,支持独立的指令和数据总线,指令和数据总线都遵循Avalon接口规范。

Nios II内核可以使用下面的一种或多种方式访问存储器和IO:
1、指令主端口:Avalon Master ,通过Avalon 系统互联结构访问到指令存储器
2、数据主端口:Avalon Master ,通过Avalon 系统互联结构连接到数据存储器
3、指令高速缓存:Nios II内核里面的高速缓存
4、数据高速缓存:Nios II内核里面的高速缓存
5、紧耦合指令或数据存储器端口:与Nios II内和外的快速存储器相连

数据主端口连接存储器和外设元件,指令主端口只连接存储器元件

指令主端口和数据主端口

在这里插入图片描述

指令主端口:对处理器将要执行的指令进行取指,并且它不执行任何写操作
数据主端口:1、当处理器执行装载指令时,从存储器或外设中读取数据,2、当处理器执行存储指令时,将数据写入存储器或外设

当存储器能够为系统提供指令,存储器需要连接指令端口和数据端口

指令高速缓存和数据高速缓存

在这里插入图片描述
高速缓存使用片内存储资源,能改善使用较慢片存储器的Nios II处理器系统的平均存储访问时间,在软件上几乎透明

注意,指令cache和数据cache虽然可以改善系统的整体性能,但是它会使程序执行的时间变得不可预测,对实时系统来说,代码执行的确定性——装载和存执指令、数据的时间必须是可预测的

MMU和MPU

在这里插入图片描述
MMU:Memory Manager Unit
实现虚拟地址与物理实际地址的映射管理,用于支持虚拟内存的操作系统

MPU:Memory Protection Unit
限制用户应用程序访问关键的系统资源,Nios Ii中仅提供了存储器保护,不支持内存映射管理,Altera HAL为MPU提供了基本的支持,无须OS

Nios II 中MMU与MPU只能二选一

紧耦合存储器

在这里插入图片描述
紧耦合存储器是一种紧挨着内核的快速SRAM,它不仅能改善系统性能,而且保证了装载和存储指令或数据的时间。
既能提高处理器的性能,又能获得可预测的实时响应,与cache相比的优点:
1、性能类似于高速缓存
2、软件能够保证关键性能的代码或数据存放在紧耦合存储器中
3、代码执行的确定性——转载和存储指令或数据的时间是可预测的

Qsys中连接示意图
在这里插入图片描述
nios2_qsys 会引出2个端口:tightly_coupled_data_master0 和 tightly_coupled_instruction_master0,然后例化onchip_memory用于缓存

Nios II处理器性能总结

Nios II处理器有三种类型

  • Nios Lite
  • Nios II/S
  • Nios II/f

性能对比
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值