86 lines
2.5 KiB
C
86 lines
2.5 KiB
C
#ifndef _LIBVVP_H_
|
|
#define _LIBVVP_H_
|
|
|
|
/* Interface definitions for libvvp.so.
|
|
*
|
|
* The main functions are vvp_init() and vvp_run() and they must be called
|
|
* in that order.
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <stdbool.h>
|
|
|
|
/* vvp_set_stop_is_finish(true, 0) is equivalent to vvp's "-n" option.
|
|
* vvp_set_stop_is_finish(true, 1) is equivalent to vvp's "-N" option.
|
|
*
|
|
* This function may be called at any time.
|
|
*/
|
|
|
|
extern void vvp_set_stop_is_finish(bool flag, int exit_code);
|
|
|
|
/* vvp_set_quiet_flag(true) is equivalent to vvp's "-q" option.
|
|
*
|
|
* This function may be called at any time.
|
|
*/
|
|
|
|
extern void vvp_set_quiet_flag(bool flag);
|
|
|
|
/* vvp_set_verbose(true) is equivalent to vvp's "-v" option.
|
|
*
|
|
* This function may be called at any time.
|
|
*/
|
|
|
|
extern void vvp_set_verbose_flag(bool flag);
|
|
|
|
/* vvp_no_signals() may be called at any time before vvp_run() to prevent
|
|
* libvvp from handling signals generated by a terminal. It is recommended.
|
|
*/
|
|
|
|
extern void vvp_no_signals(void);
|
|
|
|
/* vvp_init() initialises the simulator. The logfile_name argument is
|
|
* the path to a file to receive logging output from the simulation.
|
|
* It is equivalent to vvp's "-l" option, and may be NULL.
|
|
* The argc argument is the size of the string array argv. These strings
|
|
* are available to the simulation like additional non-option arguments
|
|
* to vvp.
|
|
*
|
|
* The effect of calling vvp_init() for a second time is undefined unless
|
|
* the library is first unloaded and reloaded.
|
|
*/
|
|
|
|
extern void vvp_init(const char *logfile_name, int argc, char*argv[]);
|
|
|
|
/* vvp_run() starts the simulation and returns the exit status
|
|
* when it is complete. The argument is the path to a VVP file containing
|
|
* compiled Verilog code.
|
|
*/
|
|
|
|
extern int vvp_run(const char *design_path);
|
|
|
|
/* vpip_load_module(module_name) may be called after vvp_init() and before
|
|
* vvp_run() to load and initialise a VPI module. It is equivalent to
|
|
* vvp's "-m" option. If the module_name contains a directory separator
|
|
* it is assumed to be the path to a VPI file, otherwise
|
|
* it is searched for in directories on the current search path.
|
|
*/
|
|
|
|
extern void vpip_load_module(const char*name);
|
|
|
|
/* vpip_add_module_path() and vpip_clear_module_paths() may be called
|
|
* after vvp_init() and before vpip_load_module() to manipulate
|
|
* the search path for VPI modules. They are equivalent to vvp's "-M" option.
|
|
* Some default paths are set by vvp_init().
|
|
*/
|
|
|
|
extern void vpip_add_module_path(const char*path);
|
|
extern void vpip_clear_module_paths(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif // _LIBVVP_H_
|