Editor's Note: Before we plunge into the fray with gusto and abandon, the author of this column, Sven, asked me to especially mention that the information contained herein comes from an interview with Per Henricsson from the Swedish electronics magazine ElektronikTidningen (try saying that 10 times quickly). OK, now let's hand things back to Sven...
Did you know that one of most popular soft processor cores in the world -- the Xilinx MicroBlaze -- started out as a Skunk Works project? Furthermore, did you know that, to this day, all development work on the MicroBlaze continues to be performed in Gothenburg, Sweden, by four engineers headed by the original inventor, Göran Bilski?
Göran Bilski working at his desk.
The first version of MicroBlaze was released in 2001, about one year after Göran moved to San Jose, Calif., to work in the Xilinx marketing department.
"When I was hired, my boss told me I was not allowed to write a single line of VHDL code," says Göran. However, Göran had worked with processors for many years, and he simply couldn't keep his hands away from them. When Altera started to talk about a soft processor core called the Nios, this sparked momentum at Xilinx. At that time, Xilinx already had FPGAs with embedded hard processors in the form of PowerPC cores, but license problems and the size of the PowerPC would have made it hard to convert this into a soft core offering.
At first, Xilinx started to look for a soft core from outside vendors, but then Göran presented his own 16-bit processor, which he had developed in his spare time. Xilinx liked what they saw and decided to use this as a base for building a 32-bit soft processor core called the MicroBlaze.
MicroBlaze is a classic RISC architecture. It was developed around the end of 2000 and the beginning of 2001, and it was released later that year. Thereafter, the MicroBlaze has continued to evolve with new functions being added on a regular basis. For example, the most recent release, version 8.20, is equipped with the new AXI bus interface.
Block diagram of the 32-bit MicroBlaze soft processor.
The reason soft processor cores started to emerge 'round the turn of the millennium was that FPGAs had become so large that it was possible to put a processor on the chip and still have room to implement the logic required to perform other tasks. Another consideration was that FPGAs were being offered with large quantities of on-chip RAM; without memory a processor is useless, and always having to connect to external memory is slow and clumsy.
A small design group
In 2003, Göran moved back to Sweden where he continued to work for Xilinx, improving the MicroBlaze design. Göran worked from home for two years out of an office he established in the basement of his house. But this was not sustainable in the long run, so he eventually began to rent a real office. At the same time, Göran employed three more engineers to form a specialized design group. Göran's group is now responsible for all the design work for MicroBlaze, with some additional help from design groups in India and America.
"MicroBlaze will not solve all of the world's problems; functionally we are always going to be a few years behind processors from ARM, MIPS, and Intel," says Göran, "but the MicroBlaze is small and you can use more than one in an FPGA."
The same bus as ARM
MicroBlaze originally used the same bus, a PowerPC -- Core Connect -- to connect to other IP blocks in the FPGA. However, ARM's huge success in the embedded processor area convinced Xilinx to move to the ARM bus standard called AMBA. Göran tells us that they worked together with ARM to define the latest version of the standard called AXI-4, and that MicroBlaze was actually one of the first components to use this new standard.
MicroBlaze requires between 600 and 4,000 lookup tables, depending on the configuration. Then we have to add memory, which normally takes more space than the processor itself. The size of the core MicroBlaze processor has not increased over the years, because each new feature is provided as an option, and -- by default – these new options are not enabled until they are turned on by the designer.
"I would say that the MicroBlaze is the most configurable soft processor available," says Göran. In total, there are around 70 parameters to be configured, which means designers are faced with quite a few choices, all of which can be a little tricky for a beginner. In order to address this issue, a wizard implemented in the Xilinx XPS design tool helps designers to choose the appropriate options for their applicxations.
Not all of the work performed on the MicroBlaze by Göran's team is related to new features. A large part of their task is to verify that the processor works with any new versions of the design released by Xilinx. "We usually only hear from customers in the rare event that there are problems," says Göran. "They rarely get in touch with us to ask for new features."
Although today's MicroBlaze has been enhanced with countless features and capabilities since it was launched 11 years ago, it is still backwards-compatible with the original version. In principle, one can take an ELF file from 2001 and run it on the latest-and-greatest MicroBlaze today.
One indication that the MicroBlaze is popular is given by the fact that there are three clones at OpenCores, the online meeting place for open-source hardware IP blocks.
These clones have been produced without the participation of Xilinx. "One of them wrote to me and asked if Xilinx would send lawyers after him as ARM always do," says Göran. "But the more people who use MicroBlaze, the better it is."
I first came in contact with the MicroBlaze in 2007, when I wrote my blog, FPGA design from scratch. At that time I had purchased a development board from Xilinx, and I started to build an embedded processor system using the MicroBlaze.
I got to know to Göran, and he helped me out when I ran into problems and didn't understand all the features of MicroBlaze and the Xilinx design flow. I found Göran to be very helpful, and he was always kind enough to answer my tricky questions.
Build your own MicroBlaze-based system
Would you like to build your own MicroBlaze-based system? One suggestion is to purchase the Spartan-6 SP605 development board from Xilinx, a little bit more expensive then the LX9 MicroBoard Duane is using in his Discovering FPGAs columns, but it is much more powerful.
The Xilinx Spartan-6 SP605 FPGA development board.
If you do decide to purchase this board, then you can follow along with my personal ongoing blog about the MicroBlaze. I promise you will not fail.
Have you ever wondered where the name "MicroBlaze" actually came from? I asked Göran this question, and he replied: "The first name we used was XSRA (Xilinx Soft RISC Architecture) but management and marketing didn't like this name, so they came up with the name MicroBlaze. However, I have no idea from where they got this name from."
Personally, I always like to know the little details "behind" the main story -- and I know that our editor in chief, Max, delights in learning what he calls "nuggets of knowledge and tidbits of trivia" -- so, does anyone out there know the full answer to this question as to the origin of the MicroBlaze name?
Click Here to read the full story in the Swedish electronics magazine ElektronikTidningen. (Of course, this is in Swedish, so if your Swedish is not so good, you might wish to try Google Translate.)
And my especial thanks go to Per Henricsson at ElektronikTidningen for giving me the rights to abstract their material from this article.