From 301040a67a0f8be27a98429b4153a1c02edbe25d Mon Sep 17 00:00:00 2001 From: steve Date: Fri, 5 Jul 2002 21:26:17 +0000 Subject: [PATCH] Avoid emitting to vvp local net symbols. --- elab_net.cc | 6 +++++- expr_synth.cc | 6 +++++- ivl.def | 1 + ivl_target.h | 10 +++++++++- t-dll-api.cc | 10 +++++++++- t-dll.cc | 6 +++++- t-dll.h | 6 +++++- tgt-vvp/vvp_scope.c | 9 ++++++++- 8 files changed, 47 insertions(+), 7 deletions(-) diff --git a/elab_net.cc b/elab_net.cc index a628cd460..21ef61d1e 100644 --- a/elab_net.cc +++ b/elab_net.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: elab_net.cc,v 1.92 2002/06/22 04:22:40 steve Exp $" +#ident "$Id: elab_net.cc,v 1.93 2002/07/05 21:26:17 steve Exp $" #endif # include "config.h" @@ -398,6 +398,7 @@ NetNet* PEBinary::elaborate_net_cmp_(Design*des, NetScope*scope, verinum::V0); des->add_node(tmp); zero = new NetNet(scope, scope->local_hsymbol(), NetNet::WIRE); + zero->local_flag(true); connect(tmp->pin(0), zero->pin(0)); } @@ -2121,6 +2122,9 @@ NetNet* PEUnary::elaborate_net(Design*des, NetScope*scope, /* * $Log: elab_net.cc,v $ + * Revision 1.93 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.92 2002/06/22 04:22:40 steve * Wide unary minus in continuous assignments. * diff --git a/expr_synth.cc b/expr_synth.cc index 274fc8b13..59684d878 100644 --- a/expr_synth.cc +++ b/expr_synth.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: expr_synth.cc,v 1.33 2002/05/26 01:39:02 steve Exp $" +#ident "$Id: expr_synth.cc,v 1.34 2002/07/05 21:26:17 steve Exp $" #endif # include "config.h" @@ -50,6 +50,7 @@ NetNet* NetEBAdd::synthesize(Design*des) string path = lsig->scope()->name()+"."+lsig->scope()->local_symbol(); NetNet*osig = new NetNet(lsig->scope(), path, NetNet::IMPLICIT, width); + osig->local_flag(true); string oname = des->local_symbol(path); NetAddSub *adder = new NetAddSub(lsig->scope(), oname, width); @@ -587,6 +588,9 @@ NetNet* NetESignal::synthesize(Design*des) /* * $Log: expr_synth.cc,v $ + * Revision 1.34 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.33 2002/05/26 01:39:02 steve * Carry Verilog 2001 attributes with processes, * all the way through to the ivl_target API. diff --git a/ivl.def b/ivl.def index 6e32ff5e5..5ab85daec 100644 --- a/ivl.def +++ b/ivl.def @@ -124,6 +124,7 @@ ivl_signal_attr ivl_signal_attr_cnt ivl_signal_attr_val ivl_signal_integer +ivl_signal_local ivl_signal_pin ivl_signal_pins ivl_signal_port diff --git a/ivl_target.h b/ivl_target.h index 0e0dfdae1..bc8cbc4ac 100644 --- a/ivl_target.h +++ b/ivl_target.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: ivl_target.h,v 1.100 2002/06/21 04:59:35 steve Exp $" +#ident "$Id: ivl_target.h,v 1.101 2002/07/05 21:26:17 steve Exp $" #endif #ifdef __cplusplus @@ -891,6 +891,10 @@ extern const char* ivl_scope_tname(ivl_scope_t net); * net or variable may be signed. This function returns true if the * signal is signed. * + * ivl_signal_local + * A signal that was generated by the compiler as a place holder is + * marked as local. + * * ivl_signal_type * Return the type of the signal, i.e., reg, wire, tri0, etc. * @@ -914,6 +918,7 @@ extern unsigned ivl_signal_pins(ivl_signal_t net); extern ivl_signal_port_t ivl_signal_port(ivl_signal_t net); extern int ivl_signal_signed(ivl_signal_t net); extern int ivl_signal_integer(ivl_signal_t net); +extern int ivl_signal_local(ivl_signal_t net); extern ivl_signal_type_t ivl_signal_type(ivl_signal_t net); extern const char* ivl_signal_name(ivl_signal_t net); extern const char* ivl_signal_basename(ivl_signal_t net); @@ -1051,6 +1056,9 @@ _END_DECL /* * $Log: ivl_target.h,v $ + * Revision 1.101 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.100 2002/06/21 04:59:35 steve * Carry integerness throughout the compilation. * diff --git a/t-dll-api.cc b/t-dll-api.cc index c2e624836..7c8b9e211 100644 --- a/t-dll-api.cc +++ b/t-dll-api.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: t-dll-api.cc,v 1.82 2002/06/21 04:59:35 steve Exp $" +#ident "$Id: t-dll-api.cc,v 1.83 2002/07/05 21:26:17 steve Exp $" #endif # include "config.h" @@ -1194,6 +1194,11 @@ extern "C" ivl_signal_port_t ivl_signal_port(ivl_signal_t net) return net->port_; } +extern "C" int ivl_signal_local(ivl_signal_t net) +{ + return net->local_; +} + extern "C" int ivl_signal_signed(ivl_signal_t net) { return net->signed_; @@ -1547,6 +1552,9 @@ extern "C" ivl_statement_t ivl_stmt_sub_stmt(ivl_statement_t net) /* * $Log: t-dll-api.cc,v $ + * Revision 1.83 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.82 2002/06/21 04:59:35 steve * Carry integerness throughout the compilation. * diff --git a/t-dll.cc b/t-dll.cc index ff2505d74..8360e4697 100644 --- a/t-dll.cc +++ b/t-dll.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: t-dll.cc,v 1.88 2002/06/25 01:33:22 steve Exp $" +#ident "$Id: t-dll.cc,v 1.89 2002/07/05 21:26:17 steve Exp $" #endif # include "config.h" @@ -1824,6 +1824,7 @@ void dll_target::signal(const NetNet*net) obj->lsb_index = net->lsb(); obj->lsb_dist = net->msb() >= net->lsb() ? 1 : -1; obj->isint_ = false; + obj->local_ = (net->local_flag() && (net->peek_eref() == 0))? 1 : 0; switch (net->port_type()) { @@ -1950,6 +1951,9 @@ extern const struct target tgt_dll = { "dll", &dll_target_obj }; /* * $Log: t-dll.cc,v $ + * Revision 1.89 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.88 2002/06/25 01:33:22 steve * Cache calculated driven value. * diff --git a/t-dll.h b/t-dll.h index bf2151dbe..3182042b7 100644 --- a/t-dll.h +++ b/t-dll.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: t-dll.h,v 1.86 2002/06/21 04:59:35 steve Exp $" +#ident "$Id: t-dll.h,v 1.87 2002/07/05 21:26:17 steve Exp $" #endif # include "target.h" @@ -504,6 +504,7 @@ struct ivl_signal_s { unsigned width_ :24; unsigned signed_ : 1; unsigned isint_ : 1; + unsigned local_ : 1; /* These encode the run-time index for the least significant bit, and the distance to the second bit. */ @@ -610,6 +611,9 @@ struct ivl_statement_s { /* * $Log: t-dll.h,v $ + * Revision 1.87 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.86 2002/06/21 04:59:35 steve * Carry integerness throughout the compilation. * diff --git a/tgt-vvp/vvp_scope.c b/tgt-vvp/vvp_scope.c index 41d0d7fd1..a0e36b16a 100644 --- a/tgt-vvp/vvp_scope.c +++ b/tgt-vvp/vvp_scope.c @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: vvp_scope.c,v 1.71 2002/06/21 04:59:35 steve Exp $" +#ident "$Id: vvp_scope.c,v 1.72 2002/07/05 21:26:17 steve Exp $" #endif # include "vvp_priv.h" @@ -549,6 +549,10 @@ static void draw_net_in_scope(ivl_signal_t sig) const char*signed_flag = ivl_signal_signed(sig)? "/s" : ""; + /* Skip the local signal. */ + if (ivl_signal_local(sig)) + return; + args = (const_charp*)calloc(ivl_signal_pins(sig), sizeof(char*)); /* Connect all the pins of the signal to something. */ @@ -1573,6 +1577,9 @@ int draw_scope(ivl_scope_t net, ivl_scope_t parent) /* * $Log: vvp_scope.c,v $ + * Revision 1.72 2002/07/05 21:26:17 steve + * Avoid emitting to vvp local net symbols. + * * Revision 1.71 2002/06/21 04:59:35 steve * Carry integerness throughout the compilation. *