Recently I came across an online course on building your own computer starting with NAND gates.
Ok, then What is NAND gates? Well NAND gates are basic building block for any digital device ex- Laptops, Mobiles, Camera and many other devices.
Ok, then how to make NAND gates? NAND gates are made using even smaller components called as Transistor, they are like switch which can be turned ON and OFF, but by flowing a small current through them not the we have traditional tick tack type switches.
Ok, so you are telling me that everything is made from Transistors? Yess you got it.. every digital device is made from Transistors.
So, lets talk about that course. The name of the course is nand2tetris in which we have to make our own computer and run own softwares all starting with simple NAND gates. There is also a course on coursera by the same professors with video lectures. I think is worth to see once that site and course for every engineer who is interested in computers and digital devices.
So, I decided to write my own blog on how to build our own computer. This is just a guide for people to help and share whatever i learnt using that course. I will follow materials from there and build my own HACK computer using the resources provided on nand2tetris website.
Though there is no pre-requisite for this course but, I think if you have taken any course on Digital Circuits or Basic Electronics, It will be easier to follow up the course.
The course goes like this:
- First Project: Simple Gates and Computational Logic like AND, OR, NOT, Muxes and DeMuxes.
- Second Project: Adders, Incrementer and full ALU.
- Third Project: Memory elements like Registers and RAMs.
- Fourth Project: Machine Language Programming i Assembly.
- Fifth Project: Combining everything you made in First Second and Third project to full functional CPU.
- Sixth Project: Writing an Assembler Program to translate code written in Fifth project to Machine Code which your CPU will understand.