(no title)
arein2 | 2 years ago
The target audience for nand2tetris are people that want to understand how the CPU works, and nand2tetris focuses too much on how to make logic using nand gates leaving other areas uncovered.
I recommend the Ben Eater youtube chamnel, he has a series of videos about building an 8bit computer, that in my opinion is much more informative for a curious person.
drivers99|2 years ago
nand2tetris covers many levels of abstraction; it is both lower and (much) higher level than Ben Eater’s projects, which is one of its main points: you can create something in one level of abstraction and then build on it in the next level of abstraction. It only starts with logic gates (a single one to start with, “nand” obviously) and goes through the other logic gates that can be built from nand gates, then various digital logic built on that, registers and other synchronous logic, ALU, full CPU, full computer. Hardware is only the first half of the course. Then you build a stack machine, assembler, objected oriented language compiler, a software library I think, and finally a game you write in that (doesn’t have to be Tetris). So the whole second half is layer on layer of software abstractions starting from the hardware. I would say it handwaves over video output and keyboard input because it’s not what they’re teaching about, while Ben Eater shows how to physically build such things.
Ben’s is purely hardware up through 2 main registers, an alu with only add and subtract, an 8 bit digital readout, no real input (besides updating RAM to input the code & data using switches), 16 bytes of RAM (4-bit address), and control unit to implement machine language with a few opcodes. His 6502 project starts with a CPU which is already far beyond where the 8-bit computer ends and builds a computer architecture around it (RAM, ROM, I/O, and peripherals: video, keyboard, serial).
nand2tetris is normally simulated and Ben’s covers physically building things which has its own set of lessons/skills to learn. Coincidentally I ran across a crossover of the two projects today: a video of someone who built a breadboard version of the nand2tetris 16-bit cpu (called Hack)! https://youtu.be/L-azf9ecvfo