microblaze

MicroBlaze嵌入式软核是一个被Xilinx公司优化过的可以嵌入在FPGA中的RISC处理器软核,具有运行速度快、占用资源少、可配置性强等优点,广泛应用于通信、军事、高端消费市场等领域。

Xilinx公司的MicroBlaze 32位软处理器核是支持CoreConnect总线的标准外设集合。MicroBlaze处理器运行在150MHz时钟下,可提供125 D-MIPS的性能,非常适合设计针对网络、电信、数据通信和消费市场的复杂嵌入式系统

 

MicroBlaze 是基于Xilinx公司FPGA微处理器IP核,和其它外设IP核一起,可以完成可编程系统芯片SOPC)的设计。MicroBlaze 处理器采用RISC架构和哈佛结构32位指令和数据总线,可以全速执行存储在片上存储器和外部存储器中的程序,并访问其数据。

MicroBlaze内部有3232通用寄存器232位特殊寄存器—PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存。所有的指令字长都是32位,有3操作数2种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线,它分为3级流水:取指、译码和执行。

MicroBlaze可以响应软件和硬件中断,进行异常处理,通过外加控制逻辑,可以扩展外部中断。利用微处理器调试模块(MDMIP核,可通过JTAG接口来调试处理器系统。多个MicroBlaze处理器可以用1MDM来完成多处理器调试。

MicroBlaze处理器具有8个输入和8个输出快速单一链路接口(FSL)。FSL通道是专用于单一方向的点到点的数据流传输接口。FSLMicroBlaze的接口宽度是32位。每一个FSL通道都可以发送和接收控制或数据字

 

来自 <https://baike.baidu.com/item/microblaze/4554339?fr=aladdin>

 

一个简单的Microblaze系统:

1. Microblaze核

2. 时钟产生模块、重置信号产生模块

3. LMB模块 局部存储模块,分为ILMB(指令)和DLMB(数据)

该模块用来作为CPU的内存,可以分成指令和数据两块内存,也可以共享一块内存

现假设指令和数据内存控制器是分开的,那么LMB模块由如下几个模块组成

两个LMB总线模块,两个LMB内存控制器,一个BRAM模块

其中LMB内存控制器的 SLMB Adrress Decode Mask指定了内存哪一位作为LMB解码器需要考虑地址解码的位,比如0x010,那么第5位就是被看作是否进行地址解码的位数

MicroBlaze可以直接操作GPIO、BRAM等模块而不使用API接口,使用"xil_io.h"头文件的如下函数:

Xil_Out32(REG_ADDR, Value);

Value = Xil_In32(REG_ADDR, Value);

 

设置为Area优先,则为三级流水线

设置为Performance优先,则为五级流水线

设置为Frequency优先,则为八级流水线

 

 

posted @ 2021-03-17 20:17  hhh-fpga  阅读(336)  评论(0编辑  收藏  举报