Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Homebrew 16bit CPU from 74HC logic with C compiler and Unix-like OS (sol-1.org)
192 points by pconst167 on Dec 8, 2023 | hide | past | favorite | 42 comments
This is a 16bit CPU+Minicomputer from pure 74 series logic. It has user/kernel modes, virtual memory, prioritized IRQ's and DMA. It has a full C compiler and a unix-like OS. It's still in development.




Sometimes I feel bad for kids today who experience computers that are so powerful that they are many layers divorced from the hardware. Long gone are the days when there was only the thinnest layer of BASIC between you and the CPU when you boot the machine.

But then something like this comes along and reminds me that there is no reason you can't just fire up a 16 bit machine with a paper thin OS if you wanted. Not everything has to be a smartphone or modern system. My hat is off to the author for going a step further and building a minicomputer from scratch.


> Sol-1 is a homebrew CPU and Minicomputer built from 74HC logic [with C compiler and Unix-like OS]

==> lifetime elite nerd union card for the author.

Amazing stuff. The dedication needed to carry something like that through is unimaginable to me.


Wow; this looks a lot like the smaller PDP-11 minis from the 1970s: a stack of wire-wrapped cards with edge connectors plugged into a backplane, a few ribbon cables for other connections. Except DEC had a big team of engineers to do this. This is good stuff!


Congratulations. Amazing.

What was your workflow for the design like? On your github I see you used verilog. I have never used it. Do you use software that converts the verilog to a list of 74HC ICs and how to connect them?


Hey there! The verilog is separate from the 74HC design. The verilog was written simply for completion. I plan to put it into an FGPA sometime.


Was this inspired by http://www.homebrewcpu.com/ ? Seems to be very similar in specs.


This is super cool, well done!

Some fun historical context: the 74181 chip (part of the 74HC series) was one of the key technologies behind the Xerox Alto. It was the first complete ALU on a single chip using a medium-scale integration (MSI) design. This was what enabled the Alto to be much smaller than minicomputers like the PDP-8, which used small-scale integration (SSI) that spread the processor over many individual logic gate chips and circuit boards.


Tiny tapeout 6 is coming up you should knock one out

https://tinytapeout.com/


I adore this project. I hope one day to write my own micro OS, I started one using OSDev[0], but never finished it. Building your own OS on top of your own hardware is on another level though. Excellent and nicely documented project, Paulo!

[0] https://wiki.osdev.org/Expanded_Main_Page


This is fun, I stumbled upon his youtube channel recently after he trash talked a lecture by Jan M. Rabaey calling his book the biggest piece of garbage ever written. Impressive stuff nonetheless.


Hehe you got me laughing :P Thank you for visiting friend.


Quick, someone port Doom to it!


Wow, that's super impressive!

Be sure to check out the photos and videos.

How fast is it? Do you plan on using this for real or just as a hobby project?


Very cool project!

That’s funny, I started working on a 16bit CPU for a stack computer a couple of months ago, and ended up naming it "sola".

https://git.sr.ht/~louismerlin/sola


Well done and amazing!

You just earned yourself a GitHub follower! (me!)

I would follow you on Twitter/X as well -- but you don't seem to have a Twitter/X account (which I would argue is yet more proof of your intelligence! :-) <g> :-) )

Anyway, great job!

Amazing and well done!


I'm curious if he's self-taught. I get that vibe from seeing his desk.


From this http://www.sol-1.org/images/sol/desk-2.jpg ? Looks like half the labs in the basement of the physics building. At some point, we are all self taught.


Sir, this is incredible. Really enjoyed the photos/videos section and the way the computer is so neatly laid out. Mind-blowing amount of effort. I wish I would be able to see this live in a university.


Do you have something like exceptions and segments? Itd be cool if it didn't IMO (besides for permission situations, I guess)


I love it. Looks fairly well-rounded.

I didn't see in the written artifacts: what's the effective instructions per second?


I checked https://en.wikipedia.org/wiki/7400-series_integrated_circuit... and gate delay (tpd) for 74HC is 15 ns.

I wouldn't expect more than 1 MIPS, which is what the DEC VAX 11/780 was doing around 1980.

(Awesome one-man project, if that's the case.)


If it gets 1 MIPS I'd be absolutely amazed, check out the size of the wire wrap boards:

http://www.sol-1.org/images/sol/board-1.jpg


They're normal sized boards fwiw.


I didn't mean to imply that they are abnormal, just that they are large and large boards like that tend to be harder to make stable when using wire wrap as a technique. I've done this - and stacks of them too - but I've also spent days tracing a faulty wire, and the chance of such faults goes up as the number of wires goes up.


Those are Multibus-1 prototyping boards, so they'd be 12"x6.75". It's a good size for building non-trivial things.


Wire length matching would seem to be a big factor in attaining the highest performance.


Love it. Had fond memories of building big 7400 circuits in undergrad. Bullet speed detector iirc.


Extremely impressive, well done.


this is cool stuff, I have the feeling that using FPGA to implement a more powerful CPU could get you more fun down the road.

anyway, this is just hardcore engineering, hat off to the guy behind all these.


I've worked on similar projects before and people always suggest FPGAs to me as a simpler option, but I feel it misses the point. Doing these kinds of projects is about getting closer to the metal, and not about raw power or simplicity


How about serving the website from the machine you built?


Should definitely be possible with mostly static content and Cloudflare caches in front. I bet there are many personal websites out there served from an old smartphone or from a Raspberry Pi Zero.


I agree it should be possible, but a Raspberry Pi Zero is a super computer.


that would require a lot of extra work -

* tcpip stack in the OS

* nic and driver

* homebrew web server assuming the OS doesn't have the compatible APIs to support those open source ones


If it has SPI support throw in a w3 line nic and use Rust with Smoltcp.


You could implement a simple http over serial line and then front with nginx. No TCP necessary at all. Or throw an esp32 on it, and use its tcp stack.


> and use Rust

The page mentions gcc nor clang, so chances are high the “Full C compiler” is home-grown.

If so, there probably is work to do to built a Rust compiler for it.


Good 'ol interpreted, sequenced microcode :)


This is spectacular. Aside from, you know, actually making it work and having a software stack on top of it, it’s also beautiful. The wire wrapping and the chassis/backplane complete with retaining clips, everything.

As a kid, I would see magazine photos of S-100 systems and various minis. What’s been built here would fit right in. Wow!


So lovely!


very nice!




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: