一、引言
1、MicroBlaze简介。
用于做嵌入式处理操作的软核,来加速系统设计。与传统独立CPU相比,软核嵌入式处理器同样有较高的处理能力,并且在可构建多核系统、可定制取舍等方面均优于传统CPU。下图是传统的系统架构与SOPC架构,即较新的可编程片上系统。

MicroBlaze 是 Xilinx 公司提供的一款 32/64 位软核嵌入式处理器,是一款高度灵活可配置的易用型处理器, 它能够利用 FPGA 内部通用资源和相关 IP 核,实现可编程片上系统(SOPC)的设计。该处理器采用的是32 位 RISC(Reduced Insrtction System Computer)优化结构和 Harvard 总线结构,广泛适用于 Spartan、 Virtex 和 Artix 等系列的 FPGA。
MicroBlaze 软核嵌入式处理器是高度可定制的 IP 核,支持 70 多个配置选项,有 32 个 32 位通用寄存器以及 2 个 32 位特殊寄存器(PC 指针寄存器和 MSR 状态标志寄存器)。另外 MicroBlaze 软核处理器还配有指令和数据缓存、 浮点单元、内存管理单元和许多其他选项,从而大大提高其运算性能。 MicroBlaze 软核嵌入式处理器的所有指令字长都是 32 位,具有 3 个操作数和两种寻址模式, 指令按功能可划分为:逻辑运算、算术运算、分支、存储器读/写和特殊指令等等。指令以并行流水线的方式执行,其流水线可分为取指、译码和执行。
下图为 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 从接口,提供点对点的通信通道。
- IXCL(Instruction side Xilinx Cache Link interface): 指令侧高速缓存链接接口。
- DXCL(Data side Xilinx Cache Link interface):数据侧高速缓存链接接口。
MicroBlaze 处理器通常有三种预设配置,如下图所示:
- Microcontroller:运行裸机应用程序的简单微控制器。
- Real-Time:具有高速缓存和与运行嵌入式实时操作系统的实时处理器。
- Application:最后是带有运行 Linux 的内存管理单元的应用处理器。

MicroBlaze可以在所有 Xilinx FPGA 中用作独立处理器,也可以在 Zynq SoC 系统中用作协处理器。
2、MicroBlaze系列计划。
MicroBlaze系列属于FPGA软核部分的学习,主要还是CPU相关的学习,将其列为了FPGA_ASIC部分。首先,会做一部分实验,包括串口、LED、按键中断、定时器中断等。接着,使用Xilinx提供的一些AXI模板,来设计一些能挂接MicroBlaze的IP。最后,MicroBlaze应该有些有趣的项目了,考虑用它来做一些较为大型的设计。开发板使用达芬奇Pro。
二、HelloWorld实验
1、基本流程。

step1 至 step4 为硬件设计部分,在 Vivado 软件中实现。step5 为软件设计部分,在 Vitis 软件中实现。step6 为功能的验证。
2、嵌入式最小系统。

以 MicroBlaze 为核心、 LocalMemory(片上存储) 为内存,加上传输信息使用的 UART 串口就构成了嵌入式最小系统。当程序比较简单时, Local Memory 可以作为程序的运行空间以及存储空间,空间大小可以根据需要设置最小 8KB 到最大 128KB;当程序比较复杂的时候,我们也可以使用片上搭载的外部存储器(如 DDR3)作为程序的运行空间以及存储空间。
AXI Interconnect IP 核用于将一个(或多个) AXI 存储器映射的主器件与一个(或多个) 存储器映射互联。互联实际上是一个开关,它管理并指挥所连接的 AXI 接口之间的通信。
3、工程搭建。
1°添加MicroBlaze。

2°对IP进行配置。

Predefined Configurations:用于配置模板。点击 Select Configuration 右侧的目录框我们能够看到多个模板选项。本次试验不需要用到模板,因此保持默认选项“Current settings”就可以。
Select Processor Implementation:用于选择 32 位或 64 位处理器。 64 位处理器将两个 32 位通用寄存器扩展为一个 64 位寄存器,提供处理 64 位数据的附加指令,并且可以使用最多 64 位地址寻址和最多 4 个 EB 指令和数据。 一般情况使用 32 位处理器就可以了。
Select implementation optimization:用于使能面积优化功能,打开其右侧的目录,我们可以看到有PERFORMANCE、 AREA 和 FREQUENCY 三个选项表示三种优化方式,其中 AREA(区域)表示三级优化,速度最慢占用资源最少; FREQUENCY(频率)表示八级优化,速度最快占用资源最多;PERFORMANCE(性能)是五级优化,速度和资源占用量在 AREA 和 FREQUENCY 两者之间,本实验我们选择PERFORMANCE。
Enable MicroBlaze Debug Module Interface:使能调试功能,一般情况下我们都开启该功能,只有在资源十分紧张的情况下才会禁止此功能
Use Instruction and Data Caches: 使用指令和数据缓存。当使用外部存储时,激活这个选项可以明显地改善性能,由于本次实验我们使用的是本地存储,该选项对实验没影响,因此不选择。
Enable Exceptions:异常功能的使能。
Enable Discrete Ports:使能软核上的独立端口。
配置完成后点击“Next”进入第二页 General 页面, General 页面能

本文介绍了MicroBlaze嵌入式处理器的基本概念,从HelloWorld实验开始,演示了如何配置及使用MicroBlaze进行简单的程序设计,包括配置MicroBlaze IP、建立最小系统和AXIGPIO实验,以及关键步骤和注意事项。

9325

被折叠的 条评论
为什么被折叠?



