control unit and microinstruction counter

8-Bit Computer Control Unit

In this post, we’ll take a look at the control unit of my 8-bit computer. Ben used an EEPROM to make the control unit in his computer. This is a quite clever approach if you are building your computer on a breadboard as it drastically decreases the complexity, amount of components and space needed. But in my case, it was much easier to just implement the control unit using discrete logic gates. 

RAM

8-Bit Computer RAM

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

encoder and decoder

8-Bit Computer Encoders and Decoders

In my 8-bit computer build, I only used decoders. However, I will still cover encoders in this post for the sake of completeness. You can see the decoders being used in the RAM, multiplexers, and the control unit of the computer. Decoders decode the binary value on the input to an individual selection on the output. The encoder will of course do the exact opposite.

In this post, we’ll take a look at encoders/decoders with 4 inputs/outputs because it’s easier to understand how they work. The logic is the same for more inputs/outputs, the logic circuit just gets scaled up.

quartus multiplexer

8-Bit Computer Multiplexer and Demultiplexer

In this post, we’ll take a look at multiplexers and demultiplexers. In my 8-bit computer build, I only used multiplexers, you can see them being used in the clock generation circuits. I will however still cover demultiplexers in this post for the sake of completeness. Multiplexers are used to select one of the multiple inputs and output it to one common output. Demultiplexers do the opposite of that and take in one input and put it out through one of the multiple outputs that was selected. Let’s just take a look at the brief explanations and schematic bellow for a better understanding.

Register Design

8-Bit Computer Registers

In this post, I will show how I made the registers for my 8-bit computer. I will use the flip-flops I made in this post. And just like with the flip-flops you could use premade register provided in Quartus. However, I wanted to build my own from scratch to truly understand how they work.

8-bit computer in an FPGA Arduino controller and programmer

8-Bit Computer Arduino Programmer

This post is about the Arduino programmer I made for the 8-Bit Computer in an FPGA. I will show how to use it, connect it, and briefly explain how it works. If you are interested in the source code you can get it all here on Github. This programmer should also be compatible with a normal breadboard computer like the one Ben Eater made in his video series.

D flip flop

8-Bit Computer Flip-Flop Design

In this post, we’ll take a look at the flip-flop which is one of the most common and essential logic blocks used in digital logic design. It can be used used for lots of different things. If you take a look at my 8-bit computer build you will see that flip-flops are used all over the place. 

You can use premade flip-flops provided in Quartus. However, I wanted to build my own from scratch to truly understand how they work.

8-bit computer in an FPGA thumbnail

8-Bit Computer In An FPGA

This project of mine was inspired by Ben Eater and the 8-Bit breadboard computer he made. I would in fact highly recommend you check out his complete video series on it. When I first saw his computer on Hackaday I thought it was awesome and immediately wanted to build my own.

TV RCA Image Output with Arduino featured image

Arduino TVout library Image Output

In this tutorial, you will learn how to output video from an Arduino and display it on a TV. Here we will specifically, see how to output an image. If you would like to know how to make the adapter or know more about the other functions available(outputting text, shapes, pixels) in the TVout library see this post.

Advertisment ad adsense adlogger