From e31b6bd20c1390dee0026b6d86d7caccd5ea151f Mon Sep 17 00:00:00 2001 From: Cary R Date: Tue, 25 Aug 2009 16:53:29 -0700 Subject: [PATCH] For a part select driving another part select the extra bits must be 'bz. When a part select is driving another part select any bits outside the original select must be 'bz instead of 'bx. If we initialize the temporary buffer to 'bz this should work as required. It there are multiple drivers then a resolver comes into play and this should not matter. --- vvp/part.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vvp/part.cc b/vvp/part.cc index bf78327ba..a14551205 100644 --- a/vvp/part.cc +++ b/vvp/part.cc @@ -86,7 +86,7 @@ void vvp_fun_part_sa::recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit, { assert(bit.size() == wid); - vvp_vector4_t tmp (vwid, BIT4_X); + vvp_vector4_t tmp (vwid, BIT4_Z); tmp.set_vec(base_, val_); tmp.set_vec(base, bit); recv_vec4(port, tmp, 0); @@ -176,7 +176,7 @@ void vvp_fun_part_aa::recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit, vvp_vector4_t*val = static_cast (vvp_get_context_item(context, context_idx_)); - vvp_vector4_t tmp (vwid, BIT4_X); + vvp_vector4_t tmp (vwid, BIT4_Z); tmp.set_vec(base_, *val); tmp.set_vec(base, bit); recv_vec4(port, tmp, context);