From 5047aa283989624079c0aa45f40bcb382c70650e Mon Sep 17 00:00:00 2001 From: Cary R Date: Sun, 29 Sep 2019 20:17:45 -0700 Subject: [PATCH] Add support for recursive function support for always_* sensitivity --- net_nex_input.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/net_nex_input.cc b/net_nex_input.cc index 4d82573bf..9786193d1 100644 --- a/net_nex_input.cc +++ b/net_nex_input.cc @@ -19,8 +19,8 @@ # include "config.h" -# include - +# include +# include # include # include # include "compiler.h" @@ -253,7 +253,15 @@ NexusSet* NetETernary::nex_input(bool rem_out, bool always_sens) const NexusSet* NetEUFunc::nex_input(bool rem_out, bool always_sens) const { + static set func_set; NexusSet*result = new NexusSet; + string func_name; + + // Avoid recursive function calls. + func_name = scope_->fullname().peek_name(); + if (! scope_->parent()) func_set.clear(); + if (! func_set.insert(func_name).second) return result; + for (unsigned idx = 0 ; idx < parms_.size() ; idx += 1) { NexusSet*tmp = parms_[idx]->nex_input(rem_out, always_sens); result->add(*tmp);