void xsi_run(xsiHandle design_handle, XSI_UINT64 time_ticks);
void Xsi::Loader::run(XSI_INT64 step);
この関数は、カーネル精度単位で指定された時間、シミュレーションを実行します。カーネル精度ユニットはデザインの HDL ソース ファイルの中で最小の時間単位です。たとえば、デザインにソース ファイルが 2 つあり、1 つは精度が 1 ns で、もう 1 つは 1 ps である場合、カーネル精度単位は小さい方、つまり 1 ps になります。
Verilog のソース ファイルでは、`timescale
を使用して時間精度を指定できます。
例:
`timescale 1ns/1ps
この例では、/
の後の時間単位 (1 ps) が時間精度です。VHDL には `timescale
に該当するものはありません。
xelab
コマンドに --timescale
、--override_timeprecision
、--timeprecision_vhdl
オプションを使用して、カーネル精度単位をさらに調整できます。これらのコマンド ライン オプションの使用法は、xelab、xvhdl、xvlog xsim コマンド オプションを参照してください。
注記: シミュレーションが指定された時間実行されるまで、
xsi_run
はブロックされます。プログラムと Vivado シミュレータは、1 スレッドの実行を共有します。