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: www.MicroCoreLabs.com
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.
Due to popular demand we have run the MCL86 through Xilinx ISE targeting the Spartan-6 series FPGAs.
The MCL86 coupled with a fully-loaded 8088 BIU easily fits in an XC6SLX16 consuming 4% of the slices at a speed of over 100Mhz.
For designers using the MCL86 with minimal BIUs the footprint would be even smaller…
We just coupled the MCL86 core with an optimized Bus Interface Unit (BIU) and ported it to the Lattice XO2 Breakout Board where it consumes 551 (8%) of the XO2-7000’s registers.
This system-on-a-chip consists of the MCL86 EU core, on-chip RAM/ROM, and a UART and leaves 92% of this $10 FPGA’s registers unused and available
A YouTube video of it running will be posted soon!
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: https://github.com/MicroCoreLabs/Projects/tree/master/MCL86