条件を指定して絞り込む

現在1131件がヒットしています。check

記事カテゴリ
製品カテゴリ
メーカー

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

こんにちは。

マクニカで インテル® FPGA 製品の技術サポートをしている インテル・F・ハナコ です。

 

インテル FPGA 向けの IP を含むデザインを EDA シミュレーターを用いて RTL レベルのファンクション・シミュレーションする場合は、Quartus® Prime の NativeLink シミュレーション によるフローをお勧めしていますが、Quartus Prime Pro Edition では NativeLink シミュレーションがサポートされていません。

表1. Quartus Prime における NativeLink シミュレーションのサポート状況
Quartus Prime Pro Edition

×

Quartus Prime Standard Edition

Quartus Prime Lite Edition

デザインに IP が含まれている場合、インテル FPGA 用のシミュレーション・モデル (ライブラリ) の他にIP 用のシミュレーション・モデル (ライブラリ) のセットアップが必要なため、一筋縄では実行できません。

そこで!

ここでは、Quartus Prime Pro Edition ユーザー向けに、IP を含むデザインを RTL レベルのファンクション・シミュレーションを実行する方法をご紹介します。

 

今回は、ModelSim* - Intel® FPGA Edition (以下、ModelSim - IFE。Starter Edition を含む) および ModelSim、Questa をシミュレーション・ツールに用いてご紹介します。

 

その他の EDA シミュレーターについては、下記ドキュメントをご覧ください。

Intel Quartus Prime Pro Edition User Guide: Third-party Simulation

対象のソフトウェア環境

対応する Quartus Prime Quartus Prime Pro Edition
シミュレーション・ツール(注1)

ModelSim - Intel FPGA Edition (Starter Edition を含む) (※2)

または ModelSim または Questa

※1: 各 EDA ツールの対応バージョンは、ご利用になるバージョンの Quartus Prime のリリースノートをご確認ください。

※2: Pro Edition 対応のものをご利用ください。

IP のシミュレーション・モデルを生成

IP を RTL レベル・シミュレーションするためには、IP 用のシミュレーション・モデルを生成しておく必要があります。

IP Catalog または Platform Designer で IP を作成する際に、Generate HDL 実行時にポップアップされる Generation ダイアログボックスにおいて、”Create simulation model オプション“ で言語を指定します。

その後 Generate (または Generate HDL) ボタンをクリックすると、その IP 用にシミュレーション・ツール向けのファンクション・モデルが生成されます。

作業フロー

以下は、Quartus Prime Pro Edition で生成した IPを含むデザインを ModelSim – IFE (ModelSim、Questa) で RTL レベル・シミュレーションする作業の流れです。

なお、Quartus Prime プロジェクトは作成済みであり、デザインも完成していることが前提です。

 

1. デザインをプロジェクトに登録

2. IP のシミュレーション用スクリプトを生成

3. シミュレーションのセットアップ・スクリプトを作成

4. シミュレーション実行

1. デザインをプロジェクトに登録

Quartus Prime プロジェクトに、Quartus Prime がコンパイル時に必要なデザイン・ファイルを登録します。

IP デザインは、*.ip ファイルを登録します。

 

Project メニュー > Add/Remove Files in Project

2. IP のシミュレーション用スクリプトを生成

以下のメニューから、プロジェクトに登録されたすべての IP 向けのシミュレーション用スクリプトを生成します。


Tool メニュー > Generate Simulator Setup Script for IP

プロジェクト・フォルダのパスがデフォルトで表示されます。

 

ファイル管理のために、スクリプト・ファイルは別フォルダを用意し そこへ生成させることをおススメします。

(上図は、プロジェクト・フォルダ my_first_fpga_c10gx 内に sim_script フォルダを作成し、ここへ生成しています。)

3. シミュレーションのセットアップ・スクリプトを作成

① ステップ2で生成したフォルダ内の mentor フォルダにある msim_setup.tcl を開きます。

 # # TOP-LEVEL TEMPLATE - BEGIN

 から

 # # TOP-LEVEL TEMPLATE – END

 までの行をすべてコピーし、新規テキスト・ファイルにペーストします。

 その後、*.tcl として保存します。

 

② 各行の最初の2文字(#とスペース)を削除します。

 

③ 各スクリプトを、フォルダ環境に合わせて編集します。

 コマンドを上から解説します。

 

 set QSYS_SIMDIR <script generation output directory>

 Quartus Prime が生成した IP のシミュレーション用スクリプトのフォルダ・パス(絶対パスまたは相対パス)を指定します。

 例)  set QSYS_SIMDIR ../sim_script

ハナコ’s ポイント♪①

相対パスで設定する場合、基準フォルダは ModelSim の作業フォルダ(つまり Change Directory で指定したフォルダ)です。

 

 

 source $QSYS_SIMDIR/mentor/msim_setup.tcl

 IP のシミュレーション用スクリプトを読み込ませます。

 編集の必要はありません。

 

 

 set USER_DEFINED_COMPILE_OPTIONS <compilation options>

 set USER_DEFINED_VHDL_COMPILE_OPTIONS <compilation options for VHDL>

 set USER_DEFINED_VERILOG_COMPILE_OPTIONS <compilation options for Verilog>

 必要に応じてコンパイル・オプションを設定します。

 ここでは使用しないため、行の先頭に # を入力し、コメントアウトします。

 

 

 dev_com

 インテル FPGA 用のシミュレーション・モデルをコンパイルします。

 編集の必要はありません。

 また、ModelSim - Intel FPGA Edition ユーザーは不要な実行コマンドですが、ModelSim - Intel FPGA Edition であることが自動判別され、

 実行されませんので、コメントアウトの必要はありません。

 

 

 com

 IP のシミュレーション・モデルをコンパイルします。

 編集の必要はありません。

 

 

 vlog <compilation options> <design and testbench files>

 コマンドを追加して、IP デザイン以外のすべてのユーザー・デザイン・ファイルとテストベンチ・ファイルをコンパイルします。

 vlog コマンドは Verilog HDL ソースのコンパイル・コマンドなので、VHDL ユーザーは vcom に編集します。

 例) vcom <compilation options> <design and testbench files>

 

 <compilation options> : 必要に応じてコンパイル時にオプションが設定できます。

  例えば、以下のように

  言語のバージョンや、コンパイル結果を格納するフォルダおよびライブラリ名を指定できます。

  vcom -93 -work work ../simple_counter.vhd

  vlog -vlog01compat -work work ../simple_counter.v

  オプションの詳細は、各ツールの Command Reference Manual の Commands のチャプターにおいて、

  vlog または vcom をご覧ください。

  

  <design and testbench files>: コンパイルするファイルのパス(絶対パスまたは相対パス)を指定します。

 

ハナコのつぶやき ①

Command Reference Manual は、ModelSim および Questa のインストール・フォルダに保存されています。

    \\<tool_install_dir>\docs\pdfdocs\<tool_name>_ref.pdf

 

 

 

 set TOP_LEVEL_NAME <simulation top>

 最上位のテストベンチ・モジュール/エンティティ名を設定します。

 このコマンドは、最上位をエラボレートするために elab コマンドで使用されます。

 例) set TOP_LEVEL_NAME top_sim

 

 

 set USER_DEFINED_ELAB_OPTIONS <elaboration options>

 必要に応じてエラボレーション・オプションを設定します。

 ここでは使用しないため、行の先頭に # を入力し、コメントアウトします。

 

 

 elab

 vsim コマンドが実行されます。

 VHDL ユーザーは、elab コマンドの後に -t により Resolution を指定することができます。

 例) elab -t 1ps

 Resolution 何も指定しない場合は fs で処理されます。

 Verilog HDL ユーザーは、テストベンチに記載した Resolution に依存します。

ハナコ’s ポイント♪②

シミュレーション結果を残すため、run コマンドの前に add wave コマンドを追記します。

   テストベンチ上のすべてのポートを登録する場合は、* (アスタリスク)で OK!

   例) add wave *

 

 

 run -a

 シミュレーションを実行します。

 -a は -all と同等です。テストベンチで指定した時間を実行します。

 もし時間指定をする場合は、run コマンドの後に スペースと時間および単位 を指定します。

 例) run 500ms

 

 

 exit -code 0

 今回は GUI で操作しているため必要ありません。行の先頭に # を入力し、コメントアウトします。

 

 

編集後、tcl ファイルを保存します。

4. シミュレーションを実行

① ModelSim を起動します。

 

② File メニュー > Change Directory により、シミュレーション用の作業フォルダを指定します。

 

③ Tools メニュー > Tcl > Execute Macro を選択し、ステップ3 で作成した tcl ファイルをダブルクリックで選択します。

 

④ スクリプトの内容が実行され、Wave ウィンドウにシミュレーション結果が波形として表示されます。

ハナコのつぶやき ②

シミュレーション実行後にデザイン(テストベンチや IPを含む)が変更されたら、ソースコードを再コンパイルし、シミュレーションを再実行する必要があります。

その際、GUI オペレーションではなく、ステップ 3 で編集したスクリプト・ファイルを再利用する場合は、dev_com コマンドを再実行する必要がありません。行の先頭に # を入力し、コメントアウトができます。

また、編集したファイル以外のコンパイル・コマンド(vcom や vsim)も不要になるので、該当する行をコメントアウトすることが可能です。

その後、tcl ファイルを再実行してください。

これにより、重複作業がなくなり、わずかですが作業工数を軽減することができますよ。

 

 

 

以上を参考に、Pro Edition でも簡単にファンクション・シミュレーションをしちゃいましょう!

 

 

おすすめ記事/資料はこちら

FPGA のファンクション・シミュレーションは NativeLink で解決しよう

シェフの気まぐれテストベンチ~時間短縮のマル秘レシピ~

はじめてみよう!テストベンチ