Remove the obsolete NetEIdent class.

This commit is contained in:
steve 2000-09-26 01:35:42 +00:00
parent d6b43519a8
commit 8b581cef46
8 changed files with 32 additions and 811 deletions

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: design_dump.cc,v 1.97 2000/09/17 21:26:15 steve Exp $"
#ident "$Id: design_dump.cc,v 1.98 2000/09/26 01:35:42 steve Exp $"
#endif
/*
@ -871,11 +871,6 @@ void NetEConst::dump(ostream&o) const
o << value_;
}
void NetEIdent::dump(ostream&o) const
{
o << name_;
}
void NetEScope::dump(ostream&o) const
{
o << "<scope=" << scope_->name() << ">";
@ -976,6 +971,9 @@ void Design::dump(ostream&o) const
/*
* $Log: design_dump.cc,v $
* Revision 1.98 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.97 2000/09/17 21:26:15 steve
* Add support for modulus (Eric Aardoom)
*
@ -1063,43 +1061,5 @@ void Design::dump(ostream&o) const
* Get synthesis working with the NetEvWait class,
* and get started supporting multiple events in a
* wait in vvm.
*
* Revision 1.75 2000/04/12 04:23:57 steve
* Named events really should be expressed with PEIdent
* objects in the pform,
*
* Handle named events within the mix of net events
* and edges. As a unified lot they get caught together.
* wait statements are broken into more complex statements
* that include a conditional.
*
* Do not generate NetPEvent or NetNEvent objects in
* elaboration. NetEvent, NetEvWait and NetEvProbe
* take over those functions in the netlist.
*
* Revision 1.74 2000/04/10 05:26:05 steve
* All events now use the NetEvent class.
*
* Revision 1.73 2000/04/04 03:20:15 steve
* Simulate named event trigger and waits.
*
* Revision 1.72 2000/04/02 04:26:06 steve
* Remove the useless sref template.
*
* Revision 1.71 2000/04/01 21:40:22 steve
* Add support for integer division.
*
* Revision 1.70 2000/03/29 04:37:10 steve
* New and improved combinational primitives.
*
* Revision 1.69 2000/03/12 17:09:40 steve
* Support localparam.
*
* Revision 1.68 2000/03/08 04:36:53 steve
* Redesign the implementation of scopes and parameters.
* I now generate the scopes and notice the parameters
* in a separate pass over the pform. Once the scopes
* are generated, I can process overrides and evalutate
* paremeters before elaboration begins.
*/

122
emit.cc
View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: emit.cc,v 1.53 2000/09/17 21:26:15 steve Exp $"
#ident "$Id: emit.cc,v 1.54 2000/09/26 01:35:42 steve Exp $"
#endif
/*
@ -417,11 +417,6 @@ void NetEConst::expr_scan(struct expr_scan_t*tgt) const
tgt->expr_const(this);
}
void NetEIdent::expr_scan(struct expr_scan_t*tgt) const
{
tgt->expr_ident(this);
}
void NetEMemory::expr_scan(struct expr_scan_t*tgt) const
{
tgt->expr_memory(this);
@ -481,6 +476,9 @@ bool emit(const Design*des, const char*type)
/*
* $Log: emit.cc,v $
* Revision 1.54 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.53 2000/09/17 21:26:15 steve
* Add support for modulus (Eric Aardoom)
*
@ -540,117 +538,5 @@ bool emit(const Design*des, const char*type)
* Do not generate NetPEvent or NetNEvent objects in
* elaboration. NetEvent, NetEvWait and NetEvProbe
* take over those functions in the netlist.
*
* Revision 1.38 2000/04/10 05:26:06 steve
* All events now use the NetEvent class.
*
* Revision 1.37 2000/04/04 03:20:15 steve
* Simulate named event trigger and waits.
*
* Revision 1.36 2000/04/01 21:40:22 steve
* Add support for integer division.
*
* Revision 1.35 2000/03/29 04:37:11 steve
* New and improved combinational primitives.
*
* Revision 1.34 2000/03/08 04:36:53 steve
* Redesign the implementation of scopes and parameters.
* I now generate the scopes and notice the parameters
* in a separate pass over the pform. Once the scopes
* are generated, I can process overrides and evalutate
* paremeters before elaboration begins.
*
* Revision 1.33 2000/02/23 02:56:54 steve
* Macintosh compilers do not support ident.
*
* Revision 1.32 2000/01/13 03:35:35 steve
* Multiplication all the way to simulation.
*
* Revision 1.31 1999/11/28 23:42:02 steve
* NetESignal object no longer need to be NetNode
* objects. Let them keep a pointer to NetNet objects.
*
* Revision 1.30 1999/11/27 19:07:57 steve
* Support the creation of scopes.
*
* Revision 1.29 1999/11/21 00:13:08 steve
* Support memories in continuous assignments.
*
* Revision 1.28 1999/11/14 23:43:45 steve
* Support combinatorial comparators.
*
* Revision 1.27 1999/11/14 20:24:28 steve
* Add support for the LPM_CLSHIFT device.
*
* Revision 1.26 1999/11/04 03:53:26 steve
* Patch to synthesize unary ~ and the ternary operator.
* Thanks to Larry Doolittle <LRDoolittle@lbl.gov>.
*
* Add the LPM_MUX device, and integrate it with the
* ternary synthesis from Larry. Replace the lpm_mux
* generator in t-xnf.cc to use XNF EQU devices to
* put muxs into function units.
*
* Rewrite elaborate_net for the PETernary class to
* also use the LPM_MUX device.
*
* Revision 1.25 1999/11/01 02:07:40 steve
* Add the synth functor to do generic synthesis
* and add the LPM_FF device to handle rows of
* flip-flops.
*
* Revision 1.24 1999/10/10 01:59:54 steve
* Structural case equals device.
*
* Revision 1.23 1999/09/22 16:57:23 steve
* Catch parallel blocks in vvm emit.
*
* Revision 1.22 1999/09/20 02:21:10 steve
* Elaborate parameters in phases.
*
* Revision 1.21 1999/09/15 01:55:06 steve
* Elaborate non-blocking assignment to memories.
*
* Revision 1.20 1999/09/03 04:28:38 steve
* elaborate the binary plus operator.
*
* Revision 1.19 1999/08/31 22:38:29 steve
* Elaborate and emit to vvm procedural functions.
*
* Revision 1.18 1999/07/17 19:50:59 steve
* netlist support for ternary operator.
*
* Revision 1.17 1999/07/17 03:39:11 steve
* simplified process scan for targets.
*
* Revision 1.16 1999/07/07 04:20:57 steve
* Emit vvm for user defined tasks.
*
* Revision 1.15 1999/07/03 02:12:51 steve
* Elaborate user defined tasks.
*
* Revision 1.14 1999/06/19 21:06:16 steve
* Elaborate and supprort to vvm the forever
* and repeat statements.
*
* Revision 1.13 1999/06/09 03:00:06 steve
* Add support for procedural concatenation expression.
*
* Revision 1.12 1999/06/06 20:45:38 steve
* Add parse and elaboration of non-blocking assignments,
* Replace list<PCase::Item*> with an svector version,
* Add integer support.
*
* Revision 1.11 1999/05/12 04:03:19 steve
* emit NetAssignMem objects in vvm target.
*
* Revision 1.10 1999/05/07 01:21:18 steve
* Handle total lack of nodes and signals.
*
* Revision 1.9 1999/05/01 02:57:53 steve
* Handle much more complex event expressions.
*
* Revision 1.8 1999/04/25 00:44:10 steve
* Core handles subsignal expressions.
*/

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: netlist.cc,v 1.137 2000/09/24 15:44:44 steve Exp $"
#ident "$Id: netlist.cc,v 1.138 2000/09/26 01:35:42 steve Exp $"
#endif
# include <cassert>
@ -1945,11 +1945,6 @@ NetEConst* NetEConst::dup_expr() const
return tmp;
}
NetEIdent* NetEIdent::dup_expr() const
{
assert(0);
}
NetEMemory::NetEMemory(NetMemory*m, NetExpr*i)
: NetExpr(m->width()), mem_(m), idx_(i)
{
@ -2400,6 +2395,9 @@ bool NetUDP::sequ_glob_(string input, char output)
/*
* $Log: netlist.cc,v $
* Revision 1.138 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.137 2000/09/24 15:44:44 steve
* Move some NetNet method out of the header file.
*
@ -2465,75 +2463,5 @@ bool NetUDP::sequ_glob_(string input, char output)
* Revision 1.122 2000/05/04 03:37:58 steve
* Add infrastructure for system functions, move
* $time to that structure and add $random.
*
* Revision 1.121 2000/05/02 03:13:31 steve
* Move memories to the NetScope object.
*
* Revision 1.120 2000/05/02 00:58:12 steve
* Move signal tables to the NetScope class.
*
* Revision 1.119 2000/04/28 18:43:23 steve
* integer division in expressions properly get width.
*
* Revision 1.118 2000/04/23 03:45:24 steve
* Add support for the procedural release statement.
*
* Revision 1.117 2000/04/22 04:20:19 steve
* Add support for force assignment.
*
* Revision 1.116 2000/04/18 01:02:54 steve
* Minor cleanup of NetTaskDef.
*
* Revision 1.115 2000/04/16 23:32:19 steve
* Synthesis of comparator in expressions.
*
* Connect the NetEvent and related classes
* together better.
*
* Revision 1.114 2000/04/15 19:51:30 steve
* fork-join support in vvm.
*
* Revision 1.113 2000/04/12 20:02:53 steve
* Finally remove the NetNEvent and NetPEvent classes,
* Get synthesis working with the NetEvWait class,
* and get started supporting multiple events in a
* wait in vvm.
*
* Revision 1.112 2000/04/04 03:20:15 steve
* Simulate named event trigger and waits.
*
* Revision 1.111 2000/04/02 04:26:06 steve
* Remove the useless sref template.
*
* Revision 1.110 2000/04/01 21:40:22 steve
* Add support for integer division.
*
* Revision 1.109 2000/03/29 04:37:11 steve
* New and improved combinational primitives.
*
* Revision 1.108 2000/03/12 17:09:41 steve
* Support localparam.
*
* Revision 1.107 2000/03/10 06:20:48 steve
* Handle defparam to partial hierarchical names.
*
* Revision 1.106 2000/03/08 04:36:53 steve
* Redesign the implementation of scopes and parameters.
* I now generate the scopes and notice the parameters
* in a separate pass over the pform. Once the scopes
* are generated, I can process overrides and evalutate
* paremeters before elaboration begins.
*
* Revision 1.105 2000/02/23 02:56:54 steve
* Macintosh compilers do not support ident.
*
* Revision 1.104 2000/01/13 03:35:35 steve
* Multiplication all the way to simulation.
*
* Revision 1.103 2000/01/10 01:35:24 steve
* Elaborate parameters afer binding of overrides.
*
* Revision 1.102 1999/12/30 04:19:12 steve
* Propogate constant 0 in low bits of adders.
*/

218
netlist.h
View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: netlist.h,v 1.166 2000/09/24 17:41:13 steve Exp $"
#ident "$Id: netlist.h,v 1.167 2000/09/26 01:35:42 steve Exp $"
#endif
/*
@ -2393,24 +2393,6 @@ class NetEUBits : public NetEUnary {
};
/* System identifiers are represented here. */
class NetEIdent : public NetExpr {
public:
NetEIdent(const string&n, unsigned w)
: NetExpr(w), name_(n) { }
const string& name() const { return name_; }
NetEIdent* dup_expr() const;
virtual void expr_scan(struct expr_scan_t*) const;
virtual void dump(ostream&) const;
private:
string name_;
};
/*
* A reference to a memory is represented by this expression. If the
* index is not supplied, then the node is only valid in certain
@ -2799,6 +2781,9 @@ extern ostream& operator << (ostream&, NetNet::Type);
/*
* $Log: netlist.h,v $
* Revision 1.167 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.166 2000/09/24 17:41:13 steve
* fix null pointer when elaborating undefined task.
*
@ -2837,200 +2822,5 @@ extern ostream& operator << (ostream&, NetNet::Type);
*
* Revision 1.155 2000/08/09 03:43:45 steve
* Move all file manipulation out of target class.
*
* Revision 1.154 2000/08/08 01:50:42 steve
* target methods need not take a file stream.
*
* Revision 1.153 2000/08/02 14:48:15 steve
* cleanup.
*
* Revision 1.152 2000/08/01 02:48:42 steve
* Support <= in synthesis of DFF and ram devices.
*
* Revision 1.151 2000/07/30 18:25:44 steve
* Rearrange task and function elaboration so that the
* NetTaskDef and NetFuncDef functions are created during
* signal enaboration, and carry these objects in the
* NetScope class instead of the extra, useless map in
* the Design class.
*
* Revision 1.150 2000/07/29 16:21:08 steve
* Report code generation errors through proc_delay.
*
* Revision 1.149 2000/07/27 05:13:44 steve
* Support elaboration of disable statements.
*
* Revision 1.148 2000/07/22 22:09:04 steve
* Parse and elaborate timescale to scopes.
*
* Revision 1.147 2000/07/16 04:56:08 steve
* Handle some edge cases during node scans.
*
* Revision 1.146 2000/07/15 05:13:44 steve
* Detect muxing Vz as a bufufN.
*
* Revision 1.145 2000/07/14 06:12:57 steve
* Move inital value handling from NetNet to Nexus
* objects. This allows better propogation of inital
* values.
*
* Clean up constant propagation a bit to account
* for regs that are not really values.
*
* Revision 1.144 2000/07/07 04:53:54 steve
* Add support for non-constant delays in delay statements,
* Support evaluating ! in constant expressions, and
* move some code from netlist.cc to net_proc.cc.
*
* Revision 1.143 2000/06/25 19:59:42 steve
* Redesign Links to include the Nexus class that
* carries properties of the connected set of links.
*
* Revision 1.142 2000/06/24 22:55:20 steve
* Get rid of useless next_link method.
*
* Revision 1.141 2000/06/13 03:24:48 steve
* Index in memory assign should be a NetExpr.
*
* Revision 1.140 2000/05/31 02:26:49 steve
* Globally merge redundant event objects.
*
* Revision 1.139 2000/05/27 19:33:23 steve
* Merge similar probes within a module.
*
* Revision 1.138 2000/05/11 23:37:27 steve
* Add support for procedural continuous assignment.
*
* Revision 1.137 2000/05/07 18:20:07 steve
* Import MCD support from Stephen Tell, and add
* system function parameter support to the IVL core.
*
* Revision 1.136 2000/05/07 04:37:56 steve
* Carry strength values from Verilog source to the
* pform and netlist for gates.
*
* Change vvm constants to use the driver_t to drive
* a constant value. This works better if there are
* multiple drivers on a signal.
*
* Revision 1.135 2000/05/04 03:37:58 steve
* Add infrastructure for system functions, move
* $time to that structure and add $random.
*
* Revision 1.134 2000/05/02 03:13:31 steve
* Move memories to the NetScope object.
*
* Revision 1.133 2000/05/02 00:58:12 steve
* Move signal tables to the NetScope class.
*
* Revision 1.132 2000/04/28 18:43:23 steve
* integer division in expressions properly get width.
*
* Revision 1.131 2000/04/28 16:50:53 steve
* Catch memory word parameters to tasks.
*
* Revision 1.130 2000/04/23 21:17:31 steve
* Better comments about bufif devices.
*
* Revision 1.129 2000/04/23 21:15:07 steve
* Emit code for the bufif devices.
*
* Revision 1.128 2000/04/23 03:45:24 steve
* Add support for the procedural release statement.
*
* Revision 1.127 2000/04/22 04:20:19 steve
* Add support for force assignment.
*
* Revision 1.126 2000/04/20 00:28:03 steve
* Catch some simple identity compareoptimizations.
*
* Revision 1.125 2000/04/18 04:50:20 steve
* Clean up unneeded NetEvent objects.
*
* Revision 1.124 2000/04/18 01:02:54 steve
* Minor cleanup of NetTaskDef.
*
* Revision 1.123 2000/04/16 23:32:19 steve
* Synthesis of comparator in expressions.
*
* Connect the NetEvent and related classes
* together better.
*
* Revision 1.122 2000/04/15 19:51:30 steve
* fork-join support in vvm.
*
* Revision 1.121 2000/04/12 20:02:53 steve
* Finally remove the NetNEvent and NetPEvent classes,
* Get synthesis working with the NetEvWait class,
* and get started supporting multiple events in a
* wait in vvm.
*
* Revision 1.120 2000/04/12 04:23:58 steve
* Named events really should be expressed with PEIdent
* objects in the pform,
*
* Handle named events within the mix of net events
* and edges. As a unified lot they get caught together.
* wait statements are broken into more complex statements
* that include a conditional.
*
* Do not generate NetPEvent or NetNEvent objects in
* elaboration. NetEvent, NetEvWait and NetEvProbe
* take over those functions in the netlist.
*
* Revision 1.119 2000/04/10 05:26:06 steve
* All events now use the NetEvent class.
*
* Revision 1.118 2000/04/04 03:20:15 steve
* Simulate named event trigger and waits.
*
* Revision 1.117 2000/04/02 04:26:06 steve
* Remove the useless sref template.
*
* Revision 1.116 2000/04/01 21:40:22 steve
* Add support for integer division.
*
* Revision 1.115 2000/03/29 04:37:11 steve
* New and improved combinational primitives.
*
* Revision 1.114 2000/03/12 17:09:41 steve
* Support localparam.
*
* Revision 1.113 2000/03/11 03:25:52 steve
* Locate scopes in statements.
*
* Revision 1.112 2000/03/10 06:20:48 steve
* Handle defparam to partial hierarchical names.
*
* Revision 1.111 2000/03/08 04:36:54 steve
* Redesign the implementation of scopes and parameters.
* I now generate the scopes and notice the parameters
* in a separate pass over the pform. Once the scopes
* are generated, I can process overrides and evalutate
* paremeters before elaboration begins.
*
* Revision 1.110 2000/02/23 02:56:55 steve
* Macintosh compilers do not support ident.
*
* Revision 1.109 2000/02/13 04:35:43 steve
* Include some block matching from Larry.
*
* Revision 1.108 2000/01/13 03:35:35 steve
* Multiplication all the way to simulation.
*
* Revision 1.107 2000/01/10 01:35:24 steve
* Elaborate parameters afer binding of overrides.
*
* Revision 1.106 2000/01/01 06:18:00 steve
* Handle synthesis of concatenation.
*
* Revision 1.105 1999/12/30 04:19:12 steve
* Propogate constant 0 in low bits of adders.
*
* Revision 1.104 1999/12/17 06:18:16 steve
* Rewrite the cprop functor to use the functor_t interface.
*
* Revision 1.103 1999/12/17 03:38:46 steve
* NetConst can now hold wide constants.
*/
#endif

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: t-verilog.cc,v 1.14 2000/08/14 04:39:57 steve Exp $"
#ident "$Id: t-verilog.cc,v 1.15 2000/09/26 01:35:42 steve Exp $"
#endif
/*
@ -179,10 +179,6 @@ void target_verilog::emit_expr_(ostream&os, const NetExpr*expr)
os << pp->value();
} else if (const NetEIdent*pp = dynamic_cast<const NetEIdent*>(expr)) {
os << mangle(pp->name());
} else if (const NetEUnary*pp = dynamic_cast<const NetEUnary*>(expr)) {
os << pp->op() << "(";
@ -223,9 +219,6 @@ static void vtask_parm(ostream&os, const NetExpr*ex)
else
os << pp->value();
} else if (const NetEIdent*pp = dynamic_cast<const NetEIdent*>(ex)) {
os << mangle(pp->name());
} else {
}
}
@ -265,6 +258,9 @@ const struct target tgt_verilog = {
/*
* $Log: t-verilog.cc,v $
* Revision 1.15 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.14 2000/08/14 04:39:57 steve
* add th t-dll functions for net_const, net_bufz and processes.
*
@ -289,45 +285,5 @@ const struct target tgt_verilog = {
* Do not generate NetPEvent or NetNEvent objects in
* elaboration. NetEvent, NetEvWait and NetEvProbe
* take over those functions in the netlist.
*
* Revision 1.9 2000/02/23 02:56:55 steve
* Macintosh compilers do not support ident.
*
* Revision 1.8 1999/09/22 16:57:24 steve
* Catch parallel blocks in vvm emit.
*
* Revision 1.7 1999/08/01 16:34:50 steve
* Parse and elaborate rise/fall/decay times
* for gates, and handle the rules for partial
* lists of times.
*
* Revision 1.6 1999/07/03 02:12:52 steve
* Elaborate user defined tasks.
*
* Revision 1.5 1999/06/13 16:30:06 steve
* Unify the NetAssign constructors a bit.
*
* Revision 1.4 1999/05/01 02:57:53 steve
* Handle much more complex event expressions.
*
* Revision 1.3 1998/12/01 00:42:15 steve
* Elaborate UDP devices,
* Support UDP type attributes, and
* pass those attributes to nodes that
* are instantiated by elaboration,
* Put modules into a map instead of
* a simple list.
*
* Revision 1.2 1998/11/23 00:20:23 steve
* NetAssign handles lvalues as pin links
* instead of a signal pointer,
* Wire attributes added,
* Ability to parse UDP descriptions added,
* XNF generates EXT records for signals with
* the PAD attribute.
*
* Revision 1.1 1998/11/03 23:29:05 steve
* Introduce verilog to CVS.
*
*/

148
t-vvm.cc
View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: t-vvm.cc,v 1.176 2000/09/20 02:53:15 steve Exp $"
#ident "$Id: t-vvm.cc,v 1.177 2000/09/26 01:35:42 steve Exp $"
#endif
# include <iostream>
@ -341,7 +341,6 @@ class vvm_proc_rval : public expr_scan_t {
private:
virtual void expr_const(const NetEConst*);
virtual void expr_concat(const NetEConcat*);
virtual void expr_ident(const NetEIdent*);
virtual void expr_memory(const NetEMemory*mem);
virtual void expr_sfunc(const NetESFunc*);
virtual void expr_signal(const NetESignal*);
@ -434,11 +433,6 @@ void vvm_proc_rval::expr_const(const NetEConst*expr)
result = tname;
}
void vvm_proc_rval::expr_ident(const NetEIdent*expr)
{
result = mangle(expr->name());
}
/*
* a bitset rval that is a memory reference.
*/
@ -3391,6 +3385,9 @@ extern const struct target tgt_vvm = {
};
/*
* $Log: t-vvm.cc,v $
* Revision 1.177 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.176 2000/09/20 02:53:15 steve
* Correctly measure comples l-values of assignments.
*
@ -3461,142 +3458,5 @@ extern const struct target tgt_vvm = {
*
* Revision 1.156 2000/06/06 02:32:45 steve
* Expand constants in its special case assignment. (Stephan Boettcher)
*
* Revision 1.155 2000/06/03 02:13:43 steve
* Do not attach temporaries to scopes.
*
* Revision 1.154 2000/05/31 03:52:07 steve
* The NetESignal shortcut cannot expand an rvalue.
*
* Revision 1.153 2000/05/25 06:02:12 steve
* Emin init code only once per nexus.
*
* Revision 1.152 2000/05/25 01:45:35 steve
* Optimize assignment from signals.
*
* Revision 1.151 2000/05/20 02:48:51 steve
* Add vpi numbers to the bits table.
*
* Revision 1.150 2000/05/20 02:26:23 steve
* Combine constants into a bit table.
*
* Revision 1.149 2000/05/11 23:37:27 steve
* Add support for procedural continuous assignment.
*
* Revision 1.148 2000/05/09 21:16:35 steve
* Give strengths to logic and bufz devices.
*
* Revision 1.147 2000/05/07 21:17:21 steve
* non-blocking assignment to a bit select.
*
* Revision 1.146 2000/05/07 19:40:26 steve
* Fix connection of Direction of LMP_CLSHIFT
* to constant values. Remember to add a signal
* to the nexus and connect the receiver in vvm.
*
* Revision 1.145 2000/05/07 18:20:07 steve
* Import MCD support from Stephen Tell, and add
* system function parameter support to the IVL core.
*
* Revision 1.144 2000/05/07 04:37:56 steve
* Carry strength values from Verilog source to the
* pform and netlist for gates.
*
* Change vvm constants to use the driver_t to drive
* a constant value. This works better if there are
* multiple drivers on a signal.
*
* Revision 1.143 2000/05/04 03:37:59 steve
* Add infrastructure for system functions, move
* $time to that structure and add $random.
*
* Revision 1.142 2000/05/02 00:58:12 steve
* Move signal tables to the NetScope class.
*
* Revision 1.141 2000/04/28 18:43:23 steve
* integer division in expressions properly get width.
*
* Revision 1.140 2000/04/26 18:35:11 steve
* Handle assigning small values to big registers.
*
* Revision 1.139 2000/04/23 03:45:24 steve
* Add support for the procedural release statement.
*
* Revision 1.138 2000/04/22 04:20:19 steve
* Add support for force assignment.
*
* Revision 1.137 2000/04/15 19:51:30 steve
* fork-join support in vvm.
*
* Revision 1.136 2000/04/15 02:25:32 steve
* Support chained events.
*
* Revision 1.135 2000/04/14 23:31:53 steve
* No more class derivation from vvm_thread.
*
* Revision 1.134 2000/04/12 20:02:53 steve
* Finally remove the NetNEvent and NetPEvent classes,
* Get synthesis working with the NetEvWait class,
* and get started supporting multiple events in a
* wait in vvm.
*
* Revision 1.133 2000/04/12 04:23:58 steve
* Named events really should be expressed with PEIdent
* objects in the pform,
*
* Handle named events within the mix of net events
* and edges. As a unified lot they get caught together.
* wait statements are broken into more complex statements
* that include a conditional.
*
* Do not generate NetPEvent or NetNEvent objects in
* elaboration. NetEvent, NetEvWait and NetEvProbe
* take over those functions in the netlist.
*
* Revision 1.132 2000/04/10 05:26:06 steve
* All events now use the NetEvent class.
*
* Revision 1.131 2000/04/09 16:55:42 steve
* Donot create tables that have no entries.
*
* Revision 1.130 2000/04/04 03:20:15 steve
* Simulate named event trigger and waits.
*
* Revision 1.129 2000/04/02 04:26:07 steve
* Remove the useless sref template.
*
* Revision 1.128 2000/04/01 21:40:23 steve
* Add support for integer division.
*
* Revision 1.127 2000/03/29 04:37:11 steve
* New and improved combinational primitives.
*
* Revision 1.126 2000/03/26 16:28:31 steve
* vvm_bitset_t is no longer a template.
*
* Revision 1.125 2000/03/25 05:02:24 steve
* signal bits are referenced at run time by the vpiSignal struct.
*
* Revision 1.124 2000/03/25 02:43:56 steve
* Remove all remain vvm_bitset_t return values,
* and disallow vvm_bitset_t copying.
*
* Revision 1.123 2000/03/24 03:47:01 steve
* Update vvm_ram_dq to nexus style.
*
* Revision 1.122 2000/03/24 02:43:36 steve
* vvm_unop and vvm_binop pass result by reference
* instead of returning a value.
*
* Revision 1.121 2000/03/23 03:24:39 steve
* Do not create 0 length parameters to system tasks.
*
* Revision 1.120 2000/03/22 04:26:40 steve
* Replace the vpip_bit_t with a typedef and
* define values for all the different bit
* values, including strengths.
*
* Revision 1.119 2000/03/20 17:40:33 steve
* Do not link adder pins that ar unconnected.
*/

138
target.cc
View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: target.cc,v 1.48 2000/09/17 21:26:16 steve Exp $"
#ident "$Id: target.cc,v 1.49 2000/09/26 01:35:42 steve Exp $"
#endif
# include "target.h"
@ -332,12 +332,6 @@ void expr_scan_t::expr_concat(const NetEConcat*that)
typeid(*this).name() << "): unhandled expr_concat." << endl;
}
void expr_scan_t::expr_ident(const NetEIdent*that)
{
cerr << that->get_line() << ": expr_scan_t (" <<
typeid(*this).name() << "): unhandled expr_ident." << endl;
}
void expr_scan_t::expr_memory(const NetEMemory*)
{
cerr << "expr_scan_t (" << typeid(*this).name() << "): "
@ -394,6 +388,9 @@ void expr_scan_t::expr_binary(const NetEBinary*ex)
/*
* $Log: target.cc,v $
* Revision 1.49 2000/09/26 01:35:42 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.48 2000/09/17 21:26:16 steve
* Add support for modulus (Eric Aardoom)
*
@ -458,132 +455,5 @@ void expr_scan_t::expr_binary(const NetEBinary*ex)
*
* Revision 1.32 2000/04/01 21:40:23 steve
* Add support for integer division.
*
* Revision 1.31 2000/03/29 04:37:11 steve
* New and improved combinational primitives.
*
* Revision 1.30 2000/02/23 02:56:56 steve
* Macintosh compilers do not support ident.
*
* Revision 1.29 2000/01/13 03:35:35 steve
* Multiplication all the way to simulation.
*
* Revision 1.28 1999/11/28 23:42:03 steve
* NetESignal object no longer need to be NetNode
* objects. Let them keep a pointer to NetNet objects.
*
* Revision 1.27 1999/11/27 19:07:58 steve
* Support the creation of scopes.
*
* Revision 1.26 1999/11/21 00:13:09 steve
* Support memories in continuous assignments.
*
* Revision 1.25 1999/11/14 23:43:45 steve
* Support combinatorial comparators.
*
* Revision 1.24 1999/11/14 20:24:28 steve
* Add support for the LPM_CLSHIFT device.
*
* Revision 1.23 1999/11/04 03:53:26 steve
* Patch to synthesize unary ~ and the ternary operator.
* Thanks to Larry Doolittle <LRDoolittle@lbl.gov>.
*
* Add the LPM_MUX device, and integrate it with the
* ternary synthesis from Larry. Replace the lpm_mux
* generator in t-xnf.cc to use XNF EQU devices to
* put muxs into function units.
*
* Rewrite elaborate_net for the PETernary class to
* also use the LPM_MUX device.
*
* Revision 1.22 1999/11/01 02:07:41 steve
* Add the synth functor to do generic synthesis
* and add the LPM_FF device to handle rows of
* flip-flops.
*
* Revision 1.21 1999/10/10 01:59:55 steve
* Structural case equals device.
*
* Revision 1.20 1999/09/22 16:57:24 steve
* Catch parallel blocks in vvm emit.
*
* Revision 1.19 1999/09/15 01:55:06 steve
* Elaborate non-blocking assignment to memories.
*
* Revision 1.18 1999/09/03 04:28:38 steve
* elaborate the binary plus operator.
*
* Revision 1.17 1999/08/31 22:38:29 steve
* Elaborate and emit to vvm procedural functions.
*
* Revision 1.16 1999/08/18 04:00:02 steve
* Fixup spelling and some error messages. <LRDoolittle@lbl.gov>
*
* Revision 1.15 1999/07/17 19:51:00 steve
* netlist support for ternary operator.
*
* Revision 1.14 1999/07/17 03:39:11 steve
* simplified process scan for targets.
*
* Revision 1.13 1999/07/03 02:12:52 steve
* Elaborate user defined tasks.
*
* Revision 1.12 1999/06/19 21:06:16 steve
* Elaborate and supprort to vvm the forever
* and repeat statements.
*
* Revision 1.11 1999/06/09 03:00:06 steve
* Add support for procedural concatenation expression.
*
* Revision 1.10 1999/06/06 20:45:39 steve
* Add parse and elaboration of non-blocking assignments,
* Replace list<PCase::Item*> with an svector version,
* Add integer support.
*
* Revision 1.9 1999/05/12 04:03:19 steve
* emit NetAssignMem objects in vvm target.
*
* Revision 1.8 1999/05/01 02:57:53 steve
* Handle much more complex event expressions.
*
* Revision 1.7 1999/04/25 00:44:10 steve
* Core handles subsignal expressions.
*
* Revision 1.6 1999/04/19 01:59:37 steve
* Add memories to the parse and elaboration phases.
*
* Revision 1.5 1999/02/08 02:49:56 steve
* Turn the NetESignal into a NetNode so
* that it can connect to the netlist.
* Implement the case statement.
* Convince t-vvm to output code for
* the case statement.
*
* Revision 1.4 1998/12/01 00:42:15 steve
* Elaborate UDP devices,
* Support UDP type attributes, and
* pass those attributes to nodes that
* are instantiated by elaboration,
* Put modules into a map instead of
* a simple list.
*
* Revision 1.3 1998/11/09 18:55:34 steve
* Add procedural while loops,
* Parse procedural for loops,
* Add procedural wait statements,
* Add constant nodes,
* Add XNOR logic gate,
* Make vvm output look a bit prettier.
*
* Revision 1.2 1998/11/07 17:05:06 steve
* Handle procedural conditional, and some
* of the conditional expressions.
*
* Elaborate signals and identifiers differently,
* allowing the netlist to hold signal information.
*
* Revision 1.1 1998/11/03 23:29:06 steve
* Introduce verilog to CVS.
*
*/

View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: target.h,v 1.46 2000/09/17 21:26:16 steve Exp $"
#ident "$Id: target.h,v 1.47 2000/09/26 01:35:43 steve Exp $"
#endif
# include "netlist.h"
@ -131,7 +131,6 @@ struct expr_scan_t {
virtual ~expr_scan_t();
virtual void expr_const(const NetEConst*);
virtual void expr_concat(const NetEConcat*);
virtual void expr_ident(const NetEIdent*);
virtual void expr_memory(const NetEMemory*);
virtual void expr_scope(const NetEScope*);
virtual void expr_sfunc(const NetESFunc*);
@ -160,6 +159,9 @@ extern const struct target *target_table[];
/*
* $Log: target.h,v $
* Revision 1.47 2000/09/26 01:35:43 steve
* Remove the obsolete NetEIdent class.
*
* Revision 1.46 2000/09/17 21:26:16 steve
* Add support for modulus (Eric Aardoom)
*
@ -193,36 +195,5 @@ extern const struct target *target_table[];
* Revision 1.37 2000/05/04 03:37:59 steve
* Add infrastructure for system functions, move
* $time to that structure and add $random.
*
* Revision 1.36 2000/04/23 03:45:25 steve
* Add support for the procedural release statement.
*
* Revision 1.35 2000/04/22 04:20:20 steve
* Add support for force assignment.
*
* Revision 1.34 2000/04/12 04:23:58 steve
* Named events really should be expressed with PEIdent
* objects in the pform,
*
* Handle named events within the mix of net events
* and edges. As a unified lot they get caught together.
* wait statements are broken into more complex statements
* that include a conditional.
*
* Do not generate NetPEvent or NetNEvent objects in
* elaboration. NetEvent, NetEvWait and NetEvProbe
* take over those functions in the netlist.
*
* Revision 1.33 2000/04/10 05:26:06 steve
* All events now use the NetEvent class.
*
* Revision 1.32 2000/04/04 03:20:15 steve
* Simulate named event trigger and waits.
*
* Revision 1.31 2000/04/01 21:40:23 steve
* Add support for integer division.
*
* Revision 1.30 2000/03/29 04:37:11 steve
* New and improved combinational primitives.
*/
#endif