Background
For years, I have been following James Sharman as he builds an 8-bit pipelined CPU similar to Ben Eater. His videos haven't seemed to take off as well as Ben's, but they are incredibly informative and a very fun watch with over 100 videos documenting his progress. Around 1 year ago, I decided I wanted to try to build his CPU, though only using breadboards. James did much of his designing on breadboards but would move modules to PCB with a backplate once he was satisfied with the designs.

Please note that effectively all of the design (busses, registers, etc.) are all from James Sharman's build. I am not confident in my ability to design from scratch, I just wanted to have fun building from his documentation.

Design Considerations
I decided to build my computer using the 74HCT family of chips. I know Ben designed much of his using the LS series, but my understanding is that the CMOS chips consume much less power. Likewise, the HCT chips are TTL compatible, meaning they can be used with the LS chips in case I have difficulties sourcing any 74HCT chips, which I have not yet.

By building the computer on breadboards only, I will not be able to achieve the same speeds James targets in his build. Due to the parasitic capacitance of the breadboards, I expect to achieve MAYBE a few 100 kHz, but we will see. I am also littering the power rails with decoupling capacitors. I can't exactly get them right between VCC and GND pins on chips, but they are close enough for now.

Current Progress Overview

The build currently has all 5 16-bit registers completed, shown on the left of the build. I am still working on the bus controller for these registers, and then I will link the registers together with both busses.

Memory and the pipeline itself are also under construction, with memory having no output control and the pipeline only consisting of a fetch unit (it does have a makeshift fetch suppress for loading constants, but this was only for prototyping).

The clock module is different from James' design. For this, I referenced Fabian Schuiki's Superscalar CPU. I did include a TL7705 voltage supervisor to deal with generating a reset signal - though the timing capacitor is unnecessarily large right now as it allows me to debug if a reset is triggered.

All of the 8-bit components on the right are as complete as can be right now. I am waiting on some extra LEDs for indicators on the registers, but the bus controller is all hooked up, along with the constant register.

I have some documented pictures of the register modules, but I think that photo does justice for what is going on. Of note, within the 8-Bit modules, Green is the main data bus, Blue is the LHS for the ALU, and Red is the RHS of the ALU.

Tips/Suggestions

  • 3D breadboarding was pretty difficult to begin with. I had no experience with it and was constantly cutting wired either too short or too long. This got much better when I was more familiar with my tools, recognizing how far to put the wire into my pliers as I increased the layer height.
  • Buy some nice wire with thin insulation. I originally got some 22 AWG wire off amazon, but this wire is about 1.60 mm with insulation. Considering breadboard holes are spaced 2.54 mm from each other, I can't even fit 2 wires in the same row. This led to a lot of excessive stacking and 3D wiring. I eventually switched to the Jameco 22 AWG Solid Core Wire and this had a significantly smaller insulation (1.1 mm).
  • Quite a bit of money will go into breadboards. I originally got a handful of the BusBoard BB830s suggested by Ben Eater, but I soon after switch to some cheaper ones off Amazon. I did run into one issue where two power rail clips were shorted on the cheaper boards, but I was able to take it apart and fix it (while frying a 10W power supply - luckily they're cheap).
  • Look around online for places to get ICs. I found Futurlec and wasn't sure if they were legit/trustworthy but I have ended up getting most of my ICs from them. They are quite cheap and I haven't had any issues with them. Their shipping is almost unbearably slow at times, so expect >1 month for parts if shipping to the US as they are based in Thailand. For some harder to get components such as EEPROMs, I found Unicorn Electronics to be the best priced. They are also based in the US, so I typically get parts within a week. You can always go with some of the larger distributors, just there is usually quite a big price difference.
  • Depending on the EEPROM family, I would recommend not buying a programmer and rather building the TommyPROM. It only takes an Arduino and 2 74x595, and provides some good practice breadboarding. Below was my build of it.



That is all I have for this first update. Hopefully I will be able to keep up with posting updates as I work through modules. It's been a really good experience so far and it would be nice to share the journey with people.
This looks great! It's very neat and it's something that I've always wanted to try myself.

I've used Futurlec a few times over the past decade and they have always been fine for me (in Australia).

I look forward to seeing updates Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement