Xilinx社Vivado® とModelSimの連携 ~Vivado® Export機能を用いたModelSim/QuestaSimシミュレーション実行方法~

当ブログは、保守契約者様向け「ModelSimウェビナー ~ Vivado®との連携使用 解説編 ~」より一部抜粋してお伝えしております。
Xilinx社が提供するVivado® プロジェクトで作成された設計データやテストベンチは、Exportコマンドを用いてVivado® 環境外に出力することが可能です。
この機能を用いれば、Vivado® 環境外でModelSim/QuestaSimを使用してシミュレーションを実行することができます。
今回は、このExport機能を使ったModelSim/QuestaSimシミュレーション実行方法を説明します。
1.ModelSim/QuestaSimシミュレーション実行前の準備
Vivado® からExportコマンドで生成されたシミュレーション環境を実行するためには、事前にXilinx社ライブラリのコンパイルが必要です。Xilinx社ライブラリのコンパイルはツール新規インストール時、ツールバージョンアップ時に必要となります。コンパイル結果は他のプロジェクトで共有することが可能です。
<ご注意>
Vivado® は各バージョンで ModelSim/Questa の推奨バージョンがあります。ご利用の ModelSim/Questa のバージョンを確認し異なる場合は、シーメンスEDA社SupportCentor から推奨バージョンをダウンロードしインストールを行い実行ください。
また、Vivado® 2020.2以降ではGCCのパス指定が必要になりました。ModelSim/Questa共にGCCをインストールしていない場合、シーメンスEDA社 SupportCentor からGCCをダウンロードしインストールを行ってください。GCCはZIPアーカイブでの提供を行っており、インストールはModelSim/QuestaインストールフォルダでZIPファイルを展開するだけとなります。
Vivado® のProject MANAGER内のsettingsをクリックし表示されるダイアログからSimulationを選択。
- Target Simulator
- ModelSimまたはQuesta Advanced Simulator使用中のシミュレータを選択
- TSimulation top module name
- テストベンチトップのModule/Entity名を指定
- TCompiled library location
- ライブラリ出力先フォルダを指定します。デフォルトはプロジェクトディレクトリとなります。他のユーザや他のプロジェクトでライブラリを共有したい場合は適当な共有フォルダなどを指定
設定後、OKボタンでメニューを閉じます。
次にTools>Compile Simulation Libraries を選択し、表示されるメニューで設定を行います。
- Simulator
- ModelSimまたはQuestaを選択
- Language
- 言語を選択
- Library
- ライブラリの種類を選択
- Family
- FPGAのファミリ名を選択
上記設定で不明な場合はallを選択しすべての言語ですべてのライブラリ、ファミリをコンパイルします。
Advanced設定欄では以下の指定を行います。
- Compile Library Location
- コンパイルしたライブラリの保存先を指定
- Simulator executable path
- ModelSim・Questaのインストールパス>/win64pe(Windows版)または /<インストールパス>/bin(Linux版)を指定します。
- GCC execulable path
- <ModelSim・Questaのインストールパス>/gcc-4.5.0-mingw64vc12(windows版)または /<インストールパス>/gcc-4.7.4-linux(Linux版)などを指定
Compileボタンでコンパイルを実行し、終了したらTCL Consoleでエラーの有無を確認します。
コンパイルエラーが発生ケースで最も多いのはVivado® の各バージョンで推奨されるModelSim/Questaのバージョンが一致していないことです。
コンパイル前に必ずVivado® の推奨するModelSim/Questaのバージョンを確認してください。
2.Vivado® からシミュレーション環境をExport
Vivado® GUIから File>Export>Export Simulation を選択し設定を行います。
この機能でVivado® GUI環境の外でModelSim/QuestaSimを単体実行させることが可能です。
表示されるメニューでExport Simulationの設定を行います。
- Target Simulator
- ModelSimまたはQuesta Advanced Simulatorを選択
- Compile Library Location
- シミュレーション実行前の準備でコンパイルした
ライブラリのパスを指定 - Export directory
- シミュレーション環境を生成するフォルダを指定
Advanced Options は必要な場合に設定ください。
- Use absolute paths
- クリックを入れる事でファイルパスを絶対パスで生成
- Copy source files to export directory
- Vivado® プロジェクト環境からHDLをExport directoryで指定されたフォルダへコピー
設定後、OKボタンで Export Simulation を実行します。
結果は /<Export directory>/modelsim または /<Export directory>/questa に生成されます。
3.Exportで生成されたスクリプト実行
Export directory で指定されたフォルダに以下のファイルが生成されます。
- compile.do
- vcom/vlogコマンドでHDLをコンパイルするスクリプト
- simulate.do
- vsimコマンドでシミュレータを起動するスクリプト
- wave.do
- シミュレーショントップの信号を波形登録するスクリプト
<design-top-name>.sh: ライブラリコンパイルフォルダから modelsim.ini をコピーし上記3つの.doファイルを実行するシェルスクリプト
Windows環境では <design-top-name>.sh は実行できないファイルとなります。そのため以下の手順でシミュレーションを実行ください。
① modelsim.iniのコピー
Export simulationで指定した /<export directory>/modelsim または /<export directory>/questa へ移動
シミュレーション実行前の準備でコンパイルしたライブラリパスに存在する modelsim.ini をカレントフォルダへコピー
cd /<export simulationのExport directory>/modelsim
cp <Vivado-project-dir>/<project-name>.cashe/compile_simlib/modelsim/modelsim.ini .
(パス名はライブラリコンパイル時の指定により異なりますのでご注意ください)
②コンパイルの実行
mdコマンドでコンパイル用フォルダを作成し、compile.doでコンパイルを実行します。
md modelsim_lib (QuestaSimを使用の場合は md questa_lib )
必ず上記の名称で作成ください。(エクスプローラでフォルダ作成しても良い)
バッチ実行の場合:
vsim -c -do compile.do
GUI実行の場合:
ModelSimアイコンダブルクリック
change directoryで /<export simulationの/<Export directory>/modelsim に移動
Transcriptウインドから do compile.do を実行
③シミュレーション実行
simulate.do を用いてシミュレーションを実行します。GUIでシミュレーションを実行する場合、simulate.doの最初と最後のコマンドをコメントアウトします。
- onbreak {quit -f}
- simulate.do 最初の行
- quit -force
- simulate.do 最後の行
simulate.do の修正例:
修正を行った後にシミュレーションを実行します。
バッチ実行の場合:
vsim -c -do simulate.do
GUI実行の場合:
Transcriptウインドから do simulate.do を実行
シミュレーション実行後、波形確認が行えます。
バッチ実行時は vsim vsim.wlf -do wave.do でGUIを起動します。
このようにVivado® のExportコマンドを用いてシミュレーション環境を外部に生成しModelSim/QuestaSim単体でシミュレーションが可能になります。
4.おわりに
今回はModelSimをバッチコマンドで、HDLソースコードのコンパイル、シミュレーション、デバッグに至る使い方について説明しました。
その他、ModelSimを主にGUIを使いHDLソースコードのコンパイル、シミュレーション、波形確認に至る使い方について説明しているブログもございますので、こちらもご覧ください。
ModelSim/Questa エディション比較表はこちらをご覧ください。
ModelSim/Questa エディション比較表
当社では設計と検証に関する技術や市場動向の情報を紹介する「Design & Verification LANDSCAPE」という技術ニュースレターを年に3-4回刊行しています。
ご希望の方はニュースレターお申込フォームよりご登録ください。