Video of MCL86 ported to the Lattice XO2 Breakout Board is now on YouTube

The demonstration video of the MCL86 core running on the Lattice XO2 Breakout Board has been posted to YouTube. The FPGA is the XO2-7000 which is around $10 USD.

Here it is:   MCL86 8086 core running on Lattice XO2 Breakout Board



The video demonstrates how the MCL86 core, 2KB of RAM and a UART are all that is needed to create a practical embedded control processor with a host interface.

The total register utilization is a modest 8% of the $10 Lattice XO2-7000 which leaves most of the FPGA’s registers available for important user logic.

The MCL86 is about as small as you can get when it comes to embedded processor cores that support a practical instruction set.

Please visit us at:

Video of MCL86 ported to the Lattice XO2 Breakout Board is now on YouTube

Software x86 Tools

Here are some tools that have been verified to work on Linux and/or Windows 7. Some of them are DOS tools which can run under DOSBox.

Assembly:  A86 (DOSBox),  MASM (DOSBox),  NASM (Linux/Windows 7),  as86 (Linux), emu8086 (Windows 7)

C/C++:   Open Watcom (Windows 7),  bcc (Linux)

My preference is to write in assembly code and use A86 to generate a .COM file which I can simply copy into the FPGA code ROM.



Software x86 Tools

Lots of interest in the MCL86 core

Well over 100,000 page views to date of Steve Liebson’s blog posting on the MCL86 core. Cool!!!

8088 microprocessor IP core fits in 308 LUTs, runs at 180MHz on a Kintex-7 FPGA

The MCL86 is a 16-bit, microsequencer based, cycle and structurally compatible, soft IP core of the 8086/8088 microprocessor.  Like the original processor, the MCL86 Execution Unit (EU) is separate from the Bus Interface Unit (BIU) which allows it to be utilized in a wide range of applications from a drop-in 8086/8086 replacement to a highly customized system-on-a-chip. The MCL86 consumes a minimal amount of space and power which leaves the majority of the silicon available for user logic. 

The MCL86 EU core utilizes only 308 LUTs which is less than one percent of the smallest Kintex FPGA and less than ten percent of the Lattice XO2-7000 FPGA. Block RAMS are used to hold the microcode.

The MCL86 core has been extensively tested on desktop computer hardware which demonstrates the robustness of the core. Please see our Links page for YouTube videos of the MCL86 running desktop applications on real hardware. We have also developed an exhaustive test suite to ensure the core accurately emulates the original processor.

The core has the option to be cycle compatible with the original 4.77Mhz 8088 microprocessor which allows the MCL86 to be a drop-in replacement. If this is not enabled then the core can execute instructions significantly faster.

The core’s extremely small footprint makes it ideal for embedded applications where a microcontroller is required that draws the minimum of power and logic resources. It runs the legendary x86 instruction set which has the support of thousands of books, tools, and other resources. Millions of desktop computers and embedded applications have been developed around this processor which make it a ideal choice for an embedded FPGA or ASIC controller.

The project source-code is on GitHub:

Lots of interest in the MCL86 core