自宅でVerilogシミュレーションをしてみたい方



本実験において使用しているVerilog HDLのシミュレータと波形ビューアは CADENCE社製 Verilog-XL および Simvision で、東京大学大規模集積システム設 計教育研究センター(VDEC)との契約によるライセンスで使用しています。そのた め、自宅では使用することができません。
しかし、もし自宅で Linux を使用しているのでしたら、Linux上で動作する Verilog コンパイラ(Icarus Verilog Compiler)と波形ビューア(gtkwave)で 実験を進めることが可能です。
Icarus Verilog Compiler と gtkwave は Linux が ubuntu 9.10以降では synaptic や apt を用いてインストールできることを確認しています。 その他の Linux でも rpm パッケージを持ってきてインストールすればOK です。
  1. Verilog HDL コンパイラ (Icarus Verilog Compiler)

    学生実験で用いている Verilog-XL シミュレータはインタープリタですが、 Icarus Verilog Compilerは名前のとおりコンパイラです。そのため、 Verilog HDLのソースから実行形式のコマンドを生成し、その実行コマンド 実行することでシミュレーションを行います。
    波形ビューア(gtkwave)は VCD (Value Change Dump) 形式のファイルを波形として 表示するので、VCDファイルを出力できるようにテストベンチの書き換えが必要 です。
    以下のように、テストベンチの波形出力制御を変更します。
    initial
    begin
    //  $shm_open("waves.shm");  // Verilog-XL の場合
    //  $shm_probe("as");        // Verilog-XL の場合
        $dumpfile("vcdファイル名.vcd");
        $dumpvars(0, トップモジュールのインスタンス名 );
    end
    

    このように、$shm_open, $shm_probe の代わりに、$dumpfile, $dumpvars を使 用します。
    コンパイルは、以下のように実行します。これにより、a.out が作成されます。 "-o 実行ファイル名" オプションを使用すれば、"実行ファイル名" として、実 行ファイルが作成されます。
    $ iverilog file1.v file2.v ... file_n.v  ← ファイルを並べる場合
    $ iverilog -cfilelist                    ← filelist にファイルを記述している場合
    
    実行は、
    $ ./a.out
    
    です。これで、"トップモジュール名.vcd" ファイルが作成されます。

  2. 波形ビューア (gtkwave)

    以下のコマンドで実行します。
    $ gtkwave トップモジュール名.vcd
    
    ウィンドウの左上のSSTの所から表示したい階層を選択し、左下の信号名 一覧から表示したい信号を選択します。左最下の"Append"ボタンを押すと 選択した信号の波形が右のエリアに表示されます。

    なお、VCD形式のファイルはテキストベースのため、ちょっとしたシミュレー ションでも大きさが巨大になります。実験終了後はファイルを消去するの を忘れないでください。