From f942657ad5937c71c5f1646b59745e53e8b02051 Mon Sep 17 00:00:00 2001 From: steve Date: Sun, 21 May 2006 21:58:46 +0000 Subject: [PATCH] NetESignal input is only selected bits. --- async.cc | 9 ++++++++- net_nex_input.cc | 8 ++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/async.cc b/async.cc index 3d283b9c6..56dfb20eb 100644 --- a/async.cc +++ b/async.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: async.cc,v 1.7 2004/01/18 23:26:54 steve Exp $" +#ident "$Id: async.cc,v 1.7.2.1 2006/05/21 21:58:46 steve Exp $" #endif # include "config.h" @@ -66,6 +66,10 @@ bool NetEvWait::is_asynchronous() NexusSet*inputs = statement_->nex_input(); + /* All the inputs of the statement must be accounted for in + the sensitivity list. Otherwise, there are inputs that can + change without the event being triggered, and that implies + a latch, not a combinational circuit. */ if (! sense->contains(*inputs)) { delete sense; delete inputs; @@ -95,6 +99,9 @@ bool NetProcTop::is_asynchronous() /* * $Log: async.cc,v $ + * Revision 1.7.2.1 2006/05/21 21:58:46 steve + * NetESignal input is only selected bits. + * * Revision 1.7 2004/01/18 23:26:54 steve * The is_combinational function really need not recurse. * diff --git a/net_nex_input.cc b/net_nex_input.cc index e5de93f20..a18581e18 100644 --- a/net_nex_input.cc +++ b/net_nex_input.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: net_nex_input.cc,v 1.12 2004/09/04 04:24:15 steve Exp $" +#ident "$Id: net_nex_input.cc,v 1.12.2.1 2006/05/21 21:58:47 steve Exp $" #endif # include "config.h" @@ -138,7 +138,8 @@ NexusSet* NetESFunc::nex_input() NexusSet* NetESignal::nex_input() { NexusSet*result = new NexusSet; - for (unsigned idx = 0 ; idx < net_->pin_count() ; idx += 1) + assert(msi_ <= net_->pin_count()); + for (unsigned idx = lsi_ ; idx <= msi_ ; idx += 1) result->add(net_->pin(idx).nexus()); return result; @@ -398,6 +399,9 @@ NexusSet* NetWhile::nex_input() /* * $Log: net_nex_input.cc,v $ + * Revision 1.12.2.1 2006/05/21 21:58:47 steve + * NetESignal input is only selected bits. + * * Revision 1.12 2004/09/04 04:24:15 steve * PR1026: assignment statements can have sensitivities in the l-values. *