ISim クイック リファレンス ガイド - Xilinx

ISE Simulator (ISim) 14.1 クイック リファレンス
エラボレーションおよびシミュレーション実行ファイルの生成
fuse : デザインをエラボレートし、シミュレーション実行ファイルを生成します。
使用方法 : fuse [options] {[<work>.]<design top>}
オプション :
-f [ --file ] arg
指定のファイルからオプションを読み込みます。
-h [ --help ]
ヘルプ メッセージを出力します。
--version
コンパイラのバージョンを出力します。
--initfile arg
ユ ー ザ ー 定 義 の シ ミ ュ レ ー タ INIT フ ァ イ ル を 使 用 し て 、 デ フ ォ ル ト の
xilinxsim.ini ファイルに含まれる設定に追加または変更します。
--prj arg
「vhdl|verilog <work lib> <HDL file name>」というエントリを 1 つ以上含む
ISim プロジェクト ファイルを指定します。
-L [ --lib ] arg
Verilog または混合言語デザインにインスタンシエートされているデザイン
ユニットの検索ライブラリを指定します。各検索ライブラリを -L|--lib を使用して
指定します。引数のフォーマットは <name>[=<dir>] で、<name> はライブラリ
の論理名、<dir> はオプションでライブラリの物理ディレクトリを指定します。
-v [ --verbose ] arg 出力メッセージの詳細度 (0 (デフォルト)、1、2) を指定します。
-i [ --include ] arg
Verilog `include で指定されているファイルを検索するディレクトリを指定しま
す。各検索ディレクトリを -i|--include を使用して指定します。
-d [ --define ] arg
Verilog マクロを定義します。各 Verilog マクロを -d|--define を使用して指定し
ます。マクロ定義のフォーマットは <name>[=<val>] で、<name> はマクロ名、
<value> はオプションでマクロ値を指定します。
--rangecheck
VHDL でランタイム値の範囲チェックをイネーブルにします。
--sourcelibdir arg
コンパイルされていないモジュールの Verilog ソース ファイルのディレクトリを
指定します。各ディレクトリを --sourcelibdir <dirname> で指定します。
--sourcelibext arg コンパイルされていないモジュールの Verilog ソース ファイルの拡張子を指定
します。各拡張子を --sourcelibext <file extension> で指定します。
--sourcelibfile arg コンパイルされていないモジュールを含む Verilog ソース ファイルの名前を
指定します。各ファイル名を --sourcelibfile <filename> で指定します。
--mindelay
Verilog デザイン ユニットを最小遅延でコンパイルします。
--typdelay
Verilog デザイン ユニットを典型的な遅延 (デフォルト) でコンパイルします。
--maxdelay
Verilog デザイン ユニットを最大遅延でコンパイルします。
--notimingchecks
Verilog の specify ブロックに含まれるタイミング チェック構文を無視します。
--nospecify
Verilog の specify ブロックに含まれる Verilog パス遅延およびタイミング
チェックを無視します。
--work arg
作業ライブラリを指定します。引数のフォーマットは <name>[=<dir>] で、
<name> はライブラリの論理名、<dir> はオプションでライブラリの物理ディレ
クトリを指定します。
-o [ --out ] arg
生成される実行ファイルの名前を指定します (デフォルト名 : x.exe)。
--mt arg
同時に実行可能なサブ コンパイル ジョブ数を指定します。有効な値は on、
off、または 2 以上の整数です (デフォルト : on)。
--timescale arg
Verilog モジュールのデフォルトの時間単位を指定します
(デフォルト : 1ns/1ps)。
--override_timeunit すべての Verilog モジュールの時間単位を -timescale オプションで指定した
時間単位に変更します。
--override_timeprecision すべての Verilog モジュールの時間精度を -timescale オプションで指
定した時間精度に変更します。
--timeprecision_vhdl arg VHDL デザインの時間精度を指定します (デフォルト : 1ps)。
--generic_top arg
最上位デザイン ユニットのジェネリックまたはパラメーターを指定の値
に変更します (例 : -generic_top "P1=10")。
--maxdesigndepth arg
エラボレーターで許容されるデザインの最大階層数を指定します
(デフォルト : 5000)。
--hil_zynq_ps
HWCoSim : Zynq プロセッサ システム (PS) の Hardware In Loop
(HIL) シミュレーションをイネーブルにします。
--hwcosim_board arg
HWCosim : ボード名を指定します。
--hwcosim_clock arg
HWCosim : インスタンスのクロック ポート名を指定します。
--hwcosim_incremental arg HWCosim : 再インプリメントせずに以前に作成した BIT ファイルを
再利用します。有効な値は 0 および 1 です (デフォルト : 0)。
-hwcosim_instance arg
HWCosim : FPGA で実行されるインスタンスの階層名を指定します
(例 : /testbench/UUT)。
--hwcosim_nocombinatorial_path
デザインに入力から出力までが完全に組み合わせのパスが
ない場合に、シミュレーションを高速化します。
例:
fuse top1 top2 -L unisims_ver -L xilinxcorelib_ver
fuse top1 top2 -prj files.prj -o mysim.exe
fuse -sourcelibdir C:/mydir -sourcelibext .v -prj test.prj work.tb
fuse -generic_top WIDTH=32 -generic_top DEVICE=VIRTEX5 -timescale 1us/1fs work.tb
2
ISE Simulator (ISim) 14.1 クリック リファレンス
ISE Simulator (ISim) 14.1 クイック リファレンス
バッチ モードまたは GUI モードでのシミュレーションの起動
<fuse で生成されたシミュレーション実行ファイル> : シミュレーションを実行します。
使用方法 : <simexecutable> [options]
オプション :
-f
<file_name>
指定のファイルからコマンド ライン オプションを読み込みます。
-gui
対話型 GUI で実行します。
-h
ヘルプ メッセージを出力します。
-log
<file_name>
ログ ファイル名を指定します。
-maxdeltaid <number> シミュレーション時間を進めずに許容される最大デルタ サイクル数を指定
します。
-nolog
ログ ファイルは生成しません。
-sdfnowarn
SDF 警告を生成しません。
-sdfnoerror
SDF ファイルで検出されたエラーを警告として処理します。
-sdfmin [<root>=]<file> SDF ファイル <file> に含まれる最小 遅延をインスタン ス <root> に
アノテートします。
-sdftyp [<root>=]<file> SDF ファイル <file> に含まれる通常の遅延をインスタンス <root> に
アノテートします。
-sdfmax [<root>=]<file> SDF ファイル <file> に含まれる最大 遅延をインスタン ス <root> に
アノテートします。
-sdfroot <root>
SDF の遅延をアノテートするデフォルトのインスタンスを指定します。
-tclbatch <file_name>
バッチ モードで使用する Tcl バッチ ファイルを指定します。
-transport_int_delays
インターコネクト遅延に転送モデルを使用します。パルス除去は実行され
ません。
-testplusarg <arg>
$test$plusargs および $value$plusargs で使用される plusargs を指定
します。
-vcdfile <vcd_file>
VCD 出力ファイルを指定します。
-vcdunit <unit>
VCD 出力の時間単位を指定します。デフォルトは fs です。
-view <wcfg_file>
波形コンフィギュレーション ファイルを開きます。-gui オプションと共に
使用します。
-wdb
<wdb_file>
波形データベース出力ファイルを指定します。
例:
<sim executable> -tclbatch isim.tcl
<sim executable> -gui
<sim_executable> -tclbatch isim.tcl –gui –view mywavesettings.wcfg
isimgui : スタティック波形ビューアーを起動します。
使用方法 : isimgui [options]
オプション :
-h
ヘルプ メッセージを出力します。
-tclbatch <file_name>
GUI をカスタマイズする Tcl バッチ ファイルを指定します。
-view <wcfg_file | wdb_file> 波形コンフィギ ュレー ション ファイ ル (.wcfg) ま たは波 形データ
ベース ファイル (.wdb) を開き、シミュレーション後の波形を表示しま
す。WCFG ファイルを指定すると、WCFG ファイルに関連付けられ
ているデータベースが読み込まれます。-open <WDB file> も指定し
た場合は、WCFG ファイルに関連付けられている WDB ファイルの
代わりに指定した WDB ファイルが開きます。
-open <WDB file>
GUI で [File] → [Open] を実行したときと同様に、波形ウィンドウを
作成せずに WDB ファイルを開きます。
例:
isimgui -view isim.wcfg
isimgui -view isim.wdb
isimgui -open my.wdb –view my.wcfg
Project Navigator から ISim を起動
1. [Project] → [Design Properties] をクリックして、ISim をシミュレータとして選択します。
2. [Design] パネルの [View] ペインで [Simulation] をオンにし、[Simulation] ビューを表示しま
す。ビューのドロップダウンから、シミュレーションの種類として [Behavioral]、[Post-Translate]、
[Post-Map]、および [Post-Route] を選択できます。実行するシミュレーションを選択します。
3. [Hiearchy] ペインでテストベンチを選択します。[Processes] ペインに [ISim Simulator] がプロ
セスとして表示されます。[ISim Simulator] を展開表示すると、ISim を起動する [Simulate
Behavioral Mode] プロセスなどが表示されます。
4. [Simulate Behavioral Mode] をダブルクリックして ISim を起動します。
エンベデッド システム デザインをシミュレーションするために XPS (EDK) から ISim を起動
1. [Edit] → [Preference] を ク リ ッ ク し 、 [Category] で [Simulation] を ク リ ッ ク し て 、 [Select
Simulator] オプションで [ISim] をオンにします。
2. [Simulation] → [Generate Simulation HDL Files] をクリックして、シミュレーション モデルを
生成します。
3. [Simulation] → [Launch HDL Simulator] をクリックして ISim を起動します。
3
シミュレーションの再実行
ISim GUI で [Re-launch] ボタンをクリックすると、デザインが再コンパイルされてシミュレーションが
再実行されます。この機能を使用すると、ISim GUI を終了せずに HDL で問題を修正できます。
例 : コンパイルおよびシミュレーションの実行
glbl.v、file1.v、file2.v、file3.v、file4.vhd、file5.vhd、および testbench tb.v から構成されており、glbl
および tb が 2 つの最上位である VHDL/Verilog 混合デザインで、ザイリンクス UNISIM および IP
コアを使用し、最上位の信号をトレースして、シミュレーションを 1us 間実行します。
vlogcomp file1.v file2.v file3.v glbl.v
vhpcomp file4.vhd file5.vhd
fuse -L unisims_ver -L xilinxcorelib_ver work.glbl work.tb -o tb.exe
tb.exe -tclbatch isim.tcl -gui
isim.tcl ファイルには次が含まれます。
onerror {resume} ; wave add / ; run 1 us
Tcl コマンドを使用したシミュレーションおよび GUI のカスタマイズ
bp :
describe :
dump :
HDL ソース コードのデバッグ用のブレークポイントを設定/削除します。
HDL データまたはブロック オブジェクトの情報を表示します。
現在のデザイン階層にある変数、ジェネリック、パラメーター、およびネットの値
を表示します。
help :
指定した Tcl コマンドの説明、使用方法、および構文を表示します。
isim condition :
指定の条件に基づいてコマンド セットを実行します。
isim force :
VHDL 信号、Verilog ワイヤ、または Verilog レジスタに強制的に値を設定す
るか、または値を削除します。
isim get arraydisplaylength :
配列型 HDL オブジェクトのエレメントの制限数を表示します。
isim get radix :
使用されているグローバル基数を取得します。
isim get userunit : Tcl コマンドの時間値のデフォルト単位を表示します。
isim ltrace :
ライン トレースのオン/オフを切り替えます。
isim ptrace :
プロセス実行トレースのオン/オフを切り替えます。
isim set arraydisplaylength :
配列型 HDL オブジェクトのエレメントの制限数を設定します。
isim set userunit : 単位が設定されていない時間値すべてに適用するデフォルト単位を設定します。
isim set radix :
グローバル基数を設定します。
onerror : バッチ モードで、エラーが発生した Tcl コマンドの直後の動作を制御します。
put :
指定のビット、スライス、変数、または信号に値を割り当てます。
quit :
コマンド オプションに従い、シミュレーションまたは ISim のいずれかを終了します。
restart :
シミュレーションを再スタートします。シミュレーション時間が 0 に戻ります。
resume : 直前の Tcl コマンドでエラーが発生した場合でも、次の Tcl コマンドを処理します。
run :
シミュレーションを開始します。
saif :
消費電力解析用に SAIF (Switching Activity Interchange format) ファイルを作成します。
scope :
デザイン階層を移動します。
sdfanno : 標準遅延フォーマット (SDF) ファイルの遅延を HDL デザインにバックアノテートします。
show :
[Console] パネルにデザインの選択部分を表示します。
step :
HDL デザインでデバッグしやすいようシミュレーションを 1 行ずつ実行します。
test :
ネットまたはバスの実際の値と入力された値を比較します。
vcd :
シミュレーション結果を VCD フォーマットで生成します。
wcfg new :
新しい波形コンフィギュレーションを作成します。wcfg new <filename> のように
入力します。
wcfg open :
指定した波形コンフィギュレーションを開きます。wcfg open <filename> にように
入力します。
wcfg save :
波形コンフィギュレーションを保存します。wcfg save <filename> にように入力し
ます。
wcfg select :
ウ ィ ン ド ウ に 表 示 す る 波 形 コン フ ィ ギ ュ レー シ ョ ン フ ァ イ ル を 指 定 しま す 。
wcfg select <wave_config_name> のように入力します。
wave log :
HDL オブジェクトのシミュレーション出力を波形データベースに記録します。
wave add :
指定の波形コンフィギュレーションにシミュレーション オブジェクトまたはブロック
を追加します。
divider add :
新しい仕切りを追加します。
group add :
新しいグループを追加します。
virtualbus add : 新しい仮想バスを追加します。
marker add :
新しいマーカーを追加します。
4
ISE Simulator (ISim) 14.1 クイック リファレンス
ISE Simulator (ISim) 14.1 クリック リファレンス
例 : Tcl コマンドの使用
波形コンフィギュレーションを作成し、信号、仕切り、仮想バス、およびグループを指定の色と基数で追加
wcfg new
set test_group_id [group add test_group]
wave add -radix hex dcm_clk_s /tb/data2 -into $test_group_id
divider add data -color blue -into $test_group_id
wave add addr1 /tb/UUT/addr2 -into $test_group_id
set vbusId [virtualbus add mybus -radix hex]
wave add sigA -into $vbusId
wave add sigB -into $vbusId
set group_id [group add test_group]
set group_id_1 [group add group_1 -into $group_id]
set group_id_2 [group add group_2 -into $group_id]
wave add clk read_ok -into $group_id_1
wave add rst write_ok -into $group_id_2
wcfg save mywave.wcfg
信号、ワイヤ、またはレジスタに定数またはパターンを適用
現在のシミュレーション時間で rst 信号を 0 にするには、次のように入力します。
isim force rst 0
現在のシミュレーション時間から 10ns 後に rst 信号を 1 にし、現在のシミュレーション時間から 50ns 後に
そのコマンドをキャンセルするには、次のように入力します。
isim force rst 1 -time 10 ns -cancel 50 ns
現在のシミュレーション時間で 1 になり、20ns 後に 0 に戻り、現在のシミュレーション時間から 1us まで
40ns ごとにこれを繰り返すクロックを clk 信号に適用するには (デューティ サイクルが 50% で周期が 40ns
のクロックを 1us 間生成)、次のように入力します。
isim force clk 1 -value 0 -time 20 ns -repeat 40 ns -cancel 1 us
現在のシミュレーション時間で data_in 信号の値を強制的に 1 にし、その 50ns 後に 0 にした後、現在の
シミュレーション時間から 75ns 後に 1 に戻すパターンを 100ns ごとに 5000ns 間繰り返すには、次のように
入力します。
force add data_in 1 -value 0 -time 50 ns -value 1 -time 75 ns -repeat 100 ns -cancel 5000 ns
信号 s、s1、s2 の値を削除するには、次のように入力します。
isim force remove s s1 s2
イ ン ス タ ン ス uut か ら 開 始 し て 、 デ ザ イ ン に 含 ま れ る ポ ー ト お よ び 内 部 ネ ッ ト の ト グ ル 数 を
uut_power.saif ファイルに SAIF ファイル形式で書き込む
saif open -scope uut -file uut_power.saif -allnets
run 1000 ns
saif close
モジュール UUT の VCD シミュレーション値を VCD ファイルに書き込む
vcd dumpfile adder.vcd
vcd dumpvars -m /UUT
run 1000 ns
vcd dumpflush
波形ウィンドウのショートカット キー
波形全体を表示 :
F6 キ ーま たは Ctrl + マウスの 左ボタンを 押 しながら、 左上 方向 へ
ドラッグします。
縮小 :
F7 キーまたは Ctrl + マウスの左ボタンを押しながら右上方向にドラッグ
するか、Ctrl + マウス ホイールを下方向に回転させます。
拡大 :
F8 キーまたは Ctrl + マウスの左ボタンを押しながら左下方向にドラッグ
するか、Ctrl + マウス ホイールを上方向に回転させます。
指定した範囲の拡大表示 :
Ctrl + マウスの左ボタンを押しながら、右下方向へドラッグします。
1 つ前の信号を選択 :
上方向キー
次の信号を選択 :
下方向キー
1 つ前の遷移へ移動 :
左方向キー
次の遷移へ移動 :
右方向キー
上方向/下方向にスクロール :
マウス ホイール
左側/右側のスクロール :
Shift + マウス ホイール
シミュレーション時間 0 に移動 :
Ctrl + Home
シミュレーション時間の最後に移動 : Ctrl + End
シミュレーションを停止 :
Break/Pause キー
シミュレーションをリスタート :
Ctrl + Shift + F5
シミュレーションを続行 :
F5
一行ずつ実行 :
F11
ISim プロジェクト (PRJ) ファイル
プロジェクト ファイル (PRJ) は vhpcomp、vlogcomp、および fuse コマンドで使用され、デザインに
関連するすべてのファイルのリストを供給します。PRJ ファイルには、言語、ライブラリ名、および
デザイン ファイルがリストされています。my_project.prj など、拡張子に .prj を持つテキスト ファイル
を作成して、次のようにライブラリおよびソース ファイル情報を入力します。
説明 :
vhdl <library_name> <VHDL file name>
verilog <library_name> { <Verilog file names> } [-d <Macro>] [-i <Include Dir>]
verilog|vhdl : ソース ファイルが Verilog または VHDL ファイルであることを示します。
<library_name> : ソースをコンパイルするライブラリを指定します。work がデフォルトの
ライブラリです。
• <file_name> : ライブラリに関連するソース ファイルを指定します。1 行に複数の Verilog
ソース ファイルを指定できます。VHDL ソース ファイルは 1 行に 1 つのみ指定できます。
PRJ ファイルで指定した HDL ソースを fuse コマンドでコンパイルし、デザインをエラボレートして、
シミュレーション実行ファイルを生成します。
例 : fuse -prj my_project.prj work.top work.glbl -o my_sim.exe
•
•
GUI での波形表示
1.
2.
3.
4.
5.
ISim GUI を起動して、左上にある [Instances and Processes] パネルで表示するシミュレーション
オブジェクトを含むインスタンスをクリックします。
[Instances and Processes] パネルの右横にある [Objects] パネルで、Ctrl または Shift キーを押しな
がら複数のオブジェクトを選択します。
これらのオブジェクトを空白の波形ウィンドウの [Name] 列にドラッグします。オプションで、[File] →
[New] をクリックし、[Waveform Configuration] を選択して新しい波形ウィンドウを作成し、この波形
ウィンドウにオブジェクトをドラッグすることもできます。
ツールバーの [Run All] ボタンをクリックして、シミュレーションを実行します。
2 つのエッジ間の時間を計測するためのフローティング ルーラーを表示するには、マウスの左ボタンを
押したままマウスを右または左にドラッグします。
ISim ライブラリ マップ (.ini) ファイル
ISim の HDL コン パ イ ル プロ グ ラ ム vhpcomp、 vlogcomp、 お よ び fuse では 、 xilinxsim.ini
コンフィギュレーション ファイルを使用して VHDL および Verilog の論理ライブラリの定義および
物理ロケーションが識別されます。xilinxsim.ini は、$XILINX/vhdl/hdp/<platform> からを読み込ま
れます。また、vhpcomp、vlogcomp、および fuse で -inifile オプションを使用してユーザー .ini
ファイルを指定するか、作業中のディレクトリにxilinxsim.ini を作成して、デフォルトの .ini ファイル
$XILINX/vhdl/hdp/<platform>/xilinxsim.ini の設定に追加したり変更したりできます。
xilinxsim.ini ファイルのフォーマットは、次のとおりです。
ISE Simulator (ISim) 14.1 クイック リファレンス
HDL ファイルの解析 (コンパイル)
vhpcomp : VHDL ファイルを解析し、その出力をディスクに保存します。
使用方法 : vhpcomp [options] {<VHDL file>}
オプション :
-f [ --file ] arg
指定のファイルからオプションを読み込みます。
-h [ --help ]
ヘルプ メッセージを出力します。
--version
コンパイラのバージョンを出力します。
--initfile arg
ユーザー定義のシミュレーター INIT ファイルを使用して、デフォルトの
xilinxsim.ini ファイルに含まれる設定に追加または変更します。
--prj arg
「vhdl <work lib> <VHDL file name>」というエントリを 1 つ以上含む ISim
プロジェクト ファイルを指定します。
-v [ --verbose ] arg
出力メッセージの詳細度 (0 (デフォルト)、1、2) を指定します。
--work arg
作業ライブラリを指定します。引数のフォーマットは <name>[=<dir>] で、
<name> はライブラリの論理名、<dir> はオプションでライブラリの物理
ディレクトリを指定します。
例:
vhpcomp -work worklib file1.vhd file2.vhd
vhpcomp -prj files.prj
vhpcomp -work work -f file_list.txt
vlogcomp : Verilog ファイルを解析し、その出力をディスクに保存します。
使用方法 : vlogcomp [options] {<Verilog file>}
オプション :
-f [ --file ] arg
指定のファイルからオプションを読み込みます。
-h [ --help ]
ヘルプ メッセージを出力します。
--version
コンパイラのバージョンを出力します。
--initfile arg
ユーザー定義のシミュレーター INIT ファイルを使用して、デフォルトの
xilinxsim.ini ファイルに含まれる設定に追加または変更します。
--prj arg
「vhdl|verilog <work lib> <HDL file name>」というエントリを 1 つ以上含む
ISim プロジェクト ファイルを指定します。
-v [ --verbose ] arg
出力メッセージの詳細度 (0 (デフォルト)、1、2) を指定します。
-i [ --include ] arg
Verilog `include で指定されているファイルを検索するディレクトリを指定し
ます。各検索ディレクトリを -i|--include を使用して指定します。
-d [ --define ] arg
Verilog マクロを定義します。各 Verilog マクロを -d|--define を使用して指
定します。マクロ定義のフォーマットは <name>[=<val>] で、<name> は
マクロ名、<value> はオプションでマクロ値を指定します。
--sourcelibdir arg
コンパイルされていないモジュールの Verilog ソース ファイルのディレクトリ
を指定します。各ディレクトリを --sourcelibdir <dirname> で指定します。
--sourcelibext arg
コンパイルされていないモジュールの Verilog ソース ファイルの拡張子を
指定します。 各拡張子を --sourcelibext <file extension> で指定します。
--sourcelibfile arg
コンパイルされていないモジュールを含む Verilog ソース ファイルの名前を
指定します。各ファイル名を --sourcelibfile <filename> で指定します。
--mindelay
Verilog デザイン ユニットを最小遅延でコンパイルします。
--typdelay
Verilog デザイン ユニットを典型的な遅延 (デフォルト) でコンパイルします。
--maxdelay
Verilog デザイン ユニットを最大遅延でコンパイルします。
--work arg
作業ライブラリを指定します。引数のフォーマットは <name>[=<dir>] で、
<name> はライブラリの論理名、<dir> はオプションでライブラリの物理
ディレクトリを指定します。
例:
vlogcomp -work worklib -d WIDTH=4 file1.v file2.v
vlogcomp -work work -i C:/myincludes -d DEVICE=VIRTEX6 f3.v
vlogcomp -work work -f file_list.txt
vlogcomp -prj files.prj
vlogcomp -sourcelibdir C:/mydir -sourcelibext .v -f files.txt
<logical_library>=<physical_dir_path>
次に、ユーザー xilinxsim.ini ファイルの例を示します。
mylib=C:/libs/mylib
work=C:/work
XTP117
詳細は、http://japan.xilinx.com/tools/isim.htm を参照
5
6
1