Live data from Hacker News

Write up of my homebrew CPU build

willwarren.com

41–50 of 54 posts

Re: Write up of my homebrew CPU build

#41
post #5

> It’s a standalone tool that lives outside the computer. I put the EEPROM into the socket, and connect via serial to my laptop to upload the binary files. Huh, I guess I never really thought about it, but how did they program the first CPUs? Like how did they overcome the chicken/egg situation?

For the microcode ROMs they can just be “hardwired” with a zillion simpler gates. This has the added benefit of supporting way higher clock speed. For my planned program ROM you would either have to input manually like the first computers, or use other things like punch cards or your computer would be again “hardwired” to load programs from some other media

Re: Write up of my homebrew CPU build

#42
post #30

The first image I saw gave me considerable anxiety and dread lol. I am so impressed, and have always wanted to do something like this. I took a digital logic course in university that was an absolute blast. I never wanted to stop there, but ultimately ended up doing so. However, just looking at all those wires made me feel a sense of, "Maybe I won't do this after all."

Dread was the desired outcome haha. I was also kind of excited to prove to others that you can have fast clock speeds without spending forever bending and stripping wires (for my fellow lazy/busy people).

Honestly even though it is a bit of a rats nest, in my mind it feels like a kind of organized chaos. And easy to trace any single route.

Re: Write up of my homebrew CPU build

#43

Hi Will, absolutely amazing this, I love the 'money shot' up front, there are days my desk and yours could be swapped without either of us realizing right away what happened. The Rigol deserves a blog post of its own, I've got one too and the better I get in using it the more I'm amazed at what it can do. I've run into the same 'all you can get is SMD' which is fine for when you're finished but a lot harder while you…

This is such a nice comment! Thanks for reading :)

Re: Write up of my homebrew CPU build

#44
post #43

Hi Will, absolutely amazing this, I love the 'money shot' up front, there are days my desk and yours could be swapped without either of us realizing right away what happened. The Rigol deserves a blog post of its own, I've got one too and the better I get in using it the more I'm amazed at what it can do. I've run into the same 'all you can get is SMD' which is fine for when you're finished but a lot harder while you…

This is such a nice comment! Thanks for reading :)

No, thank you!

Looking forward to part 4.

Re: Write up of my homebrew CPU build

#45
post #25
post #5

> It’s a standalone tool that lives outside the computer. I put the EEPROM into the socket, and connect via serial to my laptop to upload the binary files. Huh, I guess I never really thought about it, but how did they program the first CPUs? Like how did they overcome the chicken/egg situation?

IIUC, that's what sci-fi LED panels of really old computers were. They showed all the internal statuses of the CPU as well as CPU-RAM bus. And the toggle switches allowed individual bit overrides. The operator sets a CPU RESET switch to RESET, then powers on the machine, and start toggling RAM address and data switches, like HHLL HLLH HHHL LLLL. The operator then press and release the STEP push switch. The address 0b…

Of course, if you have sufficiently simple input devices that could do DMA, then you can do something e.g. IBM 1401 did:

    When the LOAD button on the 1402 Card Read-Punch is pressed, a
    card is read into memory locations 001–080, a word mark is set
    in location 001 to indicate that it is an executable instruction,
    the word marks in locations 002-080 (if any) are cleared, and
    execution starts with the instruction at location 001. [...] To
    read subsequent cards, an explicit Read command (opcode 1) must
    be executed as the last instruction on every card to get the new
    card's contents into locations 001–080.
I imagine the additional wiring on that LOAD button must have been pretty small: the READ functionality already exists in the 1402 device, it also has an output signal that tells when the read is finished (so the 1401 Processing Unit knows when the Read command is done), so you just need to tie that signal into resetting the PC to 1 and then starting the clock.

Re: Write up of my homebrew CPU build

#46
The unfortunate reality of building these home-brew CPUs is that almost all of the "medium integration" ICs are long out of production - things like the 74181 ALU slice, carry lookahead adders, 16-way register files, etc.

Makes doing things larger than 8/16 bit computers very complicated and usually very slow :(

Re: Write up of my homebrew CPU build

#47
This is very cool. And I found it timely since I also have embarked on a similar journey to build an analog computer—and gone through similar steps of breadboarding, ordering PCBs (iterating and iterating).

And no shit, Claude has helped with a lot of the EE stuff that I was only semi-knowledgeable about. I want to pursue a multiplier unit using log/anti-log circuits and an LLM suggests multiplying with PWM. For another module I complain about the cost of a 16-bit ADC and the LLM suggests a 12-bit drop-in replacement that costs half as much. I want sine and cosine and the LLM suggests using diodes/resistors to "shape" a voltage to approximate a sine curve—rattles off the resistor values needed.

I breadboard first everything the LLM suggests, dig around on the internet to see if the idea is legit/sound, and in the process have learned an enormous amount about electronics in general.

Re: Write up of my homebrew CPU build

#48

Earlier quoted context omitted.

Or diode matrix ROMs were pretty popular as well. Electrically, essentially what happens in most mask ROMs, but as a circuit board that allowed you to solder in a diode or not in each bit location in order to specify a 1 or a 0.

That would be the "hardwired" option.

Eh, it was considered user programmable and generally came blank from the vendor.

Re: Write up of my homebrew CPU build

#49

The unfortunate reality of building these home-brew CPUs is that almost all of the "medium integration" ICs are long out of production - things like the 74181 ALU slice, carry lookahead adders, 16-way register files, etc. Makes doing things larger than 8/16 bit computers very complicated and usually very slow :(

YES, a modern version of the 74181 is equivalent to about 12-20 chips in the LS or HC series. It would be so useful. Someone should do a tiny tapeout!
Post reply on HN