VPI code works on NC/fails on VCS...

E

Edward Arthur

Guest
Hi,

I some some VPI code which I inherited which works fine on NC but fails
miserably on VCS:

Internal error: Unable to locate Eblk in scheduler
Run time internal error: contact Synopsys VCS Customer Support:
(6100; sched.c)

I have a callback which happens ever nanosecond. It is scheduling
another callback for the same time:

static s_vpi_time time = {vpiSimTime, 0, 0, 0.0};
static s_cb_data synch = {cbReadWriteSynch, remSynch, NULL,
&time, NULL, 0, NULL};

:

/*
* Register a callback for the end of the time slice.
* remember to free the callback handle, seeing that we will never
* cancel the callback.
*/
vpiHandle hCb;
synch.user_data = (char *) cbData->user_data;
synch.obj = ((p_remModel)cbData->user_data)->inst;
hCb = vpi_register_cb(&synch);
vpi_free_object(hCb);


Is this a no-no?

Thanks,
/Ed
 
Sorry for replying to my own posting.
It turns out the version of VCS (7.0.1R17) I chose is broken.
Older and newer versions fix the issue.

/Ed

Edward Arthur wrote:
Hi,

I some some VPI code which I inherited which works fine on NC but fails
miserably on VCS:

Internal error: Unable to locate Eblk in scheduler
Run time internal error: contact Synopsys VCS Customer Support:
(6100; sched.c)

I have a callback which happens ever nanosecond. It is scheduling
another callback for the same time:

static s_vpi_time time = {vpiSimTime, 0, 0, 0.0};
static s_cb_data synch = {cbReadWriteSynch, remSynch, NULL,
&time, NULL, 0, NULL};

:

/*
* Register a callback for the end of the time slice.
* remember to free the callback handle, seeing that we will never
* cancel the callback.
*/
vpiHandle hCb;
synch.user_data = (char *) cbData->user_data;
synch.obj = ((p_remModel)cbData->user_data)->inst;
hCb = vpi_register_cb(&synch);
vpi_free_object(hCb);


Is this a no-no?

Thanks,
/Ed
 

Welcome to EDABoard.com

Sponsor

Back
Top