第一回 4bit counter の設計と検証


1. 概要

この回では verilog-HDL シミュレータ vcs の使用方法を学ぶ。 例題として 4 bit up down counter を verilog-HDL を用いて記述し、 シミュレータ上で動作を確認する。

2. 準備

本年度は既にログインした段階で準備ができています。

2.1 verilog-mode の設定

本年度は既に emacs に組み込まれています。

2.2 vcs の起動

以下のリストを test_vcs.v として作成する。 なお、以下プロジェクト毎に新規ディレクトリを作成し、作業場所とせよ。

module test_vcs();
  initial begin
    $display("**************************");
    $display("****** Hello World! ******");
    $display("**************************");
    $finish;
  end
endmodule
次のようにコマンドラインから vcs を起動し、Hello world! と表示されれば、 vcs が使用可能になっている。
prompt> vcs -R test_vcs.v
vcs は最後にシミュレーションの結果をレポートしてくるので、 上記の"Hello World!"の表示は、最後から数行上に出ているので注意すること。

3. 4 bit counter の設計

新規ディレクトリを作成し、 まず、verilog-HDL 入門の4.1 節の 例を参考に count up のみを行うカウンタを記述する。 module 名は count4 とし、ファイル名を count4.v とせよ。

4. テスト用モジュールの記述

verilog-HDL 入門の10.1 節の例を 参考にテスト用モジュールを記述する。10.1 節のリスト23は別のモジュール 4 bit 加算器のためのものなので、自分で作った count4 モジュールに 合うように書き換える。 テスト用モジュールは test_count4 とし、ファイル名は test_count4.v とせよ。

5. vcs を用いた RTL シミュレーション

vcs を起動し上記二つのファイルを読み込んで、コンパイルを行い、 シミュレーションを行う。
prompt> vcs  test_count4.v count4.v
#これで simv というファイルが作成されるので、それを実行する。
prompt> ./simv

#あるいは -R オプションをつけて vcs を起動する事により、シミュレーションを自動的に行う。
prompt> vcs -R test_count4.v count4.v
正しく記述されていればシミュレーションが行われ、 結果が表示されるはずである。 counter の入力出力を全て表示し、想定した動作が行われているか確認する。

なお、-debug_pp オプションをつけてコンパイルすれば、 DVE というX-window上のGUI環境でシミュレーションや波形の表示ができる。

prompt> vcs -debug_acc+pp+dmptf -debug_region+cell+encrypt test_count4.v count4.v
prompt> ./simv -gui &
もしくは
prompt> vcs -debug_acc+pp+dmptf -debug_region+cell+encrypt -gui -R test_count4.v count4.v &

6. 4 bit up down counter への拡張

count4 モジュールを拡張し、count down 機能を設ける。 count up or down を制御する信号線を新設し、 この信号の状態によって count4 の動作が変わるように変更せよ。

7. 4 bit up down counter の検証

vcs を用いて、作成した 4 bit up down counter の検証を行う。 同様にテストモジュールを書き換え、検証を行う。

8. 発展