| |
| |
| |
| |
|
Verilator は、GCC または Synopsys の VCS と同様のパラメーターを使用して呼び出されます。指定された Verilog または SystemVerilog コードを読み取り、lint チェックを実行し、オプションでアサーション チェックとカバレッジ分析ポイントを挿入することによって、そのコードを「検証」します。シングルまたはマルチスレッドの .cpp および .h ファイル、「検証済み」コードを出力します。
これらの Verilated C++/SystemC ファイルは、C++ コンパイラ (gcc/clang/MSVC++) によってコンパイルされ、オプションでユーザー独自の C++/SystemC ラッパー ファイルとともにコンパイルされ、Verilated モデルがインスタンス化されます。結果の実行可能ファイルを実行すると、設計シミュレーションが実行されます。 Verilator は、Verilated で生成されたライブラリ (オプションで暗号化されたもの) を他のシミュレーターにリンクすることもサポートします。
クローズドソースの Verilog シミュレータのフル機能の代替品を期待している場合、SDF アノテーション、ミックスシグナル シミュレーションが必要な場合、または簡単な授業プロジェクトを行っている場合 (授業には Icarus Verilog をお勧めします)、Verilator は最良の選択ではない可能性があります。ただし、SystemVerilog を C++/SystemC に移行する方法を探している場合、またはデザインの高速シミュレーションが必要な場合は、Verilator が最適なツールです。
Verilator は、Verilog HDL を C++ または SystemC に直接変換しません。むしろ、Verilator はコードを、より高速に最適化され、オプションでスレッド分割されたモデルにコンパイルし、C++/SystemC モジュール内にラップします。その結果、コンパイルされた Verilog モデルは、シングル スレッド上でもスタンドアロン SystemC よりも 10 倍以上高速に実行され、シングル スレッド上では、Icarus Verilog などの解釈された Verilog シミュレータよりも約 100 倍高速に実行されます。マルチスレッド化によりさらに 2 ~ 10 倍の高速化が得られる可能性があります (解釈されたシミュレータと比べて合計 200 ~ 1000 倍の速度が得られます)。
通常、Verilator は、クローズドソースの Verilog シミュレータ (Aldec Riviera-Pro、Cadence Incisive/NC-Verilog、Mentor ModelSim/Questa、Synopsys VCS、VTOC、および Pragmatic CVer/CVC など) と同等またはそれ以上のパフォーマンスを発揮します。ただし、Verilator はオープンソースであるため、ライセンスではなくコンピューティングに費やすことができます。したがって、Verilator は最適なシミュレーション サイクル/ドルを提供します。
詳細については:
Verilator は、Linux Foundation のもとで CHIPS Alliance が主導するコミュニティ プロジェクトです。
いかなる形であれ、皆様の貢献に感謝し、歓迎いたします。 「Verilator への貢献」を参照してください。貢献者とスポンサーに感謝します。
Verilator は、商用サポート モデルおよび組織もサポートおよび奨励します。 Verilator 商用サポートを参照してください。
Verilator の著作権は 2003-2024 年に Wilson Snyder に帰属します。 (バグを Verilator Issues に報告してください。)
Verilator はフリー ソフトウェアです。 GNU Lesser General Public License バージョン 3 または Perl Artistic License バージョン 2.0 の条件に基づいて、再配布したり変更したりすることができます。詳細については、ドキュメントを参照してください。