Mac 環境では、Homebrew を使って環境をインストールします。
brew install go dep
git clone https://github.com/kawasin73/computer-architecture-3s.git && cd computer-architecture-3s
dep ensure
go run main.go sample.asm > sample.bin
macOS では、Quartus・ModelSim を macOS で使う環境構築 に基づいて環境を構築します。
git clone https://github.com/kawasin73/computer-architecture-3s.git && cd computer-architecture-3s
# download Quartus-lite-18.0.0.614-linux.tar from http://dl.altera.com/?edition=lite
vagrant up
vagrant reload
vagrant scp Quartus-lite-18.0.0.614-linux.tar :/home/vagrant/
vagrant ssh
# login VM with ssh
$ tar -xvf Quartus-lite-18.0.0.614-linux.tar
$ ./setup.sh
$ exit
VM を起動するためには、ホストOSのターミナルで以下のvagrantコマンドを使います。
vagrant up
GUIが現れるため、GUIからログインします。パスワードは、vagrant
です。
VM内のGUIでターミナルを起動します。
Quartus
と ModelSim
の起動は以下のコマンドを VM内のターミナルで実行して行います。
# Quartus の起動
$HOME/intelFPGA_lite/18.0/quartus/bin/quartus
# ModelSim の起動
$HOME/intelFPGA_lite/18.0/modelsim_ase/linuxaloem/vsim
以下のコマンドをホストOSのターミナルから実行することで VM を停止できます。
vagrant halt
- テストコードをアセンブル
go run main.go computer/test.asm > computer/test.bnr
- ModelSimで全てのVerilogコードをコンパイル
- ModelSimでシミュレーションの実行 + 出力
vsim work.test_computer run 6000 mem save -o sample.mem -f mti -data symbolic -addr hex /test_computer/computer_body/rf_body/rf mem save -o data0.mem -f mti -data symbolic -addr hex /test_computer/computer_body/execute_body/data_mem_body0/d_mem mem save -o data1.mem -f mti -data symbolic -addr hex /test_computer/computer_body/execute_body/data_mem_body1/d_mem mem save -o data2.mem -f mti -data symbolic -addr hex /test_computer/computer_body/execute_body/data_mem_body2/d_mem mem save -o data3.mem -f mti -data symbolic -addr hex /test_computer/computer_body/execute_body/data_mem_body3/d_mem
- 出力を検証する
diff computer/test.mem computer/sample.mem diff computer/test0.mem computer/data0.mem diff computer/test1.mem computer/data1.mem diff computer/test2.mem computer/data2.mem diff computer/test3.mem computer/data3.mem
- 差分がなかった場合はテスト完了