S80186:16-bit 80186 compatible core

The S80186 core is a compact, 80186 binary compatible core, implementing the full 80186 ISA suitable for integration into FPGA/ASIC designs. The core executes most instructions in far fewer cycles than the original Intel 8086, and in many cases, fewer cycles than the 80286. The core is supplied as synthesizable SystemVerilog, along with a C++ reference model, extensive tests, a reference BIOS implementation and reference FPGA designs. The core is released under the GPLv3 license.

The 80186 core has also been implemented in an 8088 pin compatible module to accelerate an IBM PC XT compatible system.

Get the source from GitHub.

Landmark System Speed Test screen reporting the 80186 performs like a 68 MHz AT
Landmark speed test on the 80186 (50Mhz, DE0-CV)
Topbench results screen comparing the 80186 against database entries
Topbench speed test on the 80186 (50Mhz, DE0-CV)
The HDP001 development board, with VGA and PS/2 connectors, a micro SD slot and a JTAG header
HDP001, custom FPGA board for CPU development

Features

Implementation

Reference Design

Indiana Jones and the Fate of Atlantis running in MCGA graphics mode
Indiana Jones and the Fate of Atlantis MCGA
Monkey Island 2: LeChuck’s Revenge running in MCGA graphics mode
Monkey Island 2: LeChuck's Revenge MCGA
Norton System Information 4.5 report screen
Norton System Information 4.5

Note: all images captured on real hardware from the VGA frame buffer.

Architecture

The S80186 is a 16-bit architecture with 8 16-bit general purpose registers, 4 segment registers allowing access to 1MB of physical memory. The architecture uses a variable length instruction encoding allowing for high code density. The core is a microcoded design using a small amount of logic and a flexible microassembler. The microsequencer is used to implement an efficient debug interface that can be connected to a JTAG TAP or disabled if required.

Full compatibility with 80186 ISA is provided, implementing all instructions, traps, faults and interrupts and known errata. Undocumented instructions such as SETALC are also implemented.

Software

The S80186 core is compatible with the Intel 80186 and so enjoys extensive software compatibility. There are a wide range of development tools available including OpenWatcom, GCC and NASM, and the core can run existing operating systems such as MS-DOS and FreeDOS. A sample BIOS implementation is provided for the FPGA designs.

Downloads