From 9d048092801a9793f2d19f3d1736fb090086ef91 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Tue, 6 Feb 2024 18:12:32 +0000 Subject: [PATCH] libveriuser: Fix calls to vpi_register_cb that had invalid time types. When registering a cbReadWriteSynch or cbReadOnlySynch callback, the time type must be either vpiSimTime or vpiScaledRealTime. vpiSuppressTime is illegal. The required behaviour is a delay of zero, so use vpiSimTime with the high and low fields set to 0. --- libveriuser/veriusertfs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libveriuser/veriusertfs.c b/libveriuser/veriusertfs.c index c09503f49..71d47e537 100644 --- a/libveriuser/veriusertfs.c +++ b/libveriuser/veriusertfs.c @@ -385,9 +385,7 @@ PLI_INT32 tf_isynchronize(void*obj) vpiHandle sys = (vpiHandle)obj; p_pli_data pli = vpi_get_userdata(sys); s_cb_data cb; - s_vpi_time ti; - - ti.type = vpiSuppressTime; + s_vpi_time ti = {vpiSimTime, 0, 0, 0.0}; cb.reason = cbReadWriteSynch; cb.cb_rtn = callback; @@ -414,7 +412,7 @@ PLI_INT32 tf_irosynchronize(void*obj) vpiHandle sys = (vpiHandle)obj; p_pli_data pli = vpi_get_userdata(sys); s_cb_data cb; - s_vpi_time ti = {vpiSuppressTime, 0, 0, 0.0}; + s_vpi_time ti = {vpiSimTime, 0, 0, 0.0}; cb.reason = cbReadOnlySynch; cb.cb_rtn = callback;