2 #include "trg/cdc/xsi_loader.h"
6 Loader::Loader(
const std::string& design_libname,
const std::string& simkernel_libname) :
7 _design_libname(design_libname),
8 _simkernel_libname(simkernel_libname),
15 _xsi_get_status(NULL),
16 _xsi_get_error_info(NULL),
18 _xsi_get_port_number(NULL),
34 Loader::isopen()
const
36 return (_design_handle != NULL);
42 _design_handle = _xsi_open(setup_info);
49 _xsi_close(_design_handle);
50 _design_handle = NULL;
55 Loader::run(XSI_INT64 step)
57 _xsi_run(_design_handle, step);
63 _xsi_restart(_design_handle);
67 Loader::get_value(
int port_number,
void* value)
69 return _xsi_get_value(_design_handle, port_number, value);
73 Loader::get_port_number(
const char* port_name)
75 return _xsi_get_port_number(_design_handle, port_name);
79 Loader::put_value(
int port_number,
const void* value)
81 _xsi_put_value(_design_handle, port_number,
const_cast<void*
>(value));
87 return _xsi_get_status(_design_handle);
91 Loader::get_error_info()
93 return _xsi_get_error_info(_design_handle);
99 _xsi_trace_all(_design_handle);
107 if (!_design_lib.load(_design_libname)) {
108 std::cerr <<
"Could not load XSI simulation shared library (" << _design_libname <<
"): " << _design_lib.error() << std::endl;
113 if (!_simkernel_lib.load(_simkernel_libname)) {
114 std::cerr <<
"Could not load simulaiton kernel library (" << _simkernel_libname <<
") :" << _simkernel_lib.error() <<
"\n";
119 _xsi_open = (t_fp_xsi_open) _design_lib.getfunction(
"xsi_open");
126 _xsi_run = (t_fp_xsi_run) _simkernel_lib.getfunction(
"xsi_run");
132 _xsi_close = (t_fp_xsi_close) _simkernel_lib.getfunction(
"xsi_close");
138 _xsi_restart = (t_fp_xsi_restart) _simkernel_lib.getfunction(
"xsi_restart");
144 _xsi_get_value = (t_fp_xsi_get_value) _simkernel_lib.getfunction(
"xsi_get_value");
145 if (!_xsi_get_value) {
150 _xsi_get_port_number = (t_fp_xsi_get_port_number) _simkernel_lib.getfunction(
"xsi_get_port_number");
151 if (!_xsi_get_port_number) {
155 _xsi_put_value = (t_fp_xsi_put_value) _simkernel_lib.getfunction(
"xsi_put_value");
156 if (!_xsi_put_value) {
161 _xsi_get_status = (t_fp_xsi_get_status) _simkernel_lib.getfunction(
"xsi_get_status");
162 if (!_xsi_get_status) {
167 _xsi_get_error_info = (t_fp_xsi_get_error_info) _simkernel_lib.getfunction(
"xsi_get_error_info");
168 if (!_xsi_get_error_info) {
173 _xsi_trace_all = (t_fp_xsi_trace_all) _simkernel_lib.getfunction(
"xsi_trace_all");
174 if (!_xsi_trace_all) {