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.
This commit is contained in:
Cary R 2013-10-26 15:25:09 -07:00
parent 7875880aa1
commit 92e08fdcd8
1 changed files with 3 additions and 3 deletions

View File

@ -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_);