ngdrascal / 8bitsim

Simulation of Ben Eater's 8 bit computer running in the logic simulator called Digital

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

8bitsim

A simulation of Ben Eater's 8 bit computer running in the logic simulator called Digital.

My Goal

The goal was to see if I could build a virtual version of Ben Eater's 8 bit computer he documents on his website.

Guiding Principles

  • Fidelity to the original design - by closely following Ben's design it 1) made it easier for me to debug the circuits as I assembled them and 2) makes it easier for others to follow along with Ben's material.
  • Keep the main circuit abstract - by pushing the detail into subcircuits the main circuit becomes an abstraction of the machine. That's help in understanding how it operates.

Compromises

  • Clock Circuit - Digital, the simulation software used in this project, is designed to simulate digital logic circuits and does not support the 555 time chip since it requires analog components to operate. The included circuit that replaces Ben's original circuit provides the same inputs (HLT) and the same outputs (CLK and ~CLK).

Enhancements

  • Programming - While debugging the circuits I found the change/test cycle was slowed by having to re-enter the test program each iteration. The programming circuit I added speeds the process by replacing a long series of (virtual) button pushes with a single click.
  • Hex Output - I augmented the LEDs used for binary output with seven segment hex displays. I find it easier to think in hex. Keeping with my "fidelity" guideline I kept the original binary LEDs.

Suggestions

My first suggestion is - buy the parts (better yet, buy a kit from Ben) and build the real thing. This is a non-trival circuit and the time you invest in building something physical you can hold and share with others will bring great satisfaction.

If you decide to build the virtual verion then I suggest you DO NOT download the files from this repository. Instead you should create the circuits yourself - placing the components and wiring them together. The leaning is in the doing. Use the files I provide here as reference if you get stuck or as inspiration for clean layouts.

Links

Layouts

Main

Main

Clock

Clock

A Register

A-Register

B Register

B-Register

Instruction Register

I-Register

Arithmetic Logic Unit (ALU)

ALU

Memory Access Register (MAR)

MAR

Random Access Memory (RAM)

RAM

Program Counter

PC

Output Register

Out-Register

Controller Logic

Controller

Output Display

Out-Register

Instruction Display

Instr-Display

Programmer

Addr-Counter

About

Simulation of Ben Eater's 8 bit computer running in the logic simulator called Digital

License:MIT License