A concatenation may also need a BUFZ to hold the drive strength

Just like a select a concatenation needs a BUFZ to hold the drive strength.
This commit is contained in:
Cary R 2013-02-12 18:34:46 -08:00
parent 41c7aa9e83
commit fdcef3cbc4
1 changed files with 5 additions and 4 deletions

View File

@ -176,11 +176,12 @@ void PGAssign::elaborate(Design*des, NetScope*scope) const
need_driver_flag = false;
}
/* When we are given a non-default strength value and if the
* drive source is a bit, part or indexed select we need to
* add a driver (BUFZ) to convey the strength information. */
/* When we are given a non-default strength value and if the drive
* source is a bit, part, indexed select or a concatenation we need
* to add a driver (BUFZ) to convey the strength information. */
if ((drive0 != IVL_DR_STRONG || drive1 != IVL_DR_STRONG) &&
(dynamic_cast<NetESelect*>(rval_expr))) {
((dynamic_cast<NetESelect*>(rval_expr)) ||
(dynamic_cast<NetEConcat*>(rval_expr)))) {
need_driver_flag = true;
}