diff --git a/vvp/concat.cc b/vvp/concat.cc index ef76f5632..7debfb57f 100644 --- a/vvp/concat.cc +++ b/vvp/concat.cc @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#ident "$Id: concat.cc,v 1.2 2005/02/07 22:42:42 steve Exp $" +#ident "$Id: concat.cc,v 1.3 2005/04/09 05:30:38 steve Exp $" # include "compile.h" # include "vvp_net.h" @@ -61,11 +61,6 @@ void vvp_fun_concat::recv_vec4(vvp_net_ptr_t port, vvp_vector4_t bit) vvp_send_vec4(port.ptr()->out, val_); } -void vvp_fun_concat::recv_vec8(vvp_net_ptr_t port, vvp_vector8_t bit) -{ - recv_vec4(port, reduce4(bit)); -} - void compile_concat(char*label, unsigned w0, unsigned w1, unsigned w2, unsigned w3, unsigned argc, struct symb_s*argv) @@ -123,6 +118,9 @@ void compile_repeat(char*label, long width, long repeat, struct symb_s arg) /* * $Log: concat.cc,v $ + * Revision 1.3 2005/04/09 05:30:38 steve + * Default behavior for recv_vec8 methods. + * * Revision 1.2 2005/02/07 22:42:42 steve * Add .repeat functor and BIFIF functors. * diff --git a/vvp/vvp_net.cc b/vvp/vvp_net.cc index c2cbd34d9..07ec84130 100644 --- a/vvp/vvp_net.cc +++ b/vvp/vvp_net.cc @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#ident "$Id: vvp_net.cc,v 1.21 2005/04/03 05:45:51 steve Exp $" +#ident "$Id: vvp_net.cc,v 1.22 2005/04/09 05:30:38 steve Exp $" # include "vvp_net.h" # include "schedule.h" @@ -584,11 +584,9 @@ void vvp_net_fun_t::recv_vec4_pv(vvp_net_ptr_t, vvp_vector4_t, assert(0); } -void vvp_net_fun_t::recv_vec8(vvp_net_ptr_t, vvp_vector8_t) +void vvp_net_fun_t::recv_vec8(vvp_net_ptr_t port, vvp_vector8_t bit) { - fprintf(stderr, "internal error: %s: recv_vec8 not implemented\n", - typeid(*this).name()); - assert(0); + recv_vec4(port, reduce4(bit)); } void vvp_net_fun_t::recv_real(vvp_net_ptr_t, double) @@ -1238,6 +1236,9 @@ vvp_bit4_t compare_gtge_signed(const vvp_vector4_t&a, /* * $Log: vvp_net.cc,v $ + * Revision 1.22 2005/04/09 05:30:38 steve + * Default behavior for recv_vec8 methods. + * * Revision 1.21 2005/04/03 05:45:51 steve * Rework the vvp_delay_t class. * diff --git a/vvp/vvp_net.h b/vvp/vvp_net.h index 6faea6fd6..a77e452a6 100644 --- a/vvp/vvp_net.h +++ b/vvp/vvp_net.h @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#ident "$Id: vvp_net.h,v 1.21 2005/04/03 05:45:51 steve Exp $" +#ident "$Id: vvp_net.h,v 1.22 2005/04/09 05:30:38 steve Exp $" # include # include "config.h" @@ -383,6 +383,13 @@ extern void vvp_send_vec4_pv(vvp_net_ptr_t ptr, vvp_vector4_t val, * In this context, a "bit" is the thing that arrives at a single * input. The bit may be a single data bit, a bit vector, various * sorts of numbers or aggregate objects. + * + * recv_vec4 is the most common way for a datum to arrive at a + * port. The value is a vvp_vector4_t. + * + * Most nodes do not care about the specific strengths of bits, so the + * default behavior for recv_vec8 is to reduce the operand to a + * vvp_vector4_t and pass it on to the recv_vec4 method. */ class vvp_net_fun_t { @@ -425,7 +432,6 @@ class vvp_fun_concat : public vvp_net_fun_t { ~vvp_fun_concat(); void recv_vec4(vvp_net_ptr_t port, vvp_vector4_t bit); - void recv_vec8(vvp_net_ptr_t port, vvp_vector8_t bit); private: unsigned wid_[4]; @@ -678,6 +684,9 @@ class vvp_wide_fun_t : public vvp_net_fun_t { /* * $Log: vvp_net.h,v $ + * Revision 1.22 2005/04/09 05:30:38 steve + * Default behavior for recv_vec8 methods. + * * Revision 1.21 2005/04/03 05:45:51 steve * Rework the vvp_delay_t class. *