myCPU, a new CPU inspired on Ben Eater breadboard computer - Page 1
Forum section: electronics / projects

author: mylabpcb
author_rank: Contributor
timestamp: October 12, 2024, 05:36:52 am
content: QuoteI'm very happy to, finally, be able to share the myCPU design inspired in the Ben's breadboard computer project. I spent 2 whole years working with it. It has been designed over PCBs.I've try to share all related information as possible.You can see an overview video at youtube:I've create a project site at:https://mycpu.mylabpcb.com/pages/en/mycpu/introduction/and a public repository for the project:https://github.com/mylabpcb/myCPUAt this moment a board kit is not available, but I hope will be in a near future. All depends if people really like it.Rafa Hernández from myLabPCB initiativehttps://mycpu.mylabpcb.com/pages/en/mylabpcb/

author: SteveThackery
author_rank: Super Contributor
timestamp: October 12, 2024, 07:53:02 am
content: Great work! I'd be super proud.I'd like to suggest a plug-in module with bigger switches on it in order to make data and program entry easier. You could perhaps replicate the LEDs on it, too, to make a plug-in user interface module. Optional, obviously.

author: tom66
author_rank: Super Contributor
timestamp: October 12, 2024, 09:20:31 am
content: Very cool.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: October 12, 2024, 09:35:20 am
content: Maybe it's just me but I got bored after nothing happening in the first 20s of the video and turned it off.It may be a great project, but maybe think a bit about your video skills too.

author: mylabpcb
author_rank: Contributor
timestamp: October 12, 2024, 09:42:48 am
content: Thanks for your comment, I take note of that and I will edit the video.

author: djsb
author_rank: Super Contributor
timestamp: October 12, 2024, 09:59:25 am
content: Will the PCB design files be available in KiCad at some stage? I only see an Altium Designer integrated library file on the GitHub site.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: October 12, 2024, 10:41:00 am
content: Video skills are very different from electronic skills. For making a "proper" video, you first have to think about your audience. Are you making this video as an introduction to your project, or is it supporting information for people already intimately familiar with your project?Your website looks fairly nice. It starts with an overview of the project, then describes the modular design and then it goes further into the sub modules. But the video just looks like a sea of blinking lights. After the first (boring) 20 seconds, there is a minute of data entry into an (yet unexplained) circuit, and a minute of blinking lights, before any explanation is given. (Starting at 02:54) Later you go into some details about how debugging the circuit works.Your video also badly needs some voice support. After I verified there was no voice in the video I quickly turned off the annoying music before I continued. Your avatar suggests you're Spanish, maybe your English is not too good, but some heavy accent is probably better then no voice at all. You can also think about doing the audio in your native language first, (to focus on video content) And doing English later, or even just using subtitles for other languages.

author: SteveThackery
author_rank: Super Contributor
timestamp: October 12, 2024, 10:48:33 am
content: Quote from: Doctorandus_P on October 12, 2024, 10:41:00 amAgreed - fast-forward through the data entry part, because there is no need for the viewer to watch every byte going in. Secondly, edit down the first 20 seconds.And yes, it really, really needs a voice-over with no, or very faint, background music (preferably none - many people hate it). If you really don't want to use your own voice, you could use one of the voice synthesis services available - text in, speech out.It's a very impressive project.

author: mylabpcb
author_rank: Contributor
timestamp: October 12, 2024, 11:04:55 am
content: At this moment I dont know if I could reach a manufactured kit avalaible, I dont have money for that. I analize an option to create a crowfunding project or sell a kit with the gerber files to support the projects.All people want to give feedback to me about this subject could do through this form:https://mycpu.mylabpcb.com/pages/en/mycpu/feedback_kit/

author: mylabpcb
author_rank: Contributor
timestamp: October 12, 2024, 11:10:29 am
content: I appreciate a lot all comments about the video. Its true that video creation is not one of my skills, and I think all of you are right about add an speech to the video to explain what happens. I'm going to solve this before to make new videos.Thanks

author: Bicurico
author_rank: Super Contributor
timestamp: October 12, 2024, 12:25:55 pm
content: I am in a big retro computing trip and after having a few C64, C128 and Spectrum computers, I just ordered an Altair 8800 clone with functional front plate.This means I am indeed a "customer" for your work. I have many tim s glanced at the Kim-1, MicroProfessor and similar kits.What they all lack (with the Kim-1, I refer to it's clones) is some form of expansion that allows connecting a keyboard, a screen and some data storage.Your present built severely lack memory and I/O, to be able to implement anything useful.Also, on the documentation side, I would love to better understand how discrete logic can build a CPU.Don't get me wrong, I love your project, but for it to be a commercial success, in my opinion, it needs to reach your 64KB form. And this is the biggest issue you have: people will wait and skip the intermediate versions - just because you talked about the 64KB version too soon. You should only be discussing what you have now.

author: mylabpcb
author_rank: Contributor
timestamp: October 12, 2024, 02:55:54 pm
content: myCPU is the first of 3 or 4 evolutions of the base project to reach the last version. You can check the roadmap in the introduction page at the site. For beginners is better to start build and understand a simple CPU like the myCPU16 first release and progress to the next versions changing a few modules once they are used to with the myCPU base architecture and the use of microprogramming. I think few people are capable at first to undertand a complex cpu up to 64K with all possible features implemented.For example myCPU16 has only fetch cycle because the argument of an instruction are included in the instruction code, this implementation es easy to follow and to understand for beginners. The first release of myCPU project try to mimic the Ben Eater breadboard computer project to allow builders to follow Ben's videolectures and apply to the myCPU build.

author: mylabpcb
author_rank: Contributor
timestamp: October 12, 2024, 03:06:09 pm
content: The myCPU16 base architecture are valid up to the 2K version of the project. Will be the base architecture + 2 consecutive upgrades.So if you build the myCPU 16 with upgrading few modules you can get the 256 an the 2K versions. Your work in the myCPU16 is the base of those versions, and I think that is useful and thanks to the modularity of the project.Other thing is the use of THT componentes instead SMD, limit the complexity of the modules.Finally is the open architecture, letting the builders to design and build his own modules replacing the provided with myCPU, this is possible due to the simplicity of the myCPU.But I love all of your comments, because give me another kind of perspective. Thanks

author: Bicurico
author_rank: Super Contributor
timestamp: October 12, 2024, 06:23:55 pm
content: I did not understand that the base model itself is upgradable. That is a plusAlso, please consider my thoughts as constructive. I have great admiration for your work and I wish I was literate to understand the inner workings of your/Ben's designs.A kit with all components would certainly be great, if the price is right (I don't know what the components cost).Also, I wonder if your design could be emulated in an electronic design application?

author: rstofer
author_rank: Super Contributor
timestamp: October 13, 2024, 12:01:14 am
content: I would first build a simulator written in C. I would probably use something with a simple IO structure so I would bring in serial IO and switches (and interrupts) and deal with outputs like LEDs, displays and serial IO. An Arduino comes to mind.The simulations are easier to create if the system is micro-coded. I would definitely want to watch the flow through the microcode steps.LC-3 is an interesting micro-coded CPU for which there exists an assembler:https://en.wikipedia.org/wiki/Little_Computer_3Simh is an elegant way to simulate a system.https://en.wikipedia.org/wiki/SIMHSimh is used to simulate an entire IBM 1130 including the card reader, line printer and bouncing ball typewriterhttp://ibm1130.org/sim/At the high end of simulation is the PiDP-11 where a Raspberry Pi is used as a host to simulate a PDP 11-70. Very elegant!https://obsolescence.wixsite.com/obsolescence/pidp-11You could write the simulation to operate at the gate level or at the MUX/register level.Changing lines of code is a lot easier than changing wire-wrap.

author: mylabpcb
author_rank: Contributor
timestamp: October 13, 2024, 05:48:19 am
content: The myCPU16 release is emulated using logisim evolution, I will prepare a video explain that. In the Simulator folder there's precise emulator of myCPU, microinstruction encoding works in the same way that the physical system. You can exchange the bin file, generated by the Encoder CLI, between the myCPU and the simulator and all works in the same way.I'm preparing a video explaining the meaning of some resources included in the project.

author: ricko_uk
author_rank: Super Contributor
timestamp: October 13, 2024, 07:45:59 pm
content: Cool project!!

author: mylabpcb
author_rank: Contributor
timestamp: November 18, 2024, 07:08:29 pm
content: I've added recently 4 new videos about myCPU modularity and open architecture features.Could be insteresting if you are insterested on homebrew CPUs.https://www.youtube.com/@mylabpcbGreetingsRafa Hernández