Journey of nand2tetris — building own computer from principal gates

Devops at Leapfrog Technology Inc.
Search for a command to run...

Devops at Leapfrog Technology Inc.
No comments yet. Be the first to comment.
Do you understand the difference between "looks good" and "is good?"

For more than 3 years I've been doing DevOps and involved myself in multiple projects ranging from simple static web applications deployed to some CDNs to multi-tenant systems with event-driven architectures. I've always found some ways to make my bo...
One of the problems that I face frequently when writing Infrastructure as a Code is how you structure it. To answer this question, I think there are a few indicators that decide how we want to structure. One resource will have less change compared t...

This may come as a surprise to you. How can someone use nginx configuration with Javascript? Fortunately, nginx supports a language called njs which is a strict subset of ECMA5. This can be used to further extend your routing logic, but don't be that...

This is my first blog of multiple blogs on developing a pod troubleshooter turned into a compiler as a service. What do you call it CaaS? COMPaaS is cooler though, lol. I've been learning a lot of things in this journey, so I decided to share about i...

Hey everyone. It’s been few weeks I’ve dig in into this book. So, this book covers how a modern computer is built using just logical gates. Let me talk about the book structure first. So basically, you build a simple logic gates in first and in the next one take the logic gate you built as granted and develop ALU out of them, in the next chapter you add memory or sequential logic to your computer and so on you keep abstracting the learnt stuff and only worry about the usage not the implementation in the upcoming chapter.
You may be thinking how’s this possible to do at home (just like me). Well, these authors have done pretty good job for learners as they provide all sort of simulation tools and techniques so you can run and simulate every gates and logics from your computer. And they put projects on every chapter so you take away some knowledge by hands-on practice.
We are provided with a HDL ( Hardware Description Language ) which is very simple language which lets you write the specifications and implementation of sophisticated chips and simulate them and that’s what modern engineers on this field do, it looks like this…
Chip Something{
IN a,b;
OUT out;
PARTS:
Xor(a=a,b=b,out=out1);
...
...
And(a=out1,b=out1,out=out);
}
This is how they laid it out, c<int> being a chapter level.

So talking about what I did so far, I have been following the book and also following a video course or lectures on Coursera made by the authors of the book which basically explains the stuffs if you’re a hardcore visual learner kinda like me. [ all links in bottom ]
So far I’ve completed all elementary gates using universal NAND Gate. Then, I made de multiplexer and negator which is quite complex as I had to frequent jump into my digital logic book to understand. Also, k-map was a plus point for me to generate boolean function quick to implement using gates.
Then joining on, I got into building half adder, full adder and also virtually implementing a subtractor which is basically addition but in 2’s form.
Then what I was able to build is a full ALU which is capable of taking instruction and processing out. I never thought it would be that clear although it is very basic one.
So, if anyone interested I put my ALU’s instruction set.

I decided not to upload any codes as interested learners may find it as spoilers. I’ve put the links below if you are interested.
Coursera part 2 : https://www.coursera.org/learn/nand2tetris2/
Book : C’mon you can search for pdf everywhere on internet. Also you can buy the book if you support the creators.