Skip to content
Browse files

Primitive outputs have same limitations as continuous assignment.

  • Loading branch information...
1 parent 38d851f commit c96598a4299ad0206be598ffe50bcafcfd5f6c04 steve committed Aug 5, 2003
Showing with 16 additions and 5 deletions.
  1. +9 −3 elab_net.cc
  2. +7 −2 elaborate.cc
View
12 elab_net.cc
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
-#ident "$Id: elab_net.cc,v 1.114 2003/06/21 01:21:43 steve Exp $"
+#ident "$Id: elab_net.cc,v 1.115 2003/08/05 03:01:58 steve Exp $"
#endif
# include "config.h"
@@ -1556,6 +1556,7 @@ NetNet* PEIdent::elaborate_lnet(Design*des, NetScope*scope,
cerr << get_line() << ": error: memories (" << path_
<< ") cannot be l-values in continuous "
<< "assignments." << endl;
+ des->errors += 1;
return 0;
}
@@ -1575,6 +1576,7 @@ NetNet* PEIdent::elaborate_lnet(Design*des, NetScope*scope,
<< " is not defined in this context." << endl;
cerr << get_line() << ": : Do you mean this? wire "
<< path_ << " = <expr>;" << endl;
+ des->errors += 1;
return 0;
}
}
@@ -1584,8 +1586,9 @@ NetNet* PEIdent::elaborate_lnet(Design*des, NetScope*scope,
/* Don't allow registers as assign l-values. */
if (sig->type() == NetNet::REG) {
cerr << get_line() << ": error: reg " << sig->name()
- << "; cannot be an L-value in continuous"
- << " assignments." << endl;
+ << "; cannot be driven by primitives"
+ << " or continuous assignment." << endl;
+ des->errors += 1;
return 0;
}
@@ -2323,6 +2326,9 @@ NetNet* PEUnary::elaborate_net(Design*des, NetScope*scope,
/*
* $Log: elab_net.cc,v $
+ * Revision 1.115 2003/08/05 03:01:58 steve
+ * Primitive outputs have same limitations as continuous assignment.
+ *
* Revision 1.114 2003/06/21 01:21:43 steve
* Harmless fixup of warnings.
*
View
9 elaborate.cc
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
-#ident "$Id: elaborate.cc,v 1.284 2003/07/02 04:19:16 steve Exp $"
+#ident "$Id: elaborate.cc,v 1.285 2003/08/05 03:01:58 steve Exp $"
#endif
# include "config.h"
@@ -446,7 +446,9 @@ void PGBuiltin::elaborate(Design*des, NetScope*scope) const
for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) {
const PExpr*ex = pin(idx);
- NetNet*sig = ex->elaborate_net(des, scope, 0, 0, 0, 0);
+ NetNet*sig = (idx == 0)
+ ? ex->elaborate_lnet(des, scope, true)
+ : ex->elaborate_net(des, scope, 0, 0, 0, 0);
if (sig == 0)
continue;
@@ -2577,6 +2579,9 @@ Design* elaborate(list<const char*>roots)
/*
* $Log: elaborate.cc,v $
+ * Revision 1.285 2003/08/05 03:01:58 steve
+ * Primitive outputs have same limitations as continuous assignment.
+ *
* Revision 1.284 2003/07/02 04:19:16 steve
* Elide empty begin-end in conditionals.
*

0 comments on commit c96598a

Please sign in to comment.
Something went wrong with that request. Please try again.