From a298bfb22acc4e1017c9ac5552e6442fa6ab31b5 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. (cherry picked from commit e31b6bd20c1390dee0026b6d86d7caccd5ea151f) --- vvp/part.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vvp/part.cc b/vvp/part.cc index 51fe5395b..7261cff1e 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);