From 92e08fdcd8be1d4cb06c47c8f387f9736ceed966 Mon Sep 17 00:00:00 2001 From: Cary R Date: Sat, 26 Oct 2013 15:25:09 -0700 Subject: [PATCH] Only calculate the output set for a begin/end block when needed. For synthesis we remove the output set of signals from the input set to remove temporaries from the final sensitivity set. The @* construct also uses the input sensitivity list, but because it can include statements that cannot be synthesized we should not calculate the output set for this case. Not find the output set is also a speed enhancement since the output set was already being ignored later in the code for this case. --- net_nex_input.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net_nex_input.cc b/net_nex_input.cc index e46899458..97211b00d 100644 --- a/net_nex_input.cc +++ b/net_nex_input.cc @@ -313,9 +313,9 @@ NexusSet* NetBlock::nex_input(bool rem_out) if (tmp != 0) result->add(*tmp); delete tmp; - /* Add the current outputs to the accumulated output set, - so they can be removed from the input set below. */ - cur->nex_output(*prev); + /* Add the current outputs to the accumulated output set if + * they are going to be removed from the input set below. */ + if (rem_out) cur->nex_output(*prev); cur = cur->next_; } while (cur != last_->next_);