void xsi_put_value(xsiHandle design_handle, XSI_INT32 port_number, void* value);
void Xsi::Loader::put_value(int port_number, const void* value);
この関数は、value
に格納されている値を、ポート ID port_number
で指定されているポートに出力します。ポートの ID 取得については、xsi_get_port_numberを参照してください。value
は、プログラムが割り当てて値を挿入する必要があるメモリ バッファーへのポインターです。値のフォーマットについては、Vivado シミュレータの VHDL データ形式およびVivado シミュレータの Verilog データ形式を参照してください。
注意:
パフォーマンスを上げるため、Vivado シミュレータでは
xsi_put_value
に渡す値のサイズまたは型はチェックされません。xsi_put_value
にポートのサイズまたは型に一致しない値を渡すと、Vivado シミュレータおよびプログラムで予期しない動作が見られることがあります。コードの例は次のとおりです。
#include "xsi.h"
#include "xsi_loader.h"
...
// Hard-coded Buffer for a 1-bit "1" Verilog 4-state value
const s_xsi_vlog_logicval one_val = {0X00000001, 0X00000000};
Xsi::Loader loader("xsim.dir/mySnapshot/xsimk.so","libxv_simulator_kernel.so");
...
int clk = loader.get_port_number("clk");
loader.put_value(clk, &one_val); // set clk to 1