Earlier this year I wrote a column about a cycle-accurate 8088/8086 soft-processor core requiring only 308 FPGA lookup tables (LUTs), which is less than one percent of the smallest Kintex-7 FPGA from Xilinx.
The way in which this MCL86 core from MicroCore Labs achieves this incredibly small size is by means of a 7-instruction, 32-bit micro-sequencer-based architecture. Using this architecture, the founder of MicroCore Labs — who we will call Edward (because that's his name) — was able to microcode all of the 8086 opcodes in a relatively small number of micro-sequencer clocks.
The reason I mention this here is that I just heard that MicroCore Labs has announced the availability of the MCL51. This is a micro-sequencer-based 8051 processor core, which means it also boasts a low FGPA LUT utilization.
Check out this video from Edward's YouTube Channel to see a demo in which four of these cores are instantiated to create a quad-core 8051 (you don’t see one of these very often). In this demo, one core is transmitting data to a PC screen, another is outputting data to a printer, a third is playing an interesting interpretation of the Flight of the Bumblebee (an orchestral interlude written by Nikolai Rimsky-Korsakov for his opera The Tale of Tsar Saltan, which he composed circa 1899-1900), while the fourth… but you should watch for yourself.
As an aside, have you ever wondered why bumblebees are so “hairy”? You have to agree that this doesn't make them look particularly aerodynamic. Well, it turns out that they can use these hairs to detect small electric fields, which becomes interesting when you learn that plants generate such fields. Until recently, it was thought that only water-based creatures like sharks and rays and electric eels could detect these fields, but we digress…
Anyway, rather than me waffling on; let me share the contents of Edwards email as follows:
Hi Max, it's me again! I thought I would let you know that my MCL51, which is a micro-sequencer-based 8051 processor core is now available. It is based on similar technology to the MCL86 8086 processor core, so it also has a low FGPA LUT utilization.
I just finished a small demo that instantiates four of these cores to create a quad-core 8051 (just when you think you've heard of everything, right?). It was easy to do, but I thought you might find it interesting that this four-core 8051 actually consumes less logic than a single 8051 core from the major core vendors. This is not surprising as they are logic-based and the MCL51 is micro-sequencer-based. A single MCL51 core is around 312 LUTs, which is a fifth of the size of 8051 cores from these vendors.
It's true that the cores from the big guys can run dozens of times faster than the original 8051; however, I'm not sure that this is of much interest to today's FPGA designers, who — I believe — would rather have a solution with the smallest footprint and the lowest power consumption. The 8051 was designed for embedded applications, not for high-performance desktop applications, so if you really need “horsepower” then one of the 32-bit cores may make more sense.
Well, once again I am rather excited by this. I do agree with Edward that many designers would be happy to trade off high speed for lower size and power consumption. What say you?