🐷

「コンピュータシステムの理論と実装」 ハードウェアシミュレーターの操作方法

2021/06/05に公開

記事を書いた動機

コンピュータシステムの理論と実装の一章の課題をクリアするためには著者が用意したハードウェアシミュレーターを用いる必要がある。ネットで公開されているこのシミュレーターの操作方法[1][2]は全て英語で書かれていたため、日本語で操作方法を記しておけば後からこの本を始める人の役に立つのではと思い記事を書くことにした。

ファイルを開く

これはハードウェアシュミレータを開いた時の初期画面である。

左上のLoad Clipのボタンを押し、hdlファイルを選択するとファイルが開かれる。
今回は配布されているDownload the Nand2tetris Software Suite[3]のnand2tetris/projects/demo/Xor.hdlを開いて説明する。

ファイルが開かれた後

  • input pins
    入力ピンの名前と現在の値
  • Output pins
    出力ピンの名前と現在の値
  • HDL
    開かれたhdlファイルの中身
  • internal pins
    内部ピンの名前と現在値

    HDLでPARTS:以下に書かれている下位レベルのパーツをクリックするとPart pinsに選択したパーツの入出力ピンの名前と現在の値が出力される。

入力ピンの値を変えたい場合


input pinsのvalueを変更してevalボタンを押すと、変更された入力ピンのvalueに応じて出力ピンと内部ピンの値が変わる。

テストを行う場合

Load Scriptボタンを押してtstファイルを選択すると画面上にtstファイルのスクリプトが表示される。

右矢印の青ボタンを押すとテストが実行される。テストを実行する上で使うボタンとその役割は書籍B.2.1の図B-1に書いてある。又、tstファイルのスクリプトの構文についてはB.2.3に書かれている。

上の写真で開かれている/nand2tetris/projects/demo/Xor.tstではシミュレーションステップごとに出力結果がXor.outファイルに出力され、Xor.outファイルの値が、想定されるのXorの結果が記述されているXor.cmpと異なる場合にはエラーが出力されるように書かれている。viewをScriptからOutputに切り替えると出力結果が記録されたXor.outファイルが表示される。

デバッグツールを使う場合


Open breakpoints panelボタンを押すとブレイクポイントが設定できる画面が表示される。

ブレイクポイントに設定できるものは下記の三種類。

  • 時間
    スクリプトの実行が開始されてから経過した時間単位 (クロック サイクル)の数
  • ピン
    入力ピン、出力ピン、内部ピン名とその値
  • GUIで拡張された組み込みチップの状態に格納されている値

下の写真のように、スクリプトの実行中にブレイクポイントで指定した変数と値に達した時点でスクリプトは一時停止する。

脚注
  1. https://www.nand2tetris.org/software#comp-j92z7kvo ↩︎

  2. https://b1391bd6-da3d-477d-8c01-38cdf774495a.filesusr.com/ugd/44046b_bfd91435260748439493a60a8044ade6.pdf ↩︎

  3. https://www.nand2tetris.org/software#comp-j92z7kwk ↩︎

Discussion