/var/log/messages

Apr 4, 2015 - 1 minute read - Comments - programming

マルチビットバージョン (nand to tetris(5))

16 ビット並列なゲートも作れとのこと。繰り返しって使えるのかな、と思い for とか使ってみましたが、どうも実装されていないようで .hdl が読みこめませんでした。仕方が無いのでコピペでアレしましたが、これはなかなかに辛みのあるナニですな (何

とりあえずここまでの時点で作ってる部品は使って良いとのことなのでそのまんま使ってしまい multi-bit なソレは実装できました。

また、この HDL では変数の使いまわしはできないみたいなので Or8Way もちょっと工夫が必要らしい。

Mux4Way

これ、どうすりゃ良いのかな。以下なコメントがあるのですが

* out = a if sel == 00
        b if sel == 01
        c if sel == 10
        d if sel == 11

末端ビットからグループ絞って云々、なのか。これはムズい。これを応用すれば Mux8Way も手間ではありますができますね。

Multi-Way/Multi-Bit Demultiplexor

今度は出力先を、なのか。DMux 二度呼び出せば 4 つのうち 2 つは選択できますね。あとは sel[1] の値が 0 なら a か b で 1 なら c か d なのか。。。DMux みたいに一つづつ And 取れば良いのかな。