MicrocontrollerReal-Time ProcessorApplication Processor

MicroBlaze is Xilinx’s 32-bit RISC soft processor core, optimized for embedded applications on Xilinx devices. The MicroBlaze processor is easy to use and delivers the flexibility to select the combination of peripherals, memory, and interfaces as needed. The MicroBlaze soft processor core is included with the Xilinx software tools. The MicroBlaze processor is commonly used in one of three preset configurations listed below: 

  • A simple microcontroller running bare-metal applications
  • A real-time processor featuring cache and a memory protection unit interfacing to tightly coupled on-chip memory,  running FreeRTOS
  • An application processor with a memory management unit running Linux

Table of Contents

Getting Started Guide

There are several ways to get started with MicroBlaze. One of the simplest is to use the MicroBlaze Quick Start Guide. This quick start outlines how to get started with one of the presets listed above. It walks you through both the hardware and software pieces to get a MicroBlaze into a design.

Boards

Since MicroBlaze is a soft processor,  it can be used on any Xilinx or Xilinx's Partner development board. The boards listed here are part of Xilinx's Cost Optimized Portfolio (COP) and commonly used for MicroBlaze designs.

Example designs and Demos

Xilinx provides a variety of example designs on their development boards for the users. These include OS, power management and graphic examples. An example design is a snapshot in time meaning that the design is done on a specific Xilinx tool release and not necessarily updated to other tool releases or the current release. The user can take these and update them on their own.

Overview of the Embedded Software Stack on MicroBlaze

The software stack for MicroBlaze does not start with a hardened BootROM like the other embedded devices from Xilinx. Instead, the initial boot code must be included within the FPGA bitstream, typically by initializing a small bank of BlockRAM that is mapped to the MicroBlaze boot vector. For some systems, the entire application might be able to reside in this BlockRAM. For more complex systems (Linux, for example), a first-stage bootloader can be initialized in the BlockRAM. Xilinx provides a first stage bootloader called FS-Boot that executes at startup and is responsible for copying the second stage bootloader (typically U-Boot, but could be the final application) from non-volatile memory into memory that the MicroBlaze can execute from, typically DDR.   FS-Boot requires a minimum of 8KB of BlockRAM. 

For more information on FS-Boot creation and merging it into the bitstream, see the PetaLinux Tools Guide

U-Boot

U-Boot, short for Universal Boot Loader, is an open source, primary boot loader used in embedded devices to boot the device's operating system kernel that is frequently used in the Linux community. Xilinx uses U-Boot as a second stage boot loader for MicroBlaze. For more information about U-Boot visit their page at https://www.denx.de/wiki/U-Boot

For more information about U-Boot on Xilinx devices,  go to the U-Boot page on this wiki.

Linux

Since Linux is the primary OS that people start with on the MicroBlaze when doing the application processor implementation, there is more information on it at the Linux page. This includes the two different build tools used to create customer distributions. Xilinx's PetaLinux and Yocto, an open source project that is part of the Linux Foundation. The Linux page also shows how to build your own Linux system from the source, and information about the Linux drivers that Xilinx provides. 

Security

For users who want to implement a security or safety system that uses MicroBlaze in triple modular redundancy mode, please see the follow product guide.

Documentation/Resources

The following link as a list of all the documentation for MicroBlaze from Xilinx.com. This information is hosted on the web but also available with an installation of the Xilinx DocNav tool. 

The Xilinx Community Forums as places to get some answers on questions or search to see what others have had issues with Xilinx devices.

The Xilinx Community Portal showcases Xilinx in the Open Source Space and highlight projects that have been done Xilinx products.

Tools

The Xilinx tools provide all required tool chains to compile and link applications for Xilinx supported platforms, create and configure hardware designs and creating bitstreams.

Installing the Xilinx Tools

Wiki Articles