From 3221f70bcb85642ba42acce1f0e848f01f798e9f Mon Sep 17 00:00:00 2001 From: Cary R Date: Wed, 27 Feb 2008 18:42:21 -0800 Subject: [PATCH] Add vvp_fun_part_var::recv_vec4_pv(). Add missing vvp_fun_part_var::recv_vec4_pv() function. This is mostly a duplicate of the _pv() routine from vvp_fun_part. --- vvp/part.cc | 17 +++++++++++++++-- vvp/part.h | 16 ++++------------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/vvp/part.cc b/vvp/part.cc index 27c1d7b14..5b11485ce 100644 --- a/vvp/part.cc +++ b/vvp/part.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004 Stephen Williams (steve@icarus.com) + * Copyright (c) 2004-2008 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -16,7 +16,6 @@ * 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: part.cc,v 1.12 2006/11/16 01:11:26 steve Exp $" # include "compile.h" # include "part.h" @@ -154,6 +153,20 @@ void vvp_fun_part_var::recv_vec4(vvp_net_ptr_t port, const vvp_vector4_t&bit) } } +void vvp_fun_part_var::recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit, + unsigned base, unsigned wid, unsigned vwid) +{ + assert(bit.size() == wid); + + vvp_vector4_t tmp = source_; + if (tmp.size() == 0) + tmp = vvp_vector4_t(vwid); + + assert(tmp.size() == vwid); + tmp.set_vec(base, bit); + recv_vec4(port, tmp); + +} /* * Given a node functor, create a network node and link it into the diff --git a/vvp/part.h b/vvp/part.h index 8bb2d1195..8fa861b1a 100644 --- a/vvp/part.h +++ b/vvp/part.h @@ -1,7 +1,7 @@ #ifndef __part_H #define __part_H /* - * Copyright (c) 2005 Stephen Williams (steve@icarus.com) + * Copyright (c) 2005-2008 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -18,7 +18,6 @@ * 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: part.h,v 1.2 2006/11/16 01:11:26 steve Exp $" # include "schedule.h" @@ -84,6 +83,9 @@ class vvp_fun_part_var : public vvp_net_fun_t { public: void recv_vec4(vvp_net_ptr_t port, const vvp_vector4_t&bit); + void recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit, + unsigned, unsigned, unsigned); + private: unsigned base_; unsigned wid_; @@ -92,14 +94,4 @@ class vvp_fun_part_var : public vvp_net_fun_t { vvp_vector4_t ref_; }; - -/* - * $Log: part.h,v $ - * Revision 1.2 2006/11/16 01:11:26 steve - * Support part writes into part select nodes. - * - * Revision 1.1 2005/09/20 00:51:53 steve - * Lazy processing of vvp_fun_part functor. - * - */ #endif