diff --git a/vvp/ufunc.cc b/vvp/ufunc.cc index a6a136068..c174b54c5 100644 --- a/vvp/ufunc.cc +++ b/vvp/ufunc.cc @@ -88,7 +88,7 @@ void ufunc_core::finish_thread(vthread_t thr) propagate_real(sig->real_value()); if (vvp_fun_signal_vec*sig = dynamic_cast(result_->fun)) - propagate_vec4(sig->vec4_value()); + propagate_vec4(sig->vec4_unfiltered_value()); } /* diff --git a/vvp/vpi_signal.cc b/vvp/vpi_signal.cc index 68bed491a..2e964891f 100644 --- a/vvp/vpi_signal.cc +++ b/vvp/vpi_signal.cc @@ -1084,7 +1084,7 @@ static void PV_get_value(vpiHandle ref, p_vpi_value vp) assert(ref->vpi_type->type_code == vpiPartSelect); struct __vpiPV*rfp = (struct __vpiPV*)ref; - vvp_fun_signal_vec*sig = dynamic_cast(rfp->net->fun); + vvp_signal_value*sig = dynamic_cast(rfp->net->fil); assert(sig); switch (vp->format) { diff --git a/vvp/vthread.cc b/vvp/vthread.cc index 13acd2dd0..370f01fbe 100644 --- a/vvp/vthread.cc +++ b/vvp/vthread.cc @@ -2613,10 +2613,11 @@ bool of_IX_GETV(vthread_t thr, vvp_code_t cp) unsigned index = cp->bit_idx[0]; vvp_net_t*net = cp->net; - vvp_fun_signal_vec*sig = dynamic_cast(net->fun); + vvp_signal_value*sig = dynamic_cast(net->fil); if (sig == 0) { + assert(net->fil); cerr << "%%ix/getv error: Net arg not a vector signal? " - << typeid(*net->fun).name() << endl; + << typeid(*net->fil).name() << endl; } assert(sig);