diff --git a/vvp/part.cc b/vvp/part.cc index 930e51868..d9ec018b3 100644 --- a/vvp/part.cc +++ b/vvp/part.cc @@ -208,6 +208,15 @@ void vvp_fun_part_pv::recv_vec4(vvp_net_ptr_t port, const vvp_vector4_t&bit, port.ptr()->send_vec4_pv(bit, base_, wid_, vwid_, context); } +void vvp_fun_part_pv::recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit, + unsigned base, unsigned wid, unsigned vwid, + vvp_context_t ctx) +{ + assert(port.port() == 0); + + port.ptr()->send_vec4_pv(bit, base, wid, vwid, ctx); +} + void vvp_fun_part_pv::recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit) { assert(port.port() == 0); diff --git a/vvp/part.h b/vvp/part.h index 445cc24f5..c0459ee2d 100644 --- a/vvp/part.h +++ b/vvp/part.h @@ -109,6 +109,10 @@ class vvp_fun_part_pv : public vvp_net_fun_t { void recv_vec4(vvp_net_ptr_t port, const vvp_vector4_t&bit, vvp_context_t context); + void recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit, + unsigned, unsigned, unsigned, + vvp_context_t); + void recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit); private: diff --git a/vvp/vvp_net.cc b/vvp/vvp_net.cc index 79034e215..bf8edffff 100644 --- a/vvp/vvp_net.cc +++ b/vvp/vvp_net.cc @@ -3249,11 +3249,14 @@ void vvp_net_fun_t::recv_vec4(vvp_net_ptr_t, const vvp_vector4_t&, assert(0); } -void vvp_net_fun_t::recv_vec4_pv(vvp_net_ptr_t ptr, const vvp_vector4_t&bit, +void vvp_net_fun_t::recv_vec4_pv(vvp_net_ptr_t, const vvp_vector4_t&bit, unsigned base, unsigned wid, unsigned vwid, - vvp_context_t ctx) + vvp_context_t) { - ptr.ptr()->send_vec4_pv(bit, base, wid, vwid, ctx); + cerr << "internal error: " << typeid(*this).name() << ": " + << "recv_vec4_pv(" << bit << ", " << base + << ", " << wid << ", " << vwid << ") not implemented" << endl; + assert(0); } void vvp_net_fun_t::recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit)