目的:
Verilator をインストールする。
Verilator について:
Verilator は Verilog, SystemVerilog のシミュレータ である。
Verilator は 論理回路(論理合成可能なVerilogの記述) を C++ や SystemC 等にコンパイルし、シミュレーションを実行する。
シミュレーション用の記述は C++ や SystemC で 記述する。
また Lint チェックを行うことができる。
今回、Lint チェック を試すために インストールを行う。
(文法チェック/記述チェック で使用できるか 確認。)
インストール手順:
参考URL : VERIPOOL ホームページ
apt で インストールできるようであるが、バージョンが少し古い為、ソースからビルドを行う事とした。
-
Verilator をビルドするために必要なパッケージを インストールする。
$sudo apt-get install git perl python3 make autoconf g++ flex bison ccache
$sudo apt-get install libgoogle-perftools-dev numactl perl-doc
$sudo apt-get install libfl2
$sudo apt-get install libfl-dev
$sudo apt-get install zlibc zlib1g zlib1g-dev
-
適当なディレクトリに移動し、git リポジトリからソースを取得する。
$git clone https://github.com/verilator/verilator
-
veerilator ディレクトリに移動する
$cd verilator
-
以下の様に 環境変数を設定しておく。(SYSTEMC インストール済みの場合。設定値は一例。 ~/.bashrc に追加し、source する )
export SYSTEMC=/usr/local/systemc/2.3.3
export SYSTEMC_INCLUDE=$SYSTEMC/include
export SYSTEMC_LIBDIR=$SYSTEMC/lib-linux64
export SYSTEMC_ARCH=linux64
-
構成スクリプトを作成する。
$autoconf
-
設定を行う。
$./configure
-
make 実行
$make -j2
-
念のため、チェック実行
$make test
-
インストール 実行
$sudo make install
動作確認 (Lint チェック):
Lint チェックを実行して見る。
Lintチェックは、
$verilator --lint-only -Wall [RTL ファイル名]
で実行できる。使用オプションは以下の通り。
--lint-only Lint, but do not make output
-Wall Enable all style warnings
-Wall Enable all style warnings
always 文 (FF) で
data_1 <= #1 data ;
のように 遅延時間を指定していると
%Error-NEEDTIMINGOPT: test.v:64:25: Use --timing or --no-timing to specify how timing controls should be handled
の様なエラーが報告される。メッセージにあるように
verilator --lint-only -Wall --timing [RTL ファイル名]
とすると このエラー が報告されなくなる。--no-timing を付けると、Warning 報告となる。
--timing Enable timing support
--no-timing Disable timing support
--no-timing Disable timing support
Lint チェックを実行して見た結果、処理は早く、rtl 記述後にまずは verilator で Lint チェックでデバッグ(記述チェック)するのが良いように思える。
但し、bit幅の不整合などで、実質問題ない記述でもWarning が出る為、煩わしく感じるかもしれない。
とはいえ、問題のある記述の場合もある為、ちゃんと 全数確認する必要がある。
0 件のコメント:
コメントを投稿