最終更新: 2023-04-11
【こちらの別記事】に、サイクルベース シミュレータ Verilator と共に、Windows 10 の WSL 上 Ubuntu-20.04 でのインストール手順と、Icarus Verilog と Verilator のどちらもに利用可能なテストベンチと、簡単なサンプル回路の Verilog HDL 記述例を示した実行手順を記載しています。合わせて御覧ください。
また、【こちらの別記事】では、無償で利用可能な ARM Cortex-M0 CPU コア単体を Incarus Verilog で動かすテストベンチの Verilog HDL 記述を紹介し、GTKwave で波形を閲覧可能な VCD ダンプも出力しています。
目次:
Verilog HDL とは:
Verilog HDL はハードウェア記述言語で、論理回路の動作を記述する言語の1つです。論理合成で回路を自動生成する前に、HDL (Hardware Description Language) でシミュレーションを行って動作を検証します。元々は Cadence 社の Verilog-XL という CAD ツール用に開発されたものですが、その後 IEEE 1364 として標準化が行われ、現在に至っています。
IEEE 1364 の2005年版の仕様書 PDF は、こちらのバックネル大学の方のサイトの直接リンクより、こっそりとダウンロード可能だったりします。 (大学なので、大きな負荷を掛けるのはやめましょう)
HDL として有名な物には他に VHDL が有ります。VHDL は装置製造業界において、Verilog HDL は主に半導体業界において、シェアが高いと言われています。とは言え HDL の一番のユーザーは半導体関係者ですから、Verilog HDL が優位な立場にあります。
【広告】
無償の HDL シミュレータ、Icarus Verilog:
さて、無償の Verilog HDL シミュレータは幾つか有るのですが、Icarus Verilog という物が有名です。次のサイトが本家の説明書です。ソースコードからビルドする前提で記載されていますが、後述の通り Windows 用のバイナリが別サイトに有ります。
Icarus Verilog は、Verilog-XL のインタープリタ型とは違い、コンパイル型のシミュレータです。HDL ソースコードからコンパイル済のオブジェクトを実行する事によりシミュレーションが動作します。イメージとしては、コンパイル済の C 言語のバイナリを実行するのと同様です。従って、高速ですが、インタラクティブな操作は出来ません。
コンパイル型の Verilog HDL シミュレータには、Cadence 社の Incisive (旧 NC-Verilog)、Synopsys 社の VCS、Mentor Graphics 社の ModelSim といった大手 CAD ベンダーの商品も有りますが、非常に高価です。唯一個人で入手可能なのは、Mentor Graphics 社製 ModelSim の FPGA 専用パッケージ辺りです。
Icarus Verilog は、元々は Linux 用に開発されています。
尚、無償の Verilog シミュレータは Icarus Verilog 以外にも有り、ubuntu Linux では Icarus Verilog (iverilog) の他に Verilator と言う サイクルベース専用の Verilog HDL シミュレータが標準レポジトリからインストール可能です。MinGW-w64 用の Verilator 標準パッケージも有る様です。
Windows 用の Icarus Verilog:
さて、ここから本題ですが、無償の Verilog HDL シミュレーター Icarus Verilog は Windows においても、MinGW を使用して移植が行われています。
Windows 用の Icarus Verilog のバイナリは、こちらのサイトからダウンロード可能です。インストールすると、かなり本格的な HDL シミュレーションが行えます。
また、本家とは別に次のサイトで MinGW を使った Windows への移植方法が公開されています。
MinGW-w64 用の標準レポジトリにも、Incarus Verilog は公開されています。
Package: mingw-w64-x86_64-iverilog - MSYS2 Packages
尚、最新の Icarus Verilog は Version 1.2 ですが、安定版 Version 1.1 のソースコードが、こちらの本家の github サイト に公開されており、ビルドして移植する為の詳細な手順まで記載されています。
無償の波形ビューワー、GTKwave:
論理回路のシミュレーションをした後は、動作波形を見たくなるものです。Icarus Verilog は波形ファイルとして標準の VCD (Value Change Dump) ファイルを出力できます。
VCD ファイル用のビューワーで無償のものの内、有名な物としては GTKwave が有ります。次のサイトが本家になります。
次の SourceForge のサイトから、Windows ネイティブ で動くバイナリをダウンロード可能です。32ビット Windows 用も64ビット Windows 用も有ります。大きな VCD ファイルを開くならば、64ビット用を使った方が良いでしょう。
【論理回路設計の目次へ戻る】 【MinGW 関係の目次へ戻る】