From 9e21880cdc7f1422a9dc4335a638f813db3a52a5 Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 26 Mar 2007 19:23:13 +0000 Subject: [PATCH] Handle part select of array words. --- elab_expr.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/elab_expr.cc b/elab_expr.cc index f3c00ea32..0245dfb32 100644 --- a/elab_expr.cc +++ b/elab_expr.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: elab_expr.cc,v 1.122 2007/03/14 05:06:49 steve Exp $" +#ident "$Id: elab_expr.cc,v 1.123 2007/03/26 19:23:13 steve Exp $" #endif # include "config.h" @@ -1125,7 +1125,7 @@ NetExpr* PEIdent::elaborate_expr_net_part_(Design*des, NetScope*scope, NetESignal*net, NetScope*found_in) const { long msv, lsv; - ivl_assert(*this, idx_.empty()); + ivl_assert(*this, (idx_.empty()&& !net->word_index()) || (!idx_.empty()&& net->word_index())); bool flag = calculate_parts_(des, scope, msv, lsv); if (!flag) return 0; @@ -1186,6 +1186,8 @@ NetExpr* PEIdent::elaborate_expr_net_idx_up_(Design*des, NetScope*scope, assert(lsb_ != 0); assert(msb_ != 0); + ivl_assert(*this, (idx_.empty()&& !net->word_index()) || (!idx_.empty()&& net->word_index())); + NetExpr*base = elab_and_eval(des, scope, msb_, -1); unsigned long wid = 0; @@ -1225,6 +1227,8 @@ NetExpr* PEIdent::elaborate_expr_net_idx_do_(Design*des, NetScope*scope, assert(lsb_ != 0); assert(msb_ != 0); + ivl_assert(*this, (idx_.empty()&& !net->word_index()) || (!idx_.empty()&& net->word_index())); + NetExpr*base = elab_and_eval(des, scope, msb_, -1); unsigned long wid = 0; @@ -1608,6 +1612,9 @@ NetExpr* PEUnary::elaborate_expr(Design*des, NetScope*scope, /* * $Log: elab_expr.cc,v $ + * Revision 1.123 2007/03/26 19:23:13 steve + * Handle part select of array words. + * * Revision 1.122 2007/03/14 05:06:49 steve * Replace some asserts with ivl_asserts. *