ハードウェアシミュレーターのやり方

  1. LoadChipから選択

ファイル拡張子
Xxxという回路は、Xxx.hdlというファイルで定義される。

loadchipsの挙動
1. IF カレントディレクトリに、Xxx.hdlがカレントディレクトリに存在する→そのファイルを読み込む
else
2. builtinChipsディレクトリに存在する、Xxxx,hdlを読み込む

https://cloudii.jp/news/blog/%E9%96%8B%E7%99%BA/nand2tetris-01/

以下が、チュートリアルhttps://www.nand2tetris.org/_files/ugd/44046b_bfd91435260748439493a60a8044ade6.pdf

テストが書かれているgithub



テストの書き方がよくわからん。。とおもったら、付録のBに書いてあった。

output-listは、出力する変数とそのformat。
%Bは、バイナリ
左右の3は、padding
1は、文字数。

load Not.hdl,
output-file Not.out,
output-list a%B2.2.2 out%B3.1.3;
set a 0;
eval, output;
set a 1;
eval, output;

Not,And,OrはNandから作れる。
そうすると、多変数に対して出力を行うということは、Nandから作れることがわかる。

例えば、
a,b,c,out
0,0,0,1
0,0,1,0
0,1,0,0
1,0,0,1
….

のように会ったとき、1の行だけを抽出して、
Or(1がAndで成立するように、1がAndで成立するように…)としていけば、表せる。
具体的には、
Or(And(Not a, Not b, Not c), And(a, Not b, Not c), ….)のような形。
Andで示すと、多変数の組み合わせのうち1つだけが選ばれる。それを個数分Orで組み合わせるとできる。


この記事が気に入ったらサポートをしてみませんか?