Add support for cbAfterDelay.
This commit is contained in:
parent
63946c4cfb
commit
de6d696667
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: vpi_callback.cc,v 1.24 2002/09/07 04:54:51 steve Exp $"
|
#ident "$Id: vpi_callback.cc,v 1.25 2002/09/20 02:42:11 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -298,6 +298,37 @@ static struct __vpiCallback* make_sync(p_cb_data data, bool readonly_flag)
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct __vpiCallback* make_afterdelay(p_cb_data data)
|
||||||
|
{
|
||||||
|
struct __vpiCallback*obj = new_vpi_callback();
|
||||||
|
obj->cb_data = *data;
|
||||||
|
assert(data->time);
|
||||||
|
obj->cb_time = *(data->time);
|
||||||
|
obj->cb_data.time = &obj->cb_time;
|
||||||
|
|
||||||
|
obj->next = 0;
|
||||||
|
|
||||||
|
struct sync_cb*cb = new sync_cb;
|
||||||
|
cb->sync_flag = false;
|
||||||
|
cb->run = &make_sync_run;
|
||||||
|
cb->handle = obj;
|
||||||
|
obj->cb_sync = cb;
|
||||||
|
|
||||||
|
switch (obj->cb_time.type) {
|
||||||
|
case vpiSimTime: {
|
||||||
|
vvp_time64_t tv = vpip_timestruct_to_time(&obj->cb_time);
|
||||||
|
schedule_generic(cb, 0, tv);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
assert(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following functions are the used for pre and post simulation
|
* The following functions are the used for pre and post simulation
|
||||||
* callbacks.
|
* callbacks.
|
||||||
|
|
@ -396,6 +427,10 @@ vpiHandle vpi_register_cb(p_cb_data data)
|
||||||
obj = make_sync(data, false);
|
obj = make_sync(data, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case cbAfterDelay:
|
||||||
|
obj = make_afterdelay(data);
|
||||||
|
break;
|
||||||
|
|
||||||
case cbEndOfCompile:
|
case cbEndOfCompile:
|
||||||
case cbStartOfSimulation:
|
case cbStartOfSimulation:
|
||||||
case cbEndOfSimulation:
|
case cbEndOfSimulation:
|
||||||
|
|
@ -495,6 +530,9 @@ void callback_functor_s::set(vvp_ipoint_t, bool, unsigned val, unsigned)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vpi_callback.cc,v $
|
* $Log: vpi_callback.cc,v $
|
||||||
|
* Revision 1.25 2002/09/20 02:42:11 steve
|
||||||
|
* Add support for cbAfterDelay.
|
||||||
|
*
|
||||||
* Revision 1.24 2002/09/07 04:54:51 steve
|
* Revision 1.24 2002/09/07 04:54:51 steve
|
||||||
* Implement vpi_remove_cb for cbValueChange.
|
* Implement vpi_remove_cb for cbValueChange.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue