其他分享
首页 > 其他分享> > vpi_register_cb 注册自定义的回调函数

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