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;
|
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) {
|
if (need_driver_flag) {
|
||||||
NetBUFZ*driver = new NetBUFZ(scope, scope->local_symbol(),
|
NetBUFZ*driver = new NetBUFZ(scope, scope->local_symbol(),
|
||||||
rval->vector_width());
|
rval->vector_width());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue