GPI Library Reference¶
Cocotb contains a library called GPI (in directory cocotb/share/lib/gpi/) written in C++
that is an abstraction layer for the VPI, VHPI, and FLI simulator interfaces.
The interaction between Python and GPI is via a Python extension module called simulator
(in directory cocotb/share/lib/simulator/) which provides routines for
traversing the hierarchy, getting/setting an object’s value, registering callbacks etc.
Defines
-
GPI_EXPORTCOCOTB_IMPORT¶
Typedefs
-
typedef struct GpiObjHdl *
gpi_sim_hdl¶
-
typedef struct GpiCbHdl *
gpi_cb_hdl¶
-
typedef struct GpiIterator *
gpi_iterator_hdl¶
-
typedef enum gpi_event_e
gpi_event_t¶
-
typedef enum gpi_objtype_e
gpi_objtype_t¶
-
typedef enum gpi_iterator_sel_e
gpi_iterator_sel_t¶
-
typedef enum gpi_set_action_e
gpi_set_action_t¶
Enums
-
enum
gpi_objtype_e¶ Values:
-
enumerator
GPI_UNKNOWN¶
-
enumerator
GPI_MEMORY¶
-
enumerator
GPI_MODULE¶
-
enumerator
GPI_NET¶
-
enumerator
GPI_REGISTER¶
-
enumerator
GPI_ARRAY¶
-
enumerator
GPI_ENUM¶
-
enumerator
GPI_STRUCTURE¶
-
enumerator
GPI_REAL¶
-
enumerator
GPI_INTEGER¶
-
enumerator
GPI_STRING¶
-
enumerator
GPI_GENARRAY¶
-
enumerator
-
enum
gpi_iterator_sel_e¶ Values:
-
enumerator
GPI_OBJECTS¶
-
enumerator
GPI_DRIVERS¶
-
enumerator
GPI_LOADS¶
-
enumerator
Functions
-
GPI_EXPORT bool
gpi_has_registered_impl(void)¶ Returns 1 if there is a registered GPI implementation, 0 otherwise.
Useful for checking if a simulator is running.
-
GPI_EXPORT void
gpi_sim_end(void)¶
-
GPI_EXPORT void
gpi_cleanup(void)¶
-
GPI_EXPORT void
gpi_get_sim_time(uint32_t *high, uint32_t *low)¶
-
GPI_EXPORT void
gpi_get_sim_precision(int32_t *precision)¶
-
GPI_EXPORT const char *
gpi_get_simulator_product(void)¶ Returns a string with the running simulator product information.
- Return
simulator product string
-
GPI_EXPORT const char *
gpi_get_simulator_version(void)¶ Returns a string with the running simulator version.
- Return
simulator version string
-
GPI_EXPORT gpi_sim_hdl
gpi_get_root_handle(const char *name)¶
-
GPI_EXPORT gpi_sim_hdl
gpi_get_handle_by_name(gpi_sim_hdl parent, const char *name)¶
-
GPI_EXPORT gpi_sim_hdl
gpi_get_handle_by_index(gpi_sim_hdl parent, int32_t index)¶
-
GPI_EXPORT void
gpi_free_handle(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT gpi_iterator_hdl
gpi_iterate(gpi_sim_hdl base, gpi_iterator_sel_t type)¶
-
GPI_EXPORT gpi_sim_hdl
gpi_next(gpi_iterator_hdl iterator)¶
-
GPI_EXPORT int
gpi_get_num_elems(gpi_sim_hdl gpi_sim_hdl)¶
-
GPI_EXPORT int
gpi_get_range_left(gpi_sim_hdl gpi_sim_hdl)¶
-
GPI_EXPORT int
gpi_get_range_right(gpi_sim_hdl gpi_sim_hdl)¶
-
GPI_EXPORT const char *
gpi_get_signal_value_binstr(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT const char *
gpi_get_signal_value_str(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT double
gpi_get_signal_value_real(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT long
gpi_get_signal_value_long(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT const char *
gpi_get_signal_name_str(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT const char *
gpi_get_signal_type_str(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT gpi_objtype_t
gpi_get_object_type(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT const char *
gpi_get_definition_name(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT const char *
gpi_get_definition_file(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT int
gpi_is_constant(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT int
gpi_is_indexable(gpi_sim_hdl gpi_hdl)¶
-
GPI_EXPORT void
gpi_set_signal_value_real(gpi_sim_hdl gpi_hdl, double value, gpi_set_action_t action)¶
-
GPI_EXPORT void
gpi_set_signal_value_int(gpi_sim_hdl gpi_hdl, int32_t value, gpi_set_action_t action)¶
-
GPI_EXPORT void
gpi_set_signal_value_binstr(gpi_sim_hdl gpi_hdl, const char *str, gpi_set_action_t action)¶
-
GPI_EXPORT void
gpi_set_signal_value_str(gpi_sim_hdl gpi_hdl, const char *str, gpi_set_action_t action)¶
-
GPI_EXPORT gpi_cb_hdl
gpi_register_timed_callback(int (*gpi_function)(const void*), void *gpi_cb_data, uint64_t time, )¶
-
GPI_EXPORT gpi_cb_hdl
gpi_register_value_change_callback(int (*gpi_function)(const void*), void *gpi_cb_data, gpi_sim_hdl gpi_hdl, int edge, )¶
-
GPI_EXPORT gpi_cb_hdl
gpi_register_readonly_callback(int (*gpi_function)(const void*), void *gpi_cb_data, )¶
-
GPI_EXPORT gpi_cb_hdl
gpi_register_nexttime_callback(int (*gpi_function)(const void*), void *gpi_cb_data, )¶
-
GPI_EXPORT gpi_cb_hdl
gpi_register_readwrite_callback(int (*gpi_function)(const void*), void *gpi_cb_data, )¶
-
GPI_EXPORT void
gpi_deregister_callback(gpi_cb_hdl gpi_hdl)¶
-
GPI_EXPORT void *
gpi_get_callback_data(gpi_cb_hdl gpi_hdl)¶
-
GPI_EXPORT size_t
gpi_print_registered_impl(void)¶