Coder Social home page Coder Social logo

lennart4711 / customprocessor Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 3.0 2.8 MB

8-Bit computer following the design by Ben Eater

Python 100.00%
fpga simulation hardware breadboard turing-machine-simulator turing-machine von-neumann von-neumann-machine ben-eater

customprocessor's Introduction

CustomProcessor

Video.mp4

General info

This simulation is not using a clock. Clocks are used with physical hardware to ensure that all components execute their task before another task is given. Because computers work through their steps one by one, it is not possible for one step to be interrupted by another. Hardware latencies are therefore not simulated.

Register info

A register is just a bunch of data latches. Because this simulation does not use a clock, as stated above, there is no edge triggered data flip flop. To store data set the first bit in the arguments to true Also, there is no dynamic ram because the ram would not lose its charge. So static registers can and should be used as RAM.

RAM info

I had to make a decision wether to loop over every register in ram when storing data and only storing it, where the address matches or to convert the binary address to a decimal number and access it directly through the list. I decided to convert it, because it keeps the program scalable. I could do this in parallel to mimic the real world behaviour but I decided I don't want to do that.

Instruction register

The instruction register calls the functions of the components, no iteration over components and checking wether a flag is set.

Program counter

I am going with a rather unconventional aproach on the counter. I am not chaining a bunch of JK flip flops together, because I don't have those and they are a pain to implement. Instead of this the PC is going to consist of an Adder and a Register. So on Count Enable, I am going to store the register value plus one back in the register. On Counter out I am going to write the register value to the bus.

customprocessor's People

Contributors

lennart4711 avatar sourcery-ai-bot avatar

Stargazers

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