Giter Site home page Giter Site logo

royforlinux / 80x86 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jamieiles/80x86

0.0 1.0 0.0 1.41 MB

80186 compatible SystemVerilog CPU core and FPGA reference design

Home Page: https://www.jamieiles.com/80186/

License: GNU General Public License v3.0

Python 10.55% CMake 6.50% C 5.67% Assembly 0.89% Objective-C 0.35% Shell 0.81% Dockerfile 0.32% Verilog 2.58% SystemVerilog 20.67% C++ 51.62% GAP 0.03%

80x86's Introduction

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

80x86's People

Contributors

jamieiles avatar sftwninja avatar tkchia avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.