3 ms·
My son is at this very moment doing the nand2tetris course on Coursera as a summer project, because he wanted to understand how computers work. It's very well d
by apricot 3y ago
My son is at this very moment doing the nand2tetris course on Coursera as a summer project, because he wanted to understand how computers work. It's very well done and the tools provided isolate the beginner from a lot of low-level EE details. The first half of the project has you build a simple 16-bit computer starting from logic gates, using a basic hardware description language, as well as an assembler for it. Simulators are provided. As you wrote, timing considerations are sweeped under the rug, which is too bad.
The second half is more software-oriented: you start by writing a stack machine emulator for your computer, and then you write a compiler for an object oriented high-level language that outputs stack machine code. Finally, you write a standard library for your language.
As a third part to this course, we will then implement that computer on an FPGA, following Michael Schröder at https://gitlab.com/x653/nand2tetris-fpga/ https://gitlab.com/x653/nand2tetris-fpga/ . This will be my first experience with FPGA development, so I'm looking forward to it as well.