Nand to Tetris 1
experiments.oskarth.com
experiments.oskarth.com
1:the building of the Nand gate itself and 2: the building of a flip flop.
Both these tasks can be easily accomplished with reference to the book 'Code' by Charles Petzold (http://www.amazon.com/Code-Language-Computer-Hardware-Softwa...)
and software such as this http://logic.ly/
I stopped reading Nand2Tetris in any great amount of detail and just skimmed the rest after I saw that it confused Harvard (separate code and data) and Von Neumann (combined) architectures.
Do you think what you want is achievable while humans vary in their abilities?
I believe something can be done, otherwise I wouldn't bother talking about it. This is only from personal experience, I experienced both feeling of being very talented as a kid, and the complete lack of it, all of a sudden, when going to college. Since then a lot of things that seemed impossible to understand started to click. It feels like experiencing both extremes of the ability spectrum. And in the end talent/innate-ability, or its absence, doesn't really matter. It's mostly desire and patience to unfold your own misconceptions.
And I strongly believe that the school system and society supports that notion that you either get something in a short timespan or you'll never because it's the way society can function; individual well being / growth jailed for this purpose.
A NAND gate is defined as:
a x b = 0
So if both a and b are 1, the output will be zero. You need an inverter to form any other logic functions, but you also know that:
a x b = 0 when a = 1 and b = a
In other words, wire both inputs to one signal to get an inverter. Next we need an or gate, so we can use the identity:
!(a x b) = !a + !b
So to build the other necessary gates from a NAND gate, we simply combine these rules:
AND - invert the output of a NAND. NOT - wire both inputs to the same signal. OR - invert both inputs of the NAND gate NOR - invert both the inputs and output of the NAND gate.
One tip for the aspiring logic designer (and those who would rather calculate a result than create giant if-then-else structures in their code - learn Gray's Code and Karnaugh Maps. You can easily minimize almost any truth table into a sum-of-products form.
const logicGates = {
nand(a, b) {
return !(a && b);
},
not(a) {
return this.nand(a, a);
},
and(a, b) {
return this.not(this.nand(a, b));
},
or(a, b) {
return this.nand(this.not(a), this.not(b));
},
nor(a, b) {
return this.not(this.or(a, b));
},
xor(a, b) {
return this.and(this.nand(a, b), this.or(a, b));
},
xnor(a, b) {
return this.not(this.xor(a, b));
}
};
Object.keys(logicGates)
.map(gate => {
return [
{ gate, a: false, b: false },
{ gate, a: false, b: true },
{ gate, a: true, b: false },
{ gate, a: true, b: true },
];
})
.forEach(x => {
x.map(y => {
const desc = JSON.stringify(y).replace(/(gate)|:|"|\{|\}|,/g, ' ') + '=>';
console.log(desc, (({ gate, a, b }) => logicGates[gate](a, b))(y));
});
});
http://blog.shawndumas.com/post/119694815258/logic-gates-es6...It's nice to start seeing ES6 code in the wild, though.
From NAND
to Tetris
So here's the link:
https://news.ycombinator.com/item?id=9593189https://hn.algolia.com/?query=nand2tetris&sort=byDate&prefix...
https://hn.algolia.com/?query=nand%20tetris&sort=byDate&pref...
Edit: Here are previous submissions - none have any significant discussion:
https://news.ycombinator.com/item?id=6963338
From NAND to Tetris: The Elements of Computing Systems [repost]
(nand2tetris.org)
https://news.ycombinator.com/item?id=7109860 Building a Modern Computer from First Principles
(nand2tetris.org)
https://news.ycombinator.com/item?id=8203302 Building a Modern Computer from First Principles
(nand2tetris.org)
https://news.ycombinator.com/item?id=9062220 Class in building a computer from "first principles"
(coursera.org)
https://news.ycombinator.com/item?id=9255258 Coursera: From nand to tetris
(coursera.org)
https://news.ycombinator.com/item?id=9256157 From Nand to Tetris [Coursera online course starts next month]
(coursera.org)
https://news.ycombinator.com/item?id=9288093 From Nand to Tetris / Part I
(coursera.org)
https://news.ycombinator.com/item?id=9362022 From Nand to Tetris - Part 1
(coursera.org)
https://news.ycombinator.com/item?id=9590845 Nand to Tetris 1, with Dan Luu
(oskarth.com)
https://news.ycombinator.com/item?id=9593114 (in progress ...) Nand to Tetris 1
(oskarth.com)A friend of mine took the course, said it was great.
In the last few weeks I’ve been working my way
through the excellent book Elements of Computing
Systems - building a modern computer from first
principles as part of the equally excellent Nand
to Tetris MOOC.
^^^^^^
I guess you're not aware of the "From NAND to Tetris" book and series.