diff --git a/README.txt b/README.txt index ffbd5fb42..5ab51e0bd 100644 --- a/README.txt +++ b/README.txt @@ -388,7 +388,7 @@ bundled it into neat packages.(+) If you want to be added to the list (or removed from the list) send e-mail to me. FreeBSD/{Intel,alpha} - *maintainer needed* + Ying-Chieh Liao Linux/{alpha,Intel} (RPMS) Stephen Williams diff --git a/elab_net.cc b/elab_net.cc index 50b6cd4d9..e0efe0509 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.63 2001/02/09 20:18:15 steve Exp $" +#ident "$Id: elab_net.cc,v 1.64 2001/02/15 06:59:36 steve Exp $" #endif # include "PExpr.h" @@ -195,10 +195,10 @@ NetNet* PEBinary::elaborate_net_add_(Design*des, const string&path, // Pad out the operands, if necessary, the match the width of // the adder device. if (lsig->pin_count() < width) - lsig = pad_to_width(des, path, lsig, width); + lsig = pad_to_width(des, lsig, width); if (rsig->pin_count() < width) - rsig = pad_to_width(des, path, rsig, width); + rsig = pad_to_width(des, rsig, width); // Make the adder as wide as the widest operand osig = new NetNet(scope, des->local_symbol(path), @@ -264,9 +264,9 @@ NetNet* PEBinary::elaborate_net_bit_(Design*des, const string&path, } if (lsig->pin_count() < rsig->pin_count()) - lsig = pad_to_width(des, path, lsig, rsig->pin_count()); + lsig = pad_to_width(des, lsig, rsig->pin_count()); if (rsig->pin_count() < lsig->pin_count()) - rsig = pad_to_width(des, path, rsig, lsig->pin_count()); + rsig = pad_to_width(des, rsig, lsig->pin_count()); if (lsig->pin_count() != rsig->pin_count()) { cerr << get_line() << ": internal error: lsig pin count (" @@ -1641,10 +1641,10 @@ NetNet* PETernary::elaborate_net(Design*des, const string&path, sig->local_flag(true); if (fal_sig->pin_count() < dwidth) - fal_sig = pad_to_width(des, path, fal_sig, dwidth); + fal_sig = pad_to_width(des, fal_sig, dwidth); if (tru_sig->pin_count() < dwidth) - tru_sig = pad_to_width(des, path, tru_sig, dwidth); + tru_sig = pad_to_width(des, tru_sig, dwidth); /* Make the device and connect its outputs to the osig and @@ -1903,6 +1903,9 @@ NetNet* PEUnary::elaborate_net(Design*des, const string&path, /* * $Log: elab_net.cc,v $ + * Revision 1.64 2001/02/15 06:59:36 steve + * FreeBSD port has a maintainer now. + * * Revision 1.63 2001/02/09 20:18:15 steve * Detect part select out of range in nets. (PR#138) * diff --git a/elaborate.cc b/elaborate.cc index 153291c48..942439516 100644 --- a/elaborate.cc +++ b/elaborate.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: elaborate.cc,v 1.207 2001/02/09 05:44:23 steve Exp $" +#ident "$Id: elaborate.cc,v 1.208 2001/02/15 06:59:36 steve Exp $" #endif /* @@ -1497,7 +1497,7 @@ NetCAssign* PCAssign::elaborate(Design*des, const string&path) const return 0; if (rval->pin_count() < lval->pin_count()) - rval = pad_to_width(des, path, rval, lval->pin_count()); + rval = pad_to_width(des, rval, lval->pin_count()); NetCAssign* dev = new NetCAssign(des->local_symbol(path), lval); des->add_node(dev); @@ -1930,7 +1930,7 @@ NetProc* PForce::elaborate(Design*des, const string&path) const return 0; if (rval->pin_count() < lval->pin_count()) - rval = pad_to_width(des, path, rval, lval->pin_count()); + rval = pad_to_width(des, rval, lval->pin_count()); NetForce* dev = new NetForce(des->local_symbol(path), lval); des->add_node(dev); @@ -2367,6 +2367,9 @@ Design* elaborate(const map&modules, /* * $Log: elaborate.cc,v $ + * Revision 1.208 2001/02/15 06:59:36 steve + * FreeBSD port has a maintainer now. + * * Revision 1.207 2001/02/09 05:44:23 steve * support evaluation of constant < in expressions. * diff --git a/expr_synth.cc b/expr_synth.cc index 38c78ecf3..414617cf8 100644 --- a/expr_synth.cc +++ b/expr_synth.cc @@ -17,11 +17,11 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: expr_synth.cc,v 1.19 2001/01/18 03:16:35 steve Exp $" +#ident "$Id: expr_synth.cc,v 1.20 2001/02/15 06:59:36 steve Exp $" #endif # include "netlist.h" - +# include "netmisc.h" NetNet* NetExpr::synthesize(Design*des) { @@ -135,6 +135,9 @@ NetNet* NetEBComp::synthesize(Design*des) if (rsig->pin_count() > lsig->pin_count()) width = rsig->pin_count(); + lsig = pad_to_width(des, lsig, width); + rsig = pad_to_width(des, rsig, width); + NetNet*osig = new NetNet(scope, path, NetNet::IMPLICIT, 1); osig->local_flag(true); @@ -444,6 +447,9 @@ NetNet* NetESignal::synthesize(Design*des) /* * $Log: expr_synth.cc,v $ + * Revision 1.20 2001/02/15 06:59:36 steve + * FreeBSD port has a maintainer now. + * * Revision 1.19 2001/01/18 03:16:35 steve * NetMux needs a scope. (PR#115) * diff --git a/netlist.h b/netlist.h index 21c0e0c61..b7e599662 100644 --- a/netlist.h +++ b/netlist.h @@ -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.198 2001/02/10 21:20:38 steve Exp $" +#ident "$Id: netlist.h,v 1.199 2001/02/15 06:59:36 steve Exp $" #endif /* @@ -459,6 +459,10 @@ class NetCLShift : public NetNode { /* * This class supports the LPM_COMPARE device. * + * The width of the device is the width of the inputs. If one of the + * inputs is narrower then the other, it is up to the generator to + * make sure all the data pins are properly driven. + * * NOTE: This is not the same as the device used to support case * compare. Case comparisons handle Vx and Vz values, whereas this * device need not. @@ -2865,6 +2869,9 @@ extern ostream& operator << (ostream&, NetNet::Type); /* * $Log: netlist.h,v $ + * Revision 1.199 2001/02/15 06:59:36 steve + * FreeBSD port has a maintainer now. + * * Revision 1.198 2001/02/10 21:20:38 steve * Binary operators with operands of indefinite width * has itself an indefinite width. diff --git a/netmisc.h b/netmisc.h index 413951b5c..e07c3474d 100644 --- a/netmisc.h +++ b/netmisc.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: netmisc.h,v 1.11 2001/02/10 20:29:39 steve Exp $" +#ident "$Id: netmisc.h,v 1.12 2001/02/15 06:59:36 steve Exp $" #endif # include "netlist.h" @@ -31,7 +31,7 @@ * enough. */ extern NetExpr*pad_to_width(NetExpr*expr, unsigned wid); -extern NetNet*pad_to_width(Design*des, const string&p, NetNet*n, unsigned w); +extern NetNet*pad_to_width(Design*des, NetNet*n, unsigned w); /* * This local function returns true if all the the possible drivers of @@ -64,6 +64,9 @@ extern NetExpr* elab_and_eval(Design*des, NetScope*scope, const PExpr*pe); /* * $Log: netmisc.h,v $ + * Revision 1.12 2001/02/15 06:59:36 steve + * FreeBSD port has a maintainer now. + * * Revision 1.11 2001/02/10 20:29:39 steve * In the context of range declarations, use elab_and_eval instead * of the less robust eval_const methods. diff --git a/pad_to_width.cc b/pad_to_width.cc index e4524b1b3..8ea680fbc 100644 --- a/pad_to_width.cc +++ b/pad_to_width.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: pad_to_width.cc,v 1.5 2000/05/02 00:58:12 steve Exp $" +#ident "$Id: pad_to_width.cc,v 1.6 2001/02/15 06:59:36 steve Exp $" #endif # include "netlist.h" @@ -45,19 +45,20 @@ NetExpr*pad_to_width(NetExpr*expr, unsigned wid) return expr; } -NetNet*pad_to_width(Design*des, const string&path, NetNet*net, unsigned wid) +NetNet*pad_to_width(Design*des, NetNet*net, unsigned wid) { - NetScope*scope = des->find_scope(path); + NetScope*scope = net->scope(); + const string path = scope->name(); assert(scope); if (net->pin_count() >= wid) return net; verinum pad(verinum::V0, wid - net->pin_count()); - NetConst*con = new NetConst(des->local_symbol(path), pad); + NetConst*con = new NetConst(path + scope->local_symbol(), pad); des->add_node(con); - NetNet*tmp = new NetNet(scope, des->local_symbol(path), + NetNet*tmp = new NetNet(scope, path + scope->local_symbol(), NetNet::WIRE, wid); tmp->local_flag(true); @@ -71,6 +72,9 @@ NetNet*pad_to_width(Design*des, const string&path, NetNet*net, unsigned wid) /* * $Log: pad_to_width.cc,v $ + * Revision 1.6 2001/02/15 06:59:36 steve + * FreeBSD port has a maintainer now. + * * Revision 1.5 2000/05/02 00:58:12 steve * Move signal tables to the NetScope class. *