Live data from Hacker News

Show HN: I made a programmable computer from NAND gates

github.com

21–30 of 80 posts

Re: Show HN: I made a programmable computer from NAND gates

#25
Cool project. It reminds me of a theoretical issue. As the project page says, this system is clearly Turing equivalent. Since it runs software, it even implements a _universal_ Turing machine. But the design uses only (synchronic) sequential logic [1] and Wikipedia seems to suggest that automata theory considers sequential logic only equivalent to finite state machines. Not Turing machines. Isn't that clearly a major bug in automata theory?

My guess is that automata theory consideres it critically important that a "Turing machine" has an infinite tape, while intuitively it instead seems relevant that it has something like a tape at all, some sort of random access memory, even if it is finite. I think such a memory system can't be implemented with classical finite state machines, at least not with comparable time complexity for read and write, but can be realized with sequential logic.

[1] https://en.wikipedia.org/wiki/Sequential_logic

Re: Show HN: I made a programmable computer from NAND gates

#26
post #20

Earlier quoted context omitted.

Would it be at all feasible to build a physical NAND-to-tetris computer? Or is it purely a virtual exercise?

There's this one that goes one step beyond that, it's built out of 40,000 discrete transistors: https://www.youtube.com/watch?v=z71h9XZbAWY EDIT: there's more information here: https://www.megaprocessor.com/

I kind of want something midway between the FPGA version and the all-transistor version, something that just uses 7400 series chips (or, presumably there’s a 26-pin equivalent with 6 gates instead of three). Heck, I think even something that goes ahead and uses the full panoply of basic logic chips available could be kind of cool to see.

Re: Show HN: I made a programmable computer from NAND gates

#27
post #15

Seymour Cray would have loved this. Some of his computers were all NAND gates.

The supercomputers (all?) used wirewrap rather than PCBs. I heard a story once about someone coming in for a demo of a supercomputer and Cray realized there was a bug in the hardware during the demo and while the potential customers were at lunch, he rewired the machine to fix the bug.

Re: Show HN: I made a programmable computer from NAND gates

#28
post #27
post #15

Seymour Cray would have loved this. Some of his computers were all NAND gates.

The supercomputers (all?) used wirewrap rather than PCBs. I heard a story once about someone coming in for a demo of a supercomputer and Cray realized there was a bug in the hardware during the demo and while the potential customers were at lunch, he rewired the machine to fix the bug.

Right. Seymour Cray said that the two big problems in supercomputing were "the thickness of the mat" (of wires on the backplane) and getting rid of the heat.

This is a Cray-I backplane.[1]

[1] https://www.flickr.com/photos/geekmuseum/2926520634/

Re: Show HN: I made a programmable computer from NAND gates

#29
post #26
post #20

Earlier quoted context omitted.

There's this one that goes one step beyond that, it's built out of 40,000 discrete transistors: https://www.youtube.com/watch?v=z71h9XZbAWY EDIT: there's more information here: https://www.megaprocessor.com/

I kind of want something midway between the FPGA version and the all-transistor version, something that just uses 7400 series chips (or, presumably there’s a 26-pin equivalent with 6 gates instead of three). Heck, I think even something that goes ahead and uses the full panoply of basic logic chips available could be kind of cool to see.

I think Ben Eater's 8-bit computer is closer to what you want: https://eater.net/8bit/

It's been a few years since I studied it (I even built the clock module, registers and the ALU), but from what I remember the biggest departing point from what you want is that the control logic (from instruction decoding to deciding which sub-units to activate for each instruction) is done with an EEPROM instead of individual logic gates, as described here: https://eater.net/8bit/control

Post reply on HN