assignSubset method
Performs an assignment operation on a portion this signal to be driven by
updatedSubset
. Each index of updatedSubset
will be assigned to drive
the corresponding index, plus start
, of this signal.
Each of the elements of updatedSubset
must have the same width as the
corresponding member of elements of this signal.
Example:
// assign elements 2 and 3 of receiverLogic to sig1 and sig2, respectively
receiverLogic.assignSubset([sig1, sig2], start: 2);
Implementation
void assignSubset(List<Logic> updatedSubset, {int start = 0}) {
if (updatedSubset.length > width - start) {
throw SignalWidthMismatchException.forWidthOverflow(
updatedSubset.length, width - start);
}
if (_subsetDriver == null) {
_subsetDriver = (isNet ? LogicArray.net : LogicArray.new)(
[width],
1,
name: '${name}_subset',
naming: Naming.unnamed,
);
this <= _subsetDriver!;
}
_subsetDriver!.assignSubset(updatedSubset, start: start);
}