Building a 8 bit CPU

That is a fine reason for doing the project. Learning hands on beats book learning .

2 Likes

I agree with Neville a great way to learn by doing. It’s been a long time since I taught electronics (35 years) and used breadboards for projects with students to explain principles. We move so quickly.

3 Likes

Sorry for not posting for a long time as I was busy with my studies. But now I have started building the 8bit CPU and I wanted to share some of the Updates here today.

The first photo shows the clock circuit. This circuit is not yet complete due to the absence of some switches. I have placed an order for the switched but they are yet to be delivered. In the clock circuit I used NE555 timer and have created three separate circuit using the NE555 timer one is a astable circuit, monostable circuit and a bistable circuit. The monostable circuit is used to provide an automatic clock response, the monostable circuit is used to provide a way for putting in manual clock pulse especially running a program slowly for the purpose of debugging the problem. And the bistable circuit is used to choose between the astable and monostable forms.

The second pictures are the pictures of the three registers that i have built register A, register B and the Instruction Register. For building the registers I have used the concept of D flip flop along with a tristate logic to prevent the output value from the D flip-flop from changing continuously. I could have built D flip-flop circuit using the AND and OR logic gates but for that I had to build 8 separate D flip-flops for the purpose of storing 8bit data. So this would be cumbersome and would also leave me with a lot of troubleshooting and places for errors and noise to creep into the circuit, which will be undesirable. So i instead for the 74LS173 IC, which is a 4 bit register and a D flip-flop. I have used two 74LS173 IC in the circuit. In the circuit I have also used a 74LS245 Octal Bus transmitter/receiver, to send data to the bus which will be build once all the components are completely built.

If any of you have some questions regarding the technical aspect or have some suggestions to improve my approach or have any thoughts on this project, please don’t hesitate to reply back to this post.

8 Likes

Hi @Arghadeep_Saha ,
i do not personally have
enough electronics to understand your project, but I must say we appreciate
your detailed reply. Keep us informed
Regards
Neville

3 Likes

That’s GREAT!!! :grin:
Reading your post I feel back in my youth in 1991…
:smiley:
Oh, those good old times…

3 Likes

Thanks for the update and sharing of the photos. Been a very long time since I used a 555 and breadboard for any build projects with my students before getting them to create PCBs.
It’s a great way to learn electronics from a practical stance not just read about it. Could work out expensive in the long run but hope that does not put you off.
Look forward to the next update

3 Likes

Hi @Arghadeep_Saha,
First of all, congrats for your project.
I’ve only just seen your post and I’m going to take the opportunity to add a few more websites to the list:

I know more, but they’re in Europe…

If you need a program to make the schematics or PCBs design, you could try KICAD

To manufacture PCBs, see these websites:

See if these electronics forums interest you:

here’s a link to a project on GitHub that might be similar to yours, so you can get some ideas

I’d like to ask you a few questions if you don’t mind:
You mentioned that you follow a guided tutorial. Is it possible for you to post the schematic of your project here and the changes you made?

I can’t see well in the picture: is it the the 74LS173A, correct?

I don’t intend to comment on your schematic, because what you have is very positive and an excellent way to learn, but I’m just going to give you my opinion on a subject that may be controversial:

  • You have the LEDs connected directly to the Flip-Flops. Have you already checked the datasheet for the IC’s maximum output current? And the LEDs, how can you limit the current of each LED?

I don’t know the manufacturer of your 74LS173, but here’s the link to the SN74LS173A

As @nevj and @callpaul.eu said, keep us informed

Best of luck for your project

Jorge

3 Likes

Hi @Tech_JA,

First of all sorry for the late reply, I was busy with my university exams and project submission.

You are correct about the fact that I directly connected the LEDs to the 74LS173 chips and you will find that I have connected the LEDs directly to the ICs in every circuits shown above. This decision is technically incorrect and is shown problems in the working of the LEDs, like the LEDs are not glowing that brightly and they are constantly blinking with the clock. But my decision of not including the resistor here is purely to keep the circuit clean. As you can see from the picture the wires occupy the entire breadboard and it would be very difficult to cram the resistors in between. But once I build the entire CPU and then shift it to a printed PCB I will make sure to add those resistors or perhaps exchange these LEDs with ones that have resistors in built.

Thank You for your suggestion
Arghadeep

3 Likes

First of all let me apologise for not posting the updates of my project for this long.

So please allow me to introduce you to the ALU of the 8bit CPU that I am working on taking inspiration from various online articles.

So I would like to describe the components that are present in the picture. At the tops of the picture there is a single breadboard that is the clock of the CPU and provides regular pulses to the CPU. Then there is a single breadboard on the left side of the picture consisting of only LEDs, this is working as a temporary bus for transferring data between the registers and the ALU of the CPU.

So now lets come to the three breadboard setup that is placed to the right of the picture. Here there are three parts the top and the bottom breadboard are the two registers that I have already build and explained earlier. Today I will be sharing the details about the components of the breadboard in the middle. This is the ALU of the CPU.

So this ALU contains some chips 74LS245(Octal Bus Transceiver), 74LS283(4 bit adder), 74LS283, and 74LS86(XOR gate), 74LS86; the chips are in order from left to right.
So 74LS245 as before is the chip responsible for maintaining communication between the bus and the ALU.
Then the 74LS283 chips are responsible for adding the values present in the register A and B. Here the 74LS283 chips are directly connected to the register A as shown in the picture. And are connected to the register B through the 74LS86, XOR gates.
The register B is connected to the adder through a XOR gate is to provide us with a way to subtract two number. That’s it!

To see the ALU in action please head over to this LinkedIn Profile .

Regards
Arghadeep Saha

3 Likes

Hi @Arghadeep_Saha,
Thanks for the update.
The project is getting complex, keep going, you’re on the right way.

OK… I “almost” understand your decision…


I’m really curious about your project.
If I’m not mistaken, I believe you’re using the Arduino Uno Rev3 as the power supply for your project, which outputs 5V at 1A max.
You’re already using 17 ICs and 36 LEDs. The Aurduino Uno may not be the most suitable power supply for your project.

In order not to interfere too much with your project, if I were building it, I would add decoupling capacitors because of the noise.
You’re distributing the power between breadboards by daisy chain connection. If I were doing the project, I’d distribute it by star connection.
Something on this subject:
Power distribution troubles across many breadboards
How do I connect multiple drivers or controllers to a single power supply?

I’ve re-read the thread, but I can’t find any information about the CPU. What are you using as the CPU?

Do you have any schematics or block diagrams you can share?

Sorry to give my opinion and ask so many questions.

I’d like you to keep us informed.
Good luck with the project

Jorge

4 Likes

I am not going to knock your project, think it’s a really great way to learn electronics and simple computing processes I stand in admiration on what you have done so far, think I would have given up quite a way back.
Only negative comment would come from a apple background as to just how many wires and layout the two Steve’s would have fit seeing this. Perhaps the next part is to look at the layout and see how it could be improved. But if you were going to draw the circuit board from this another great learning opportunity.
Please keep us posted on progress it’s really interesting

2 Likes