目录

 

MicroBlaze简介

MicroBlaze框架图

MicroBlaze开发流程

Vivado部分

SDK部分

总结


 

MicroBlaze简介

软核 MicroBlaze 是一款软核微处理器,专为 Xilinx FPGA 而设计。作为一款软核处理器,MicroBlaze 完全采用 Xilinx FPGA 的通用存储器和逻辑结构实现。

就其指令集架构而言,MicroBlaze类似于Patterson和Hennessy在一本流行的计算机架构书中描述的基于RISC的DLX架构。除了少数例外,MicroBlaze可以在每个周期发出一条新指令,在大多数情况下保持单周期吞吐量。

MicroBlaze具有多功能互连系统,可支持各种嵌入式应用。MicroBlaze 的主 I/O 总线AXI 互连是具有主从功能的系统内存映射事务总线。旧版本的MicroBlaze使用CoreConnectPLB总线。大多数供应商提供的第三方 IP 接口直接(或通过 AXI 互连)连接到 AXI。为了访问本地存储器(FPGA RAM),MicroBlaze使用专用的LMB总线,该总线提供快速的片上存储。用户定义的协处理器通过专用的 AXI4 流连接提供支持。协处理器接口可以将部分或全部计算卸载到用户设计的硬件模块,从而加速计算密集型算法。

MicroBlaze的许多方面都可以由用户配置:可以自定义缓存大小、流水线深度(3级、5级或8级)、嵌入式外设、内存管理单元和总线接口。面积优化版本的MicroBlaze使用3级流水线,牺牲时钟频率以减小逻辑面积。性能优化版本将执行管道扩展到5个阶段,允许超过700 Mhz的最高速度(在Virtex UltraScale+ FPGA系列上)。此外,可以有选择地添加/删除很少使用但在硬件中实现成本更高的关键处理器指令(例如乘法、除法和浮点运算)。此自定义使开发人员能够针对一组特定的主机硬件和应用软件要求进行适当的设计权衡。

(介绍来自维基百科)

MicroBlaze框架图

xilinx NIOS软核 生成bit_MicroBlaze

 

MicroBlaze 处理器的外部接口定义:

外部接口主要可以分为两大类:数据类(数据的传递交互)和控制类(实施命令控制)

DPLB(Data Processor Local Bus):数据接口,处理器本地总线。

DOPB(Data On-chip Peripheral Bus):数据接口,片上外设总线,该接口实现 CPU 与片内外设的数据交换。

DLMB(Data Local Memory Bus):数据接口,本地存储器总线,该总线为 CPU 与本地块存储器间的数据交换通道。

IPLB(Instruction Processor Local Bus):指令接口,处理器本地总线。

IOPB(Instruction On-Chip Peripheral Bus):指令接口,片上外设总线,CPU 通过此总线读取外部存储器的程序代码。

ILMB(Instruction Local Memory Bus):指令接口,本地存储器总线,该总线与内部块存储器相连,提供高速指令的提取。

MFSL0..15 (Fast Simple Link FSL master interface):FSL 主设备数据接口,提供点对点的通信通道。

SFSL0..15 (Fast Simple Link FSL slave interface):FSL 从接口,提供点对点的通信通道。

MicroBlaze开发流程

Vivado部分

一、配置 MicroBlaze 核、其他需要的 IP 核以及外围设备。

在BlockDesign中搭建MicroBlaze的框架,通过MicroBlaze核的添加,以及核其他外设进行连线。

二、硬件设计执行综合、布局布线等。

三、生成 Bit 流文件。

四、导出包含硬件信息的 xsa 文件。

SDK部分

五、启动 SDK,创建硬件平台工程和应用工程。

六、设计软件并调试。

七、编译工程生成 ELF 文件。

ELF文件是起到固化程序的作用,将程序烧录到FPGA中,通过ELF文件固化,在下一次板子上电就可以直接加载程序。

八、将 Bit 和 ELF 文件合并为 download.bit 文件并固化。

总结

MicroBlaze是Xilinx公司方便系统开发而设计的一种软核处理器,和zynq的功能可以说是类似的,主要用于嵌入式的开发,更多的是作为一个控制器,去实现开发者想要实现的功能,如何在之前接触过ZYNQ的话,上手MicroBlaze的难度是不大的,因为两者不管是在功能上,还是开发的流程上,都是很类似的。