vpi_register_cb 注册自定义的回调函数
作者:互联网
1.vpi_register_cb函数接口:
vpiHandle vpi_register_cb(p_cb_data cb_data_p);
其中,p_cb_data结构定义如下:
typedef struct t_cb_data
{
PLI_INT32 reason;
PLI_INT32 (*cb_rtn) (struct t_cb_data *);
vpiHandle obj;
p_vpi_time time;
p_vpi_value value;
PLI_INT32 index;
PLI_BYTE8 *user_data;
}s_cb_data, *p_cb_data;
2.struct t_cb_data中各个成员的含义
2.1 reason:
对于vpi回调来说,非常重要的一点是“什么时候触发回调”,reason就用来描述这一点。
举几个常见reason取值的例子:
#define cbValueChange 1 //用来获取value change
#define cbAtStartOfSimTime 5 //sim start 时触发
#define cbEndOfSimulation //用于simulation结束后,程序退出前触发,可以用来做程序的一些推出前
//的收尾工作
#define cbStartOfSimulation //simulation开始时触发,准确的说是在time 0周期的开始时触发
//(beginning of time - simulation cycle)
#define cbAtStartOfSimTime //在指定的某个仿真时间中(struct t_cb_data中time字段指定)第一个执行此回调
标签:struct,自定义,cb,register,data,time,vpi,define 来源: https://blog.csdn.net/yuexiangallan/article/details/122404165