HDL
論理回路
Nand2Tetris
コンピュータシステムの理論と実装


自己紹介

こんにちは。今月から新高校生になるtaka2です。初投稿です。プログラミング絶賛修行中のものです。今回、本屋でこの本を見かけて、立ち読みしてうおおおとなり、10分後にはすでに買っていたので、備忘録として書こうと思いました。今のモチベーションが続けば、最後まで完成させる気です。絶賛修行中(2度め)なので、アトバイスなどしてくださると嬉しいです。


内容

今回はNand2Tetrisの第1章の備忘録です。Nandからいろいろな論理回路を組み立てていきます。準備の部分は本書にかかれているとおりです。


Not

Notゲートは簡単です。Screenshot from 2019-04-03 23-16-18.png

これを本書で提供されているハードウェアシュミレーターでテストします。Screenshot from 2019-04-03 23-21-30.png

このシュミレーターの上のバーの上のようなアイコンを押してNot.tstを選択し、読み込まれたらバーの>>を押して、Screenshot from 2019-04-03 23-24-04.png

このように成功すればOKです。

初め、コマンドプロンプトの方から、

~/nand2tetris/tools/HardwareSimulator.sh Not.hdl

と入力して実行しようとしたがそうすると自分の環境ではエラーが出てしまうようです。(ubuntu1604)

上記の方法なら問題なくできたので、その方法でやっていきました。


And

Screenshot from 2019-04-03 23-50-56.png

先ほどと同様に実装していきます。このあとも同じように。


その他ゲート

画像をぽんぽん貼り付けていきます。

Or

Screenshot from 2019-04-03 23-53-35.png

Xor

Screenshot from 2019-04-03 23-55-08.png

Nandだけで実装できるなんて感動!

Mux

Screenshot from 2019-04-03 23-56-51.png

DMux

Screenshot from 2019-04-03 23-57-52.png

次は多ビットゲートですが、ここが一番だるかったです。同じことの繰り返しなので。

多ビットマルチプレクサのみ載せます。

Mux16

Screenshot from 2019-04-04 00-00-08.png

他入力ゲートたちは紙に書きながら考えました。selがややこしすぎる。

Or8Way

Screenshot from 2019-04-04 00-02-11.png

Mux4Way16

Screenshot from 2019-04-04 00-03-06.png

Mux8Way16

Screenshot from 2019-04-04 00-03-51.png

DMux4Way

Screenshot from 2019-04-04 00-04-50.png

DMux8Way

Screenshot from 2019-04-04 00-06-07.png

これで第一章は終わりです。


編集後記

第一章だけでもかなりボリュームがあった(自分にとって)ので、これから読み進めていくのが楽しみです。最終的に添付画像のオンパレードになってしまった。あとタグたくさんつけたのでいろいろな人からアドバイスしてもらえたらうれしいなあ(2度め)。あとemacs超初心者なんでおすすめのカスタマイズあったら教えてください。もっとタイピング早くなりたい。