In this post, I will describe how I implemented the RAM in my 8-bit computer.
The RAM size is very small, 16 cells(words) each one with 8 bits. It’s a small and simple computer so a program and its variables will be directly loaded into memory using a programmer. Results and any temporary variables are also all just stored in RAM. The only exception is if you want to output a value you can directly load it into the output register.
Note: The images don’t include the whole circuits as they are too big. The circuitry just repeats anyway so you are not missing out on anything.
MAR(memory address register)
RAM(random access memory)
Loading data into RAM
In this image you can see the RAM data input coming from the programmer. First the data lines go through some AND gates which act as an enable/disable. Before going into the RAM the inputs from the programmer and the bus are joined together using OR gates.