集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1791|回复: 9

片内微处理器软核MicroBlaze

[复制链接]
小舍YZ 发表于 2017-7-7 11:55:44 | 显示全部楼层 |阅读模式
        Xilinx嵌入式开发系统组成介绍

片内微处理器软核MicroBlaze

1.MicroBlaze体系结构

MicroBlaze软核是一种针对Xilinx FPGA器件而优化的功能强大的32位微处理器,是业界最快的软处理器IP核解决方案,支持CoreConnect总线的标准外设集合,具有兼容性和重复利用性,最精简的核只需要将近400个Slice。

MicroBlaze软核内部采用RISC架构和哈佛结构的32位指令和数据总线,内部有32个通用寄存器R0~R3、2个特殊寄存器程序指针(PC)和处理器状态寄存器(MSR)、1个ALU单元、1个移位单元和两级中断响应单元等基本模块,还可具有3/5级流水线、桶形移位器、内存管理/内存保护单元、浮点单元(FPU)、高速缓存、异常处理和调试逻辑等可根据性能需求和逻辑区域成本任意裁剪的高级特性,极大地扩展了MicroBlaze的应用范围。MicroBlaze处理器的内核仍在不断更新中,目前最新版为MicroBlaze V7.0,其内部架构如图9-1所示。

图9-1 MicroBlaze内部架构示意图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:56:45 | 显示全部楼层
MicroBlaze处理器架构均衡了执行性能和设计尺寸,但由于其最高工作频率由FPGA芯片提供,所以计算性能随处理器配置、实现工具结果、目标FPGA架构和器件速度级别的不同而不同。表9-1给出了不同FPGA芯片上的MicroBlaze性能对比表,其结果不代表一般嵌入式应用的计算性能。

表9-1 MicroBlaze内核的最大Dhrystone性能
注:DMIPS表示每秒执行的Dhrystone指令数量。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:57:30 | 显示全部楼层
2.MicroBlaze的总线接口
CoreConnect是由IBM开发的片上总线通信链,它使多个芯片核相互连接成为一个完整的新芯片成为可能。Xilinx以IBM CoreConnect为嵌入式处理器的设计基础,具有丰富的接口资源。目前,最新版本的MicroBlaze软核支持的接口标准有:
•        带字节允许的OPB(On-chip Peripheral Bus,片上外设总线)V2.0接口;
•        高速的LMB(Local Memory Bus,本地存储器总线)接口;
•        FSL主从设备接口;
•        XCL(Xilinx Cache Link,Xilinx缓存链路)接口;
•        与MDM(Microprocessor Debug Module,微处理器调试模块)连接的调试接口。
其中,OPB是对IBM Core Connect片上总线标准的部分实现,适用于将IP核作为外设连接到MicroBlaze系统中。LMB用于实现对片上的blockRAM的高速访问。FSL是MicroBlaze软核特有的一个基于FIFO的单向链路,可以实现用户自定义IP核与MicroBlaze内部通用寄存器的直接相连;而XCL则是MicroBlaze软核新增加的,用于实现对片外存储器的高速访问。MicroBlaze软核还有专门的调试接口,通过参数设置,开发人员可以只使用特定应用所需要的处理器特性。Xilinx提供了大量的外设IP Core,可外挂到MicroBlaze的OPB总线上,如DMA单元、以太网MAC层处理器、PCI/PCIe接口、串口以及USB等,如图9-2所示。

图9-2 MicroBlaze支持的外设接口示意图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:57:56 | 显示全部楼层
其中,DMA和多端口存储器控制器是高速接口,OPB属于低速接口总线,一个外设一般不能同时和这两类总线相连。以太网MAC控制器模块之所以和两类总线连接,是因为其控制接口和OPB总线相连,数据接口和高速的DMA总线连接。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:59:03 | 显示全部楼层
3.MicroBlaze寄存器

1)通用寄存器

MicroBlaze内核中的32个32位的通用寄存器记为R0~R31。寄存器并不是由外部复位输入(如reset或debug-rst脚)复位,而是在比特流下载的时候复位。通用寄存器的描述如表9-2所示。
表9-2 MicroBlaze通用寄存器功能表

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:59:32 | 显示全部楼层
2)特殊寄存器

程序指针(PC)寄存器:存储下一条指令的地址。它可以由一个MFS指令读出且不能由MTS指令写入。当使用MFS指令的时候,将Sa置为00000或rpc将定义PC寄存器。表中内容为程序指针执行中的指令的地址。也就是说,“mfs r2 rpc” 指令将把mfs指令自己的地址存入R2中。

机器状态寄存器(MSR):包含了处理器的控制和状态比特,可以通过MFS指令读,也可以通过MTS指令或者专用的指令MSRSET、MSRCLR指令写。当对MSR进行读操作时,bit29作为进位位被复制到bit0位。写MSR需要一个时钟周期的延时,当用MTS指令向MSR写指令时,在MTS指令执行结束一个时钟周期之后,写入的值才生效。所有写入bit0的值将被忽略。当使用MTS指令或MFS指令的时候,将sx置为0001或rmsr被定义为对MSR的操作。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 12:01:17 | 显示全部楼层
本帖最后由 小舍YZ 于 2017-7-7 12:02 编辑

4.MicroBlaze指令集

MicroBlaze指令字为32位,有A型和B型两种类型指令。A型指令有两个源寄存器和一个目的寄存器,用以完成寄存器到寄存器间的数据运算;B型指令有一个源寄存器、一个目的寄存器和一个16位的立即数(通过在B型指令前加一个IMM指令可将其扩展到32位),可以进行寄存器和立即数间的数据运算。其指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。类型A和类型B的指令格式如图9-3所示。

图9-3(a) 类型A指令格式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 12:02:07 | 显示全部楼层
图9-3(b) 类型B指令格式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 12:03:48 | 显示全部楼层
Microblaze指令执行的流水线是并行流水线,它分为3级流水:取指、译码和执行,如图9-4所示。

图9-4 MicroBlaze的流水线

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
d643189658 发表于 2017-8-11 19:00:50 | 显示全部楼层
谢谢楼主的分享
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 13:24 , Processed in 0.073920 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表