ハードウェアシミュレーターのやり方
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で組み合わせるとできる。
この記事が気に入ったらサポートをしてみませんか?