For all of you x86 processor aficionados, MicroCore Labs has developed a cycle-accurate, FPGA-based IP core implementation of the original 8088 microprocessor called the MCL86 that consumes a mere 308 LUTs and clocks as fast as 180MHz in a Xilinx Kintex-7 FPGA. At 100MHz, the MCL86 processor core delivers a cycle-accurate performance replicating the pin-level behavior of the original 4.77MHz “Eighty-Eighty-Eight” microprocessor from 1979 (implemented in 3-micron IC process technology!).

The 20x clock-speed differential for equivalent performance is the result of the IP core’s microsequencer-based implementation, which ticks 20 times for each 4.77MHz clock. A counter in the core’s BIU (bus interface unit) adds delays after each instruction’s microcoded execution routine to deliver the right opcode timing. If you only need to execute the 8088 opcodes and don’t care about reproducing the original processor’s exact timing behavior, MicroCore Labs can remove the delay counter and speed things up significantly. Oh, and yes, the MCL86 core supports undocumented 8088 instructions such as SETALC.

Just how many LUTs is 308? The smallest Kintex-7 FPGA is the K70T with 65,600 logic cells (“the logic equivalent of a classic 4-input LUT and a flip-flop” according to User Guide UG474), so we’re talking about a resource consumption of much less than 1% of that very small programmable device. The smallest Artix-7 FPGA, the A15T, has 16,640 logic cells. Take away 308 LUTs for the MLC86 core and there are still more than 16,000 to use for other circuitry. This is a small processor core.

MicroCore Labs has posted a 10-second YouTube video showing the core running the Landmark CPU Speed Test on original IBM PC hardware. (You need to be more than 30 years old to even remember this test.) Here’s the video:

Note: A big thanks to my good friend Max Maxfield at embedded.com who wrote an article about the MCL86 processor core: “Only 308 FPGA LUTs required to create cycle-accurate 8088/8086 soft processor core.” Max’s article contains an interview with the core’s developer.