[HN Gopher] Show HN: Homebrew 16bit CPU from 74HC logic with C c...
       ___________________________________________________________________
        
       Show HN: Homebrew 16bit CPU from 74HC logic with C compiler and
       Unix-like OS
        
       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.
        
       Author : pconst167
       Score  : 182 points
       Date   : 2023-12-08 01:32 UTC (21 hours ago)
        
 (HTM) web link (www.sol-1.org)
 (TXT) w3m dump (www.sol-1.org)
        
       | quantified wrote:
       | I love it. Looks fairly well-rounded.
       | 
       | I didn't see in the written artifacts: what's the effective
       | instructions per second?
        
         | B1FF_PSUVM wrote:
         | 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.)
        
           | jacquesm wrote:
           | 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
        
             | dboreham wrote:
             | They're normal sized boards fwiw.
        
               | kjs3 wrote:
               | Those are Multibus-1 prototyping boards, so they'd be
               | 12"x6.75". It's a good size for building non-trivial
               | things.
        
               | jacquesm wrote:
               | 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.
        
           | marktangotango wrote:
           | Wire length matching would seem to be a big factor in
           | attaining the highest performance.
        
       | userbinator wrote:
       | Was this inspired by http://www.homebrewcpu.com/ ? Seems to be
       | very similar in specs.
        
       | Evidlo wrote:
       | How about serving the website from the machine you built?
        
         | samus wrote:
         | 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.
        
           | actionfromafar wrote:
           | I agree it should be possible, but a Raspberry Pi Zero is a
           | super computer.
        
         | tw1984 wrote:
         | 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
        
           | junon wrote:
           | If it has SPI support throw in a w3 line nic and use Rust
           | with Smoltcp.
        
             | nerpderp82 wrote:
             | 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.
        
             | Someone wrote:
             | > 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.
        
       | jacquesm wrote:
       | 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?
        
       | LispSporks22 wrote:
       | Love it. Had fond memories of building big 7400 circuits in
       | undergrad. Bullet speed detector iirc.
        
       | cristeigabriel wrote:
       | So lovely!
        
       | louismerlin wrote:
       | 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
        
       | immmmmm wrote:
       | There's a discrete risc-v cpu too!
       | https://www.hackster.io/news/filip-szkandera-s-pineapple-one...
        
       | blackhaz wrote:
       | 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.
        
       | RagnarD wrote:
       | I'm curious if he's self-taught. I get that vibe from seeing his
       | desk.
        
         | nerpderp82 wrote:
         | 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.
        
       | cristeigabriel wrote:
       | Do you have something like exceptions and segments? Itd be cool
       | if it _didn 't_ IMO (besides for permission situations, I guess)
        
       | Luc wrote:
       | 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?
        
       | Taniwha wrote:
       | Tiny tapeout 6 is coming up you should knock one out
       | 
       | https://tinytapeout.com/
        
       | kleiba wrote:
       | Quick, someone port Doom to it!
        
       | c-c-c-c-c wrote:
       | 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.
        
       | crispyambulance wrote:
       | > 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.
        
       | cbm-vic-20 wrote:
       | 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!
        
       | tails4e wrote:
       | Extremely impressive, well done.
        
       | jmclnx wrote:
       | very nice!
        
       | tw1984 wrote:
       | 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.
        
         | shortrounddev2 wrote:
         | 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
        
       | allenrb wrote:
       | 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!
        
       | peter_d_sherman wrote:
       | 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!
        
       | accrual wrote:
       | 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
        
       | danieg wrote:
       | 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.
        
       | jandrese wrote:
       | 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.
        
       | nxobject wrote:
       | Good 'ol interpreted, sequenced microcode :)
        
       ___________________________________________________________________
       (page generated 2023-12-08 23:02 UTC)