diff --git a/vvp/vpi_signal.cc b/vvp/vpi_signal.cc index 65ea697a4..f3b2343e9 100644 --- a/vvp/vpi_signal.cc +++ b/vvp/vpi_signal.cc @@ -696,7 +696,6 @@ static void signal_get_value(vpiHandle ref, s_vpi_value*vp) format_vpiStringVal(vsig, 0, wid, vp); break; - case vpiObjTypeVal: case vpiVectorVal: format_vpiVectorVal(vsig, 0, wid, vp); break; @@ -705,6 +704,16 @@ static void signal_get_value(vpiHandle ref, s_vpi_value*vp) format_vpiRealVal(vsig, 0, wid, rfp->signed_flag, vp); break; + case vpiObjTypeVal: + if (wid == 1) { + vp->format = vpiScalarVal; + format_vpiScalarVal(vsig, 0, vp); + } else { + vp->format = vpiVectorVal; + format_vpiVectorVal(vsig, 0, wid, vp); + } + break; + default: fprintf(stderr, "vvp internal error: get_value: " "value type %u not implemented."