Ryusai's Homepage
トップページ > LinuxでEDA > Icarus Verilog

Icarus Verilog

Icarus Verilog は Verilog の文法を解釈しコンパイル、シミュレーションおよび合成するフリーなソフトウェアです。Icarus Verilogの2005年12月4日現在の最新バージョンは0.8.1(安定版)、20051127(開発版)です。このプロジェクトは比較的頻繁にバージョンアップされていおり、またさまざまなプラグインもサードパーティーで開発が進められています。

Icarus Verilogのインストール

インストールは Fedora Core 4 にしています。Red Hat 系のバイナリパッケージ verilog-0.8-1.i386.rpm をホームページの FTP サーバからダウンロードし root 権限で rpm コマンドを実行します(実行例 1)。
実行例 1
# rpm -ivh verilog-0.8-1.i386.rpm

Verilog のコンパイル、シミュレーション

Verilogソースのコンパイル はコマンドラインから iverilog -o <出力ファイル名> <Verilog ファイル名 1> <Verilog ファイル名 2> …<Verilog ファイル名 n> と入力することで行います。

オプションの -o <出力ファイル名> を指定しない場合は a.out ファイルが出力されます。
シミュレーションは vvp <出力ファイル名>で実行することができます。

Verilog mode for Emacs の説明で作成したサンプルソースを使ってコンパイル、シミュレーションをします。サンプルソースは tb.vtop.vdecoder.v および state_machine.v から構成されます。尚、これらのコードはあくまで説明用に書いたもので回路の動作は意味の無いものであり、検証もされていません。
実行例 2
$ iverilog -o hoge tb.v top.v state_machine.v decoder.v
$ vvp hoge
VCD info: dumpfile test.vcd opened for output.
*** Write Transaction Start ***
*** Write Transaction End ***
*** Read Transaction Start ***
*** Read Transaction End ***
*** Write Transaction Start ***
Timeout Error
Simulation Stopped!
シミュレーション結果は、視覚的に(タイミングチャートとして)も確認したいものです。 Icarus Verilogではそのために VCD ファイルを出力させることができます。サンプルコードのテストベンチモジュール tb.v で
   initial begin
      $dumpfile("test.vcd");
      $dumpvars(0,test.TOP);
   end
の部分でファイル名を test.vcd とし、また TOP モジュール以下の全ての信号を観測するように指定しています。この test.vcd を GTKWave 等の波形表示ツールに読み込ませて視覚的に確認することができます。




サイトマップこのサイトについてお問い合わせ |
Copyright (C) 2006-2008 Ryusai's Homepage All rights reserved