1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. Xilinx社Vivado® とModelSimの連携 ~Vivado® Export機能を用いたModelSim/QuestaSimシミュレーション実行方法~

TECHブログ

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

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

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 エディション比較表はこちらをご覧ください。