第 4 章 : Verilog シミュレーション
説明 :
•
verilog
: ソース ファイルが Verilog ファイルであることを示します。•
<library_name>
: 指定行のソースがコンパイルされるライブラリを指定します。 1 行に複数の Verilog ソース ファイルを指定できます。
•
[-d <macro>]
:[-i <include_path>]
で指定されているロケーションに配置されているマクロを定義します。
例 :
verilog work top.v testbench.v
ISim シミュレーション実行ファイルの生成 : fuse の実行
HDL リンカ fuse では解析ノードでデザインのスタティック エラボレーションの実行、各モジュー ル インスタンスのオブジェクト コードの生成、および生成したオブジェクト コードの ISim シミュ レーション エンジン ライブラリへのリンク付けを実行して、ISim シミュレーション実行ファイル を作成します。
構文 :
fuse {[<library_name> .]<top_name> }-prj <proj_name>.prj -L
<Verilog_library> -o <output_file_name>
説明 :
• {[
<library_name>
.]<top_name>
} : ライブラリおよび最上位のデザイン ユニット名を指定します。 ライブラリ名はオプションで、指定されていない場合はデフォルトでworkに なります。 指定されている場合は、最上位を含む HDL ファイルをプロジェクト ファイ ルで使用されている関連ライブラリ名でコンパイルする必要があります。 たとえばテス ト ベンチ ファイルのデザイン ユニット名を入力します。
メモ : ビヘイビア デザインで UNISIM プリミティブがインスタンシエートされる場合、
glblを top_name として使用する必要があります。
• -L
<Verilog_library>
: ビヘイビア シミュレーションが UNISIM プリミティブに基づいている場合、unimacro_verやxilinxcorelib_ver などのザイリンクス ライブラ リに加えてunisims_verを含める必要があります。
• -o: オプションです。 このオプションを使用しないと、シミュレーション実行ファイルの名 前がデフォルト名x.exeになります。
例 :
fuse work.test_bench work.glbl -prj mydesign.prj -L unisims_ver -L unimacro_ver -L xilinxcorelib_ver -o test_bench.exe
fuse コマンドの詳細は、「fuse コマンドの概要と構文」を参照してください。
第 4 章 : Verilog シミュレーション
説明 :
• -work: オプションで、デフォルトのworkライブラリ以外を指定する場合に使用する 必要があります。
•
<library_name>
:<file_name>
で指定されたソースがコンパイルされるライブラリを指定します。 1 行に複数の Verilog ソース ファイルを指定できます。
• [-d
<macro>
] : [-i <include_path>
] で指定されているロケーションに配置されているマクロを定義します。
例 :
vlogcomp suba.v subb.v
vlogcomp コマンドの詳細は、「vlogcomp コマンドの概要と構文」を参照してください。
ISim シミュレーション実行ファイルの生成 : fuse の実行 構文 :
fuse {[<library_name> .]<top_name> } {-L <Verilog_library> } -o
<output_file_name>
説明 :
• {[
<library_name>.
]<top_name>
} にはライブラリおよび最上位のデザイン ユニット名を入力します。 たとえばテスト ベンチ ファイルのデザイン ユニット名を入力します。 そのうちの 1 つはglblにする必要があります。 ライブラリ名を含めるのはオプションです。 ライブ ラリ名が指定されない場合は、デフォルトのライブラリ名workが使用されます。
メモ : グローバル モジュールの詳細は、『合成./シミュレーション デザイン ガイド』の
「Verilog でのグローバル セット (GSR) とグローバル トライステート (GTS)」を参照してく ださい。
• -L
<Verilog_library>
: unimacroやxilinxcorelibなどのザイリンクス ライブラリに加えてunisimを含める必要があります。
• -o: オプションです。 このオプションを使用しないと、シミュレーション実行ファイルの名 前がデフォルト名x.exeになります。
例 :
fuse work.test_bench work.glbl -L unisims_ver -L unimacro_ver -L xilinxcorelib_ver -o test_bench.exe
fuse コマンドの詳細は、「fuse コマンドの概要と構文」を参照してください。
シミュレーション
コンパイルおよび ISim シミュレーション実行ファイルの生成が完了したら、シミュレーションを 実行します。 シミュレーションを実行するには、fuse で生成した実行ファイルを実行します。
第 4 章 : Verilog シミュレーション
コマンド 動作
x.exe(デフォルト名) またはmy_sim.exeな どのユーザー定義の実行ファイル
デザインがシミュレーションされ、完了すると Tcl コマンド プロンプトが開き Tcl コマンドが入力 できるようになります。
x.exe -guiまたはmy_sim.exe -gui デザインがシミュレーションされ、完了すると ISim GUI が起動します。 GUI のコマンドおよび Tcl コ マンドを使用してデザインの解析、シミュレーショ ンの再実行などを実行できます。
x.exe -tclbatch <tcl_file_name>
ま た は my_sim.exe -tclbatch
<tcl_file_name>
デザインがシミュレーションされ、Tcl ファイルで 指定されている Tcl コマンドが実行されます。最 後に実行されるコマンドはquitです。
このコマンドの詳細は、「ISim シミュレーション実行ファイル コマンドの概要と構文」を参照し てください。
コマンド ラインからのタイミング シミュレーションの実行 (Verilog デザイン)
Verilog デザインのタイミング シミュレーションでは、次の規則に従う必要があります。
• $XILINX/Verilog/src/glbl.vをライブラリworkにコンパイルします。
• fuseでwork.glblを
<library_name>.<top_name>
の 1 つとして指定します。• fuseで-L simprims_verを指定します。
タイミング シミュレーション モデルの生成
タイミング シミュレーションを起動する前に、バックアノテーション用にタイミング シミュレーショ ン モデルおよび遅延ファイルが必要です。 NetGen を使用してこれらのファイルを生成してく ださい。 詳細は、『合成/シミュレーション デザイン ガイド』の「ゲート レベル ネットリストの生 成 (NetGen の実行)」を参照してください。
方法 1 : プロジェクト ファイルの使用 (推奨)
ファイルのコンパイル
<proj_name>.prjという名前のファイルを作成して、次の構文を含めます。
verilog <library_name> {<file_name>.v} {[-d <macro>] [-i
<include_path>]}
説明 :
•
verilog
: ソース ファイルが Verilog ファイルであることを示します。 1 行に複数の Verilogソース ファイルを指定できます。
•
<library_name>
: 指定行のソースがコンパイルされるライブラリを指定します。•
[-d <macro>]
:[-i <include_path>]
で指定されているロケーションに配置されているマクロを定義します。 これらのオプションはオプションです。
例 :
verilog work top.v testbench.v verilog work glbl.v
verilog work top_timesim.v
第 4 章 : Verilog シミュレーション
ISim シミュレーション実行ファイルの生成 : fuse の実行
HDL リンカ fuse では解析ノードでデザインのスタティック エラボレーションの実行、各モジュー ル インスタンスのオブジェクト コードの生成、および生成したオブジェクト コードの ISim シミュ レーション エンジン ライブラリへのリンク付けを実行して、ISim シミュレーション実行ファイル を作成します。
構文 :
fuse {[<library_name>. ]<top_name> } -prj <proj_name>.prj {-L
<verilog_library_name> }-o <output_file_name>
説明 :
• {[
<library_name>.
]<top_name>
} : ライブラリおよび最上位のデザイン ユニット名を入力します。 たとえばテスト ベンチ ファイルのデザイン ユニット名を入力します。 そのうちの 1 つ はglblにする必要があります。 ライブラリ名を含めるのはオプションです。 ライブラリ名 が指定されない場合は、デフォルトのライブラリ名workが使用されます。
• -L
<Verilog_library>
: ザイリンクス ライブラリに加えてsimsprims_verを含める必要があります。
• -o: オプションです。 このオプションを使用しないと、シミュレーション実行ファイルの名 前がデフォルト名x.exeになります。
例 :
fuse work.testbench work.glbl -prj design.prj -L simprims_ver -o isim.exe
fuse コマンドの詳細は、「fuse コマンドの概要と構文」を参照してください。
方法 2 : vlogcomp を使用したファイルの解析
ファイルの解析 構文 :
vlogcomp [-work <library_name> ]<file_name>.v 説明 :
• -work: オプションで、デフォルトのworkライブラリ以外を指定する場合に使用する 必要があります。
•
<library_name>
:<file_name>
で指定されたソースがコンパイルされるライブラリを指定します。 1 行に複数の Verilog ソース ファイルを指定できます。
例 :
vlogcomp top_testbench.v top_timesim.v
vlogcomp コマンドの詳細は、「vlogcomp コマンドの概要と構文」を参照してください。
ISim シミュレーション実行ファイルの生成 : fuse の実行 構文 :
fuse {[<library_name>. ]<top_name> } {-L <Verilog_library> } -o
<output_file_name>
第 4 章 : Verilog シミュレーション
説明 :
• {[
<library_name>.
]<top_name>
} : ライブラリおよび最上位のデザイン ユニット名を入力します。 たとえばテスト ベンチ ファイルのデザイン ユニット名を入力します。 そのうちの 1 つ はglblにする必要があります。 ライブラリ名を含めるのはオプションです。 ライブラリ名 が指定されない場合は、デフォルトのライブラリ名workが使用されます。
• -L
<Verilog_library>
: ザイリンクス ライブラリに加えてsimsprims_verを含める必要があります。
• -o: オプションです。 このオプションを使用しないと、シミュレーション実行ファイルの名 前がデフォルト名x.exeになります。
例 :
fuse work.textbench work.glbl -L simprims_ver -o timesim.exe fuse コマンドの詳細は、「fuse コマンドの概要と構文」を参照してください。
シミュレーション
コンパイルおよび ISim シミュレーション実行ファイルの生成が完了したら、シミュレーションを 実行します。 fuse コマンドで生成された ISim シミュレーション実行ファイルを実行するとシミュ レーションが開始します。
開始後にファイルに含まれる Tcl コマンドを実行する場合は、–tclbatchオプションを使用 します。
また、SDF ファイルに含まれるタイミング遅延を使用するように指定することもできます。
構文 :
<executable_name>.exe -tclbatch <tcl_file_name>
-sdfmin|-sdftyp|-sdfmax [<instance>=]<sdf file name>
説明 :
• <executable_name>.exe : fuse -oオプションを使用して指定しない限り x.exe が使 用されます。
• -sdfmin|-sdftyp|-sdfmax: ISim で使用する遅延の種類 (minimum、typical、ま たは maximum) を指定します。
• <instance> : SDF バック アノテーションを実行するインスタンスの階層パス名を指定 します。
• <sdf file name> : アノテートする SDF ファイル名を指定します。
このコマンドの詳細は、「ISim シミュレーション実行ファイル コマンドの概要と構文」を参照し てください。