links to root inputs are not constant.

This commit is contained in:
steve 2001-02-16 03:27:07 +00:00
parent 43ddd97426
commit d3bff8a451
1 changed files with 23 additions and 1 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: link_const.cc,v 1.7 2000/11/20 01:41:12 steve Exp $"
#ident "$Id: link_const.cc,v 1.8 2001/02/16 03:27:07 steve Exp $"
#endif
# include "netlist.h"
@ -35,12 +35,31 @@ bool link_drivers_constant(const Link&lnk)
for (const Link*cur = nex->first_nlink()
; cur ; cur = cur->next_nlink()) {
const NetNet*sig;
if (cur == &lnk)
continue;
if (cur->get_dir() == Link::INPUT)
continue;
/* If this is an input or input port of a root module,
then the is probably not a constant value. I
certainly don't know what the value is, anyhow. */
if (sig = dynamic_cast<const NetNet*>(cur->get_obj())) do {
if (sig->port_type() == NetNet::NOT_A_PORT)
break;
if (sig->port_type() == NetNet::POUTPUT)
break;
if (sig->scope()->parent())
break;
flag = false;
} while(0);
/* If the link is PASSIVE then it doesn't count as a
driver if its initial value is Vz. This is pertinant
because REGs are PASSIVE but can receive values from
@ -95,6 +114,9 @@ verinum::V driven_value(const Link&lnk)
/*
* $Log: link_const.cc,v $
* Revision 1.8 2001/02/16 03:27:07 steve
* links to root inputs are not constant.
*
* Revision 1.7 2000/11/20 01:41:12 steve
* Whoops, return the calculated constant value rom driven_value.
*