If a PGAssign is driven by a select then make a driver.
When a PGAssign is driven by (r-value) a bit, part or indexed select and the strength is not the default (supply). Then we need to create a driver (BUFZ) to convey the strength information.
This commit is contained in:
parent
74ea0ecb4a
commit
85e2bf3e55
|
|
@ -189,6 +189,14 @@ 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. */
|
||||
if ((drive0 != Link::STRONG || drive1 != Link::STRONG) &&
|
||||
(dynamic_cast<NetESelect*>(rval_expr))) {
|
||||
need_driver_flag = true;
|
||||
}
|
||||
|
||||
if (need_driver_flag) {
|
||||
NetBUFZ*driver = new NetBUFZ(scope, scope->local_symbol(),
|
||||
rval->vector_width());
|
||||
|
|
|
|||
Loading…
Reference in New Issue