MicroBlaze™ is a key element of Xilinx’s Embedded Product Portfolio. As a full-featured, FPGA optimized 32-bit Reduced Instruction Set Computer (RISC) soft processor, Microblaze meet requirements for diverse applications such as industrial, medical, automotive, consumer, and communication infrastructure markets among others. MicroBlaze is a highly configurable and easy to use processor and can be used across FPGAs and All Programmable (AP) SoC families. It is included free with Vivado® Design and System Edition and Vivado Webpack Edition. It is also available as part of legacy IDS embedded edition for older FPGA device families like Spartan®-6, Virtex®-6 etc.
MicroBlaze is highly configurable IP core supporting 70+ configuration options. Some of the key configuration options are Instruction/Data Cache, Floating Point unit, Memory Management Unit etc. With highly flexible and configurable core, user can implement virtually any processor use case, from a very-small-footprint state machine or microcontroller to a high-performance, compute-intensive microprocessor-based system running Linux. The IP can be configured to operate in either a three-stage pipeline mode (to optimize for size), or in a five-stage pipeline mode (to optimize for speed)—thus delivering faster DMIPs performance than any other FPGA-based soft processing solution.
|Device||Performance Optimized MicroBlaze with Branch Optimizations||Performance Optimized MicroBlaze||Area Optimized MicroBlaze||Frequency Optimized MicroBlaze with Branch Optimization|
|(5-stage pipeline)||(5-stage pipeline)||(3-stage pipeline)||(8-stage pipeline)|
|1.45 DMIPs/MHz||1.34 DMIPs/MHz||1.07 DMIPs/MHZ||1.07 DMIPs/MHz|
|Kintex UltraScale (-3)||309
|Virtex UltraScale (-3)||299
|Kintex UltraScale+ (-3)||410
|Virtex UltraScale+ (-3)||421||610
|Zynq UltraScale+ (-3)||425
Note: Zynq-7000 AP SoC performance numbers are same as Artix-7 and Kintex-7 depending on Zynq-7000 device
For highly configurable MicroBlaze processor, Xilinx offers Configuration Wizard tool for ease of use. The tool provides pre-defined quick configuration options to user. Instead of configuring from 70 odd options, customer can select pre-defined option based on use case. Table below captures various pre-configuration options and typical use case description.
|Pre-Defined Configuration||Brief Description|
|Minimum Area||Smallest possible MicroBlaze core, no caches, no debug|
|Maximum performance||Large caches, debug and execution unit|
|Maximum Frequency||Maximum achievable frequency. Small caches and no debug, with few execution units|
|Linux with MMU||Settings suitable to get high performance when running Linux with Memory Management Unit (MMU). Memory Management enabled, large caches and debug, and all execution units|
|Low-en Linux with MMU||Settings corresponding to the MicroBlaze Embedded Reference System. Provides suitable settings for Linux development on low-end systems. Memory Management enabled, small caches and debug|
|Typical||Settings giving a reasonable compromise between performance, area, and frequency. Suitable for standalone programs, and low-overhead kernels. Caches and debug enabled|
User can opt for 2 step configuration flow, first one is to select pre-defined configuration as listed in Table 1 and then fine tune few select configuration options to suit exact use case.
MicroBlaze is an integral part of the complete Xilinx embedded solution. It is available through Vivado Integrated Design Environment and legacy ISE Embedded Edition. For software development it is supported as part of Software Development Kit, for hardware design, MicroBlaze and Xilinx IP portfolio together can be used with Vivado IP Integrator.