以下のコマンドを実行することにより動作確認ができる。なおtest.sv に一切変更を加えない場合はユーザが負けるようになっている。
iverilog -Wall -g2012 ./code/test.sv ./code/sanmoku.sv
./a.out一切変更を加えない場合のテキスト出力は以下のようになる。
state = 000000000000000000000001 isNotEnd = 1 userWins = 0
-------
| | | |
-------
| |o| |
-------
| | | |
-------
state = 000000000000000000000010 isNotEnd = 1 userWins = 0
-------
|o|x| |
-------
| |o| |
-------
| | | |
-------
state = 000000000000000000010000 isNotEnd = 0 userWins = 0
-------
|o|x|x|
-------
| |o| |
-------
| | |o|
-------
You Lose
自分の手を変更したい場合はtest.svを書き換えればよい。3行目あたりの以下の部分が変更箇所にあたる。
localparam FIRST = 1;
localparam SECOND = 2;
localparam THIRD = 4;
localparam FOURTH = 8;手動でやるのが面倒な場合create_test.cファイルが利用できる。
gcc -O3 -o create_test ./code/create_test.c
./create_test上記のコマンドを実行し表示される指示文に従えば、自分の手を任意に変更したテストベンチコードの作成に加え、オプションとしてIcarus Verilogによるシミュレーションの実行を自動で行うことができる。
また結果はuut.vcdに出力されるので、GTKWaveなどによってこのファイルを読み込むことで波形を確認できる。