MicroBlaze处理器于2002年开发,旨在集成多种复杂功能,以满足新的和不断增长的市场需求。因此,MicroBlaze处理器是Xilinx低端产品组合中的一个重要元素,可以实现更快的系统开发,其中包括Artix®-7 FPGA、Spartan®-6、Zynq®-7000 AP SoC。该处理器具有极高的可配置性,因此可以用作FPGA中的嵌入式处理器或微控制器,也可以用作基于ARM Cortex-A9的Zynq-7000 AP SoC中的协处理器。本文简要介绍了MicroBlaze处理器–体系结构和使用应用程序。


什么是Microblaze处理器?

主要为Xilinx的FPGA设计的软微处理器被称为MicroBlaze处理器。该处理器简单地在Xilinx的FPGA的通用存储器和逻辑结构中实现。该处理器类似于基于RISC的DLX体系结构,并且具有灵活的互连系统,从而支持不同的嵌入式应用程序。MicroBlaze的主I/O总线和AXI互连是一条具有主从功能的内存映射事务总线。

MicroBlaze利用专用LMB总线访问本地存储器,并提供快速片上存储。该处理器的许多部分可以由用户配置,如缓存的大小、管道内存管理单元的深度、嵌入式外围设备和总线接口。

微釉特征

这个Microblaz的特点e包括以下内容。它有32个通用寄存器。

  • 它有32位指令字,包括2种寻址模式和3个操作数。
  • 地址总线是32位的。
  • 它有3级管道或5级管道。
  • 一种带有移位器的ALU块单元。
  • Harvard体系结构包括32位数据和地址总线。
  • 数据接口和LMB或本地存储器总线指令。
  • AX14和AX14流接口。
  • 浮点单元和内存管理单元。
  • 它支持步调一致。
  • 调试和跟踪接口。

Microbaze架构

MicroBlaze处理器的框图如下所示。这款MicroBlaze处理器非常可定制,支持70多种设计选项。该体系结构显示了永久硬件功能以及可配置选项,如指令或数据缓存、内存管理单元、浮点单元等。

围绕MicroBlaze处理器组装的嵌入式系统主要包括MicroBlaze软处理器核心、片上本地存储器、标准总线互连和OPB外围设备(片上外围总线)。MicroBlaze处理器系统主要包括由本地存储器组成的处理器核心,以及包括多个MicroBlazer处理器、外部存储器和许多OPB外围设备的大型系统。

ding="async" class="wp-image-43236 size-full" src="https://uploads.9icnet.com/images/aritcle/20230518/Microblaze-Processor-Architecture.jpg" alt="Microblaze Processor Architecture" width="479" height="546" sizes="(max-width: 479px) 100vw, 479px">
Microblaze处理器体系结构

软处理器核心

MicroBlaze的软处理器核心是MicroBlaze嵌入式系统的核心。这是一款非常快速高效的32位RISC处理器,具有以下功能。

  • 指令集是正交的。
  • 独立的数据和指令总线。
  • 32位通用寄存器。
  • 它有一个可选的完整的32位桶形移位器。
  • 内置快速OCM或片上存储器接口和IBM的行业标准OPB(片上外围总线)。

Virtex II及以后的设备中的实现支持硬件的倍增。

片上本地存储器

同步存储器是一种本地存储器,主要用于允许片上块RAM。

标准总线互连

指令和数据端的总线接口包括一个到本地存储器的接口,称为LMB(本地存储器总线),以及一个到IBM芯片上外围总线的接口。因此,我们可以设计严格遵循哈佛架构的系统,否则,为了共享资源,我们可以通过总线仲裁器在组合中使用单个OPB。

本地存储器总线为片上块RAM提供了有保证的单周期入口。这是一个非常高效、简单和单一的主总线协议,非常适合连接快速本地存储器。OPB或片上外围总线是一种32位宽的多主总线,非常适合将外围设备和外部存储器连接到MicroBlaze处理器的核心。

片上外围总线外围设备

MicroBlaze硬件系统由OPB外围设备完成,以提供不同的功能,如看门狗定时器或时基、通用定时器或计数器、IC(中断控制器)、不同的控制器,如SRAM、闪存、ZBT存储器、BRAM、DDR、SDRAM、UART Lite、SPI、I2C、通用I/O、UART 16450/550和以太网10/100 MAC。此外,我们还可以添加和定义主要用于自定义功能的外围设备,否则,就是FPGA中存在的设计接口。

Microblaze指令集

Microblaze指令集包括算术、逻辑、分支、加载/存储等。所有指令的大小都是固定的。最多可以给出3个寄存器作为操作数。Microblaze包括两种指令格式类型A和类型B,如下所示。

A类指令格式主要用于寄存器-寄存器指令。因此,它包括操作码、单个目的地和两个源寄存器。B类指令格式主要用于寄存器立即指令,包括操作码、单目标和单源寄存器。&16位立即值源。

Instruction Formats
指令格式

在上述两种指令格式中,操作码是操作码,Rd是用5位编码的目的寄存器,Ra和Rb是源寄存器,其中每个寄存器用5位进行编码,立即数是16位值。

算术指令

下面给出了A型和B型算术指令。

A类

添加Rd、Ra、Rb

添加

Rd=Ra+Rb,进位标志受影响

添加K Rd、Ra、Rb

添加并保留进位

Rd=Ra+Rb,进位标志不受影响

RSUB路、Ra、Rb

反向减法

Rd=R-Rb,进位标志不受影响

B类

地址I Rd,Ra,Imm

添加立即数

Rd=Ra+符号延伸32(Imm)

ADD IK道路、Ra、Imm

添加立即进位并保持进位

Rd=Ra+符号延伸32(Imm)
RSUBIK路,Ra,Imm

带立即数的反向减法

Rd=Ra+信号扩展32(Imm)-Ra

拉州SRA路

算术右移

Rd=(Ra>>1)

逻辑指令

下面给出了A型和B型逻辑指令。

A类

OR Rd、Ra、Rb

逻辑或

Rd=Ra|Rb

与Rd、Ra、Rb

逻辑添加

Rd=Ra和Rb
异或Rd、Ra、Rb

逻辑异或

Rd=Rb^Rb

ANDN道路、Ra、Rb

逻辑与否

Rd=Ra和(Rb)

B类

ORI路,Ra,Imm

带立即数的逻辑OR

Rd=Ra|信号扩展32(Imm)
安迪路,拉,伊姆

带立即数的逻辑AND

Rd=Ra和signExtend32(Imm)
XORI路,Ra,Imm

带立即数的逻辑异或

Rd=Ra^符号延伸32(Imm)

安德里路,拉,伊姆

带立即数的逻辑AND NOT

Rd=Ra&(符号Extend32(Imm))

分支机构指令-无条件

修改程序计数器寄存器

BRID免疫

立即延迟的立即分支

PC=PC+符号扩展32(Imm)

允许延迟槽执行

Imm BRLID路

立即延迟的分支和链接(函数调用)

Rd=个人电脑

PC=PC+和signExtend32(Imm)

允许延迟槽执行

RTSD Ra、Imm公司

从子程序返回

PC=Ra+符号扩展32(Imm)

允许延迟槽执行

RTID Ra,免疫单位

中断返回

PC=Ra+符号扩展32(Imm)

允许延迟槽执行

在MSR中设置中断启用

分支机构说明-无条件1

满足条件时更改程序计数器寄存器

BEQI Ra、Imm公司

分支(如果相等)

PC=PC+符号扩展32(Imm)

如果Ra==0

BREI Ra、Imm公司

分支(如果不相等)

Rd=个人电脑

PC=PC+和signExtend32(Imm)

如果Ra!=0

分支机构说明-无条件2

满足条件时更改程序计数器寄存器

BLTI Ra、Imm公司

分支,如果低于

PC=PC+符号扩展32(Imm)

如果Ra<0

BLEI Ra,Imm公司

如果低于,则分支

Rd=个人电脑

PC=PC+和signExtend32(Imm)

如果Ra!<=0

BGTI Ra、Imm公司

如果大于,则分支

PC=PC+符号扩展32(Imm)

如果Ra!>0

BGEI Ra、Imm公司

分支,如果大于

PC=PC+符号扩展32(Imm)

如果Ra!>=0

加载/存储说明-类型A

LW路、Ra、Rb

加载字

地址=Ra+Rb

Rd=*地址

西南Rd、Ra、Rb

存储字

地址-Ra+Rb

*地址=路

B类

LWI路,拉,伊姆恩

立即加载字

地址=Ra+signExtend32(Imm)

Rd=*地址

西南路、Ra、Imm

立即存储单词

地址=Ra+signExtend32(Imm)

*地址=路

其他说明

移民管理局,移民管理局

立即的

将前面的B类指令的Imm扩展到32位。
马萨诸塞州MFS路

从专用寄存器移出

Rd=萨

Sa—专用寄存器,源操作数

 

MTS标准偏差,Ra

移至专用寄存器

Sd=拉

Sd–专用寄存器,目标操作数

寄存器

MicroBlaze处理器的体系结构是完全正交的,包括32位通用寄存器和32位专用寄存器,如程序计数器和机器状态寄存器。

管道体系结构

MicroBlaze采用三阶段流水线架构,包括提取、解码和完成阶段。在硬件中自动确定数据转发、分支和管道暂停。

加载或存储体系结构

MicroBlaze支持三种数据大小的内存:8位(字节)、16位(半字)和32位(字)。因此,内存访问总是数据大小一致的。这是一个Big Endian处理器,它使用Big Endia地址的地址以及访问内存时的标记约定。

中断

一旦发生中断,该处理器将结束当前执行,通过分支到中断向量地址来管理中断请求,并存储需要执行的指令地址。该处理器将通过清除MSR(机器状态寄存器)中的IE(中断启用)标志来停止未来的中断。

微釉是如何工作的?

MicroBlaze处理器支持32位总线宽度,该处理器核心是一个基于RISC的引擎,包括一个基于32位LUT RAM的寄存器文件,通过单独的内存和数据访问指令。
该处理器只支持片上BlockRAM和外部存储器。类似于IBM PowerPC;所有外围设备都使用类似的CoreConnect OPB总线,因此;处理器的外围设备与Virtex II Pro上的PowerPC非常匹配。

MicroBlaze处理器提供了完全的灵活性,可以选择存储器、外围设备和接口功能的组合,从而以更低的成本在单个FPGA上为您提供所需的精确系统。

B/W Microblaze与Risc-V的差异

这个MicroBlaze和RISC v之间的差异包括以下内容。

微釉

风险-V

它是一个主要为Xilinx FPGA设计的软微处理器核心。

 

RISC-V是一种基于RISC原理的指令集体系结构。

 

它使用哈佛RISC体系结构。 它使用指令集体系结构。
其许可证是专有的(赛灵思) 它的许可证是开源的。
管道的深度为3或5。 管道深度为5。
其性能为280 DMIP。 其性能为250 DMIP。
它的速度是235兆赫。 它的速度是250兆赫。
它有1027个LUT。 它有4125个LUT。
所使用的技术的实现是Xilinx FPGA。 所使用的技术的实现是FPGA/ASIC。

Microblaze的优势

这个MicroBlaze的优势包括以下内容。

  • 它很经济。
  • 它是高度可配置的。
  • 与ARM相比,它的性能很高。
  • 它由嵌入式开发工具包支持。
  • 它是一个软微处理器内核。
  • 为了帮助您快速安排应用程序,该处理器包括三种固定配置,它们与众所周知的处理器类微控制器、实时处理器和应用程序处理器有关。

微釉应用

这个MicroBlaze的应用包括以下内容。

  • 该处理器满足许多不同的应用要求,如工业、汽车、医疗和消费者等。
  • MicroBlaze的应用范围从基于软件的简单状态机到嵌入式应用程序或基于互联网的设备中使用的复杂控制器。
  • 它针对工业控制、办公自动化和汽车等嵌入式应用程序进行了优化。
  • MicroBlaze能够与一组大型外围设备进行通信,以适应中等规模的应用。
  • 该处理器的柔软特性使其可针对不同的应用进行定制,在这些应用中,设计师可以根据尺寸交换功能,以满足医疗、汽车、工业和安全应用的性价比目标。

因此,这一切都是关于Microblaze处理器的概述。这是一个功能齐全的32位可编程RISC软处理器内核。该处理器满足消费者、医疗、工业、汽车和通信基础设施市场等不同领域的不同需求。它是非常可配置的,因此用作FPGA中的嵌入式处理器或微控制器,否则就像ARM的协处理器一样。这里有一个问题要问你,什么是FPGA?