コンピュータシステムの理論と実践

コンピュータシステムの理論と実践


2章、ALUのところ、 out < 0 みたいな概念登場していないと思うけれども何を表しているんだろう……(この時点ではまだただのbit列じゃないのか?)。
よく読んだら既に「符号付き2進数」の定義されてた(読み飛してた)。
alu.hdl
Copied!
// if (f == 1) set out = x + y // integer 2's complement addition
// if (f == 0) set out = x & y // bitwise and
ここが1と0逆に書かれてるのにハマってた(書いてある順序のままmuxしたら逆な罠)。
本プロジェクトで読者が実装するHDLプログラムは、先のプロジェクトで構築した回路を内部的に用いることだろう。その場合、自分で実装した回路を用いる代わりに、ビルトイン版の回路の使用を推奨する。ビルトイン版回路を用いれば、その回路の動作は正しいことが保証でき、さらにハードウェアシミュレータの実行速度を最適化できる。これを行うのは簡単である。あなたのプロジェクトのディレクトリに、そのプロジェクトで取り組んでいる.hdlファイルだけを含むようにすればよい
最後にintegration testしたい。

3章
out
Copied!
nana@hikaru:~/codes/nand2tetris/projects/integration (main) $ time HardwareSimulator RAM512.tst
End of script - Comparison ended successfully

real 0m2.033s
user 0m3.152s
sys 0m0.542s
nana@hikaru:~/codes/nand2tetris/projects/integration (main) $ time HardwareSimulator RAM4K.tst
End of script - Comparison ended successfully

real 0m13.878s
user 0m17.681s
sys 0m1.409s
nana@hikaru:~/codes/nand2tetris/projects/integration (main) $ time HardwareSimulator RAM16K.tst
End of script - Comparison ended successfully

real 0m56.803s
user 1m8.451s
sys 0m3.161s

Powered by Helpfeel