MicroBlaze
Microcontroller | Real-Time Processor | Application 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.
- Non-Maskable Interrupt MicroBlaze Demo
- Performance Monitoring demo on MicroBlaze
- Using AXI-Stream instructions efficiently in MicroBlaze
- ARTY A35T AMS
- Debugging Standalone Application on MicroBlaze using QEMU
- How to create handler to support nested interrupts on MicroBlaze
- How to safely reset or restart execution from application on MicroBlaze
- Utilizing PS memory to execute MicroBlaze application on Zynq Ultrascale
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.
Wiki Articles
- Spartan-7 SP701 Evaluation Kit PWM Tutorial
- How to merge two concat bram controllers in Vivado
- Utilizing PS memory to execute Microblaze application on Zynq Ultrascale
- Execute Microblaze Application from PS DDR
- Using AXI-Stream instructions efficiently in MicroBlaze
- Understanding MEMDATA flow and how to manually create MMI file
- Performance Monitoring demo on Microblaze
- How to profile Microblaze application
- How to safely reset or restart execution from application on Microblaze
- Non-Maskable Interrupt Microblaze Demo
- Debugging Standalone Application on Microblaze using QEMU
- How to create handler to support nested interrupts on Microblaze
- MicroBlaze Tagged Pages
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy