xsi_open - 2022.1 English

Vivado Design Suite User Guide: Logic Simulation (UG900)

Document ID
Release Date
2022.1 English
typedef struct t_xsi_setup_info {
    char* logFileName; 
    char* wdbFileName;
} s_xsi_setup_info, *p_xsi_setup_info;
xsiHandle xsi_open(p_xsi_setup_info setup_info); 
void Xsi::Loader::open(p_xsi_setup_info setup_info);
bool Xsi::Loader::isopen() const;

This function opens an HDL design for simulation. To use this function, you must first initialize an s_xsi_setup_info struct to pass to the function. Use logFileName for the name of the simulation log file, or NULL to disable logging. If waveform tracing is on (see xsi_trace_all), wdbFileName is the name of the output WDB (waveform database) file. Use NULL for the default name of xsim.wdb. If the waveform tracing is off, the Vivado simulator ignores the wdbFileName field.

Tip: To protect your program from future changes to the XSI API, Xilinx recommends that you zero out the s_xsi_setup_info struct before filling in the fields, as shown in the xsi_open.

The plain (non-loader) form of the function returns an xsiHandle, a C object containing process state information about the design, to be used with all other plain-form XSI functions. The loader form of the function has no return value. However, you may check whether the loader has opened a design by querying the isopen member function, which returns true if the open member function had been invoked.


#include "xsi.h"
#include "xsi_loader.h"
Xsi::Loader loader("xsim.dir/mySnapshot/xsimk.so","librdi_simulator_kernel.so");
s_xsi_setup_info info;
memset(&info, 0, sizeof(info));
info.logFileName = NULL;
char wdbName[] = "test.wdb"; // make a buffer for holding the string "test.wdb"
info.wdbFileName = wdbName;