Code Monkey home page Code Monkey logo

urisc's Introduction

build-status
Ultra Reduced Instruction Set Computer (URISC)

Ultra Reduced Instruction Set Computers use extremely limited set of instructions, in this case just a single instruction, subleq. More details on this is available in docs/architecture/architecture.md

Overview

This project contains:

Hardware

  1. URISC core. Implements the essential cpu stuff to execute instructions when supplied. URISC uses three clock cycles to execute an instruction (pos-edge).
  2. IO arbiter. Arbitrates the memory among the IO devices. Allows the VGA controller to read from the memory and the PS2 controller to write to the memory. Memory access is granted on a round-robin manner to all the registered IO devices (synthesis-time).
  3. VGA controller. Standard VGA controller stuff, sync generator, frame buffer... . Currently non-functional ๐Ÿ˜ข.
  4. PS2 controller. Standard PS2 controller to read the key-codes, convert them to ASCII and write to the key buffer.

Toolchain

  1. Assembler. The assembler is a collection of python scripts that can take a program written in a custom assembly language and converts it to memory coefficient file (*.coe) for the processor.
    The assembler provides complete support for recursive macro substitution, constant declaration, labels and importing other *.asm files.
    Note: An experimental and incomplete Haskell based assembler also dwells in the toolchain directory.
  2. Tests and Examples. The examples are limited at this stage, an attempt to implement the MIPS ISA with limited instruction support is available here. This can be used to compile the infinite loop example available here.

Execution

Here is a (potato quality) video showing the execution of URISC core, the 8 LEDs from the right shows the PC in base 2.

Contributor

Suyash Mahar

urisc's People

Contributors

suyashmahar avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  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.