Git Product home page Git Product logo

cpu's Introduction

Requirements

  • apt-get install verilog
  • apt-get install gtkwave

Goal

The main goal of the project is to design and synthesize a simple cpu, which will be run on an fpga. The cpu has no requirements, but the initial target is to be able to calculate simple algorithms, such as computing Fibonacci numbers. I would also like to implement a very simple language, which can then be compiled into machine code specific to this cpu, allowing me to develop basic data structures, such as lists and trees.

I would like to implement some sort of hardware graphical processing, such as hardware matrix manipulation, and possibly run a very simple 3D scene from it onto an LCD display using the IO pins on the fpga.

Dev Log

April 5, 2017

I have completed the first set of basic buffered registers. I made sure to not use any features in verilog which are not synthesizable, in order to make sure I can actually use the module on the fpga.

Register Waves

Screenshot It can be seen that there are 2 registers connected to the bus, but they are able to work at the same time, because the bus is left in a high impedance state, as to allow other drivers to drive the bus wires.

Note: The second register puts its value on the bus on only the 4 least significant bits, since it is only a 4 bit wide register, hence the red xxxA indication on the bus. This is not an error but rather intentional, because the 12 most significant bits on the bus are now left in high impedance, so other registers or drivers can use these bits at the same time as the register. In short, this means a register only occupies the number of bus bits that it actually stores.

cpu's People

Contributors

ramon54321 avatar

Watchers

James Cloos 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.