Well over 100,000 page views to date of Steve Liebson’s blog posting on the MCL86 core. Cool!!!
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: https://github.com/MicroCoreLabs/Projects/tree/master/MCL86