All Projects → jamieiles → 80x86

jamieiles / 80x86

Licence: gpl-3.0
80186 compatible SystemVerilog CPU core and FPGA reference design

Labels

Projects that are alternatives of or similar to 80x86

Pcjs
The original IBM PC and other machine emulations in JavaScript
Stars: ✭ 171 (-22.27%)
Mutual labels:  x86
Verilog Generator Of Neural Net Digit Detector For Fpga
Verilog Generator of Neural Net Digit Detector for FPGA
Stars: ✭ 187 (-15%)
Mutual labels:  fpga
Asm Space Invaders
A small, bootable game written in x86 Assembly inspired by Space Invaders
Stars: ✭ 202 (-8.18%)
Mutual labels:  x86
Wb2axip
Bus bridges and other odds and ends
Stars: ✭ 177 (-19.55%)
Mutual labels:  fpga
Spoonn
FPGA-based neural network inference project with an end-to-end approach (from training to implementation to deployment)
Stars: ✭ 186 (-15.45%)
Mutual labels:  fpga
Minidbg
A mini x86 linux debugger for teaching purposes
Stars: ✭ 193 (-12.27%)
Mutual labels:  x86
Fpga Chip8
CHIP-8 console on FPGA
Stars: ✭ 169 (-23.18%)
Mutual labels:  fpga
Biriscv
32-bit Superscalar RISC-V CPU
Stars: ✭ 208 (-5.45%)
Mutual labels:  fpga
Openfpga
An Open-source FPGA IP Generator
Stars: ✭ 184 (-16.36%)
Mutual labels:  fpga
Echomods
Open source ultrasound processing modules and building blocks
Stars: ✭ 200 (-9.09%)
Mutual labels:  fpga
Opcodes
Database of CPU Opcodes
Stars: ✭ 177 (-19.55%)
Mutual labels:  x86
Openwifi Hw
FPGA/hardware design of openwifi
Stars: ✭ 181 (-17.73%)
Mutual labels:  fpga
Holodec
Decompiler for x86 and x86-64 ELF binaries
Stars: ✭ 195 (-11.36%)
Mutual labels:  x86
Mos
A hobby operating system developed from scratch
Stars: ✭ 169 (-23.18%)
Mutual labels:  x86
Book assembly 8086
Learn 16bit x86 Assembly with emulator
Stars: ✭ 205 (-6.82%)
Mutual labels:  x86
Mandibule
linux elf injector for x86 x86_64 arm arm64
Stars: ✭ 171 (-22.27%)
Mutual labels:  x86
Corehook
A library that simplifies intercepting application function calls using managed code and the .NET Core runtime
Stars: ✭ 191 (-13.18%)
Mutual labels:  x86
Asm Cli
Interactive shell of assembly language(X86/X64) based on unicorn and keystone
Stars: ✭ 211 (-4.09%)
Mutual labels:  x86
Red Pitaya Notes
Notes on the Red Pitaya Open Source Instrument
Stars: ✭ 205 (-6.82%)
Mutual labels:  fpga
Xdpw
XD Pascal: A small embeddable self-hosting Pascal compiler for Windows. Supports Go-style methods and interfaces
Stars: ✭ 199 (-9.55%)
Mutual labels:  x86

s80x86

The S80186 IP 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.

Features

  • Binary compatible with the Intel 80186 core
    • MS-DOS
    • FreeDOS
    • OpenWatcom/GCC ia16-elf compilers
  • Separate data/IO and instruction busses
  • 1MB addressable segmented memory
  • 64KB addressable IO space
  • Lock signal for atomic accesses
  • 256 external interrupts
  • 1 non-maskable interrupt
  • 3 stage fetch/decode/execute pipeline
  • Debug interface suitable
    • JTAG TAP compatible
    • Register/Memory access
    • Execution control
  • FPGA builds (Intel Cyclone V)
    • 60MHz FMax
    • ~1800 ALMs

Implementation

  • Full synthesizable SystemVerilog
  • C++ reference model
  • FPGA reference designs for Terasic DE0-Nano and DE0-CV
  • Extensive test suite verified against C++ model, RTL and FPGA
  • Complete Docker build environments
  • Full development documentation and programmers guide

Reference Design

  • SDR SDRAM controller
  • SD card for fixed disk emulation
  • 8259 PIC-lite controller
  • UART
  • 8254 PIT-lite timer operating in mode 2 only.
  • MCGA controller with VGA output (text mode + 320x200 256 color modes)
  • PS/2 controller (mouse and keyboard)
  • Direct mapped write-back cache

System Requirements

  • Docker
  • 4GB RAM

Building

./scripts/build

This will build the Docker containers and then perform a release build and run all of the tests.

Documentation

The build script above will create a developer's guide in ./_build/build/documentation/development-guide.pdf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].