Git Product home page Git Product logo

cpu's Introduction

CPU

The documentations of CPU built in CSSE232 (Computer Architecture, Rose-Hulman)

We design a 16-bit general purpose CPU, and implement it with Xilinx. In the end we run the following benchmark :

// Find m that is relatively prime to n.
int relPrime(int n) {
   int m = 2;
   while (gcd(n, m) != 1) {  // n is the input from the outside world
     m = m + 1;
   }
   return m;
}
   
// The following method determines the Greatest Common Divisor of a and b
// using Euclid's algorithm.
int gcd(int a, int b) {
  if (a == 0) {
    return b;
  }
  while (b != 0) {
    if (a > b) {
      a = a - b;
    } else {
      b = b - a;
    }
  }
  return a;
}

Among twelve other teams, who competed at the same time. Our processor takes 1.54ms twice faster than the second team 3.6ms.

Documentation for this projects include are included in the root directory:

  • DesignDocument.pdf -- The design specification of the our processor. It is the most extensive document
  • DesignProcessJournal.pdf -- tracks the thought process we went through when design and implementing this CPU
  • RTL_control_states.xlsx -- the register transfer level description of our processor. It specifies the states and trasition of the control unit and what RTL should happen in each state.
  • StateDiagram.pdf -- the visual FSM diagram for FSM design.
  • Euclid's algorithm assemblies -- the assembly codes for the above benchmark in the ISA we designed

The implementation of our processor is in Xilinx_implementation folder

  • Implementation for each component
  • Unit tests for each component
  • Integration tests for any connected components
  • System tests for each instruction
  • Benchmark test case to prove that our processor actually works!

cpu's People

Contributors

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