Describe the bug
NetlistValidation.validate incorrectly reports a multiple-driver error when different cells drive disjoint bits, fields, or elements of a structured aggregate net.
The validation logic gathers every driver associated with the aggregate net and requires the aggregate to have at most one distinct driver. This treats independent assignments to separate fields/elements as overlapping electrical drivers, even though no individual wire bit has more than one driver.
For example, synthesizing a structured array output with independent muxes for different lanes fails with an error like:
aggregate net "headWindow_orderedRobTags" is reached from multiple drivers:
cell mux_394.Y ($mux), cell mux_402.Y ($mux)
The generated SV drivers separate aggregate elements:
assign headWindow_orderedRobTags[0] = ...;
assign headWindow_orderedRobTags[1] = ...;
To Reproduce
To Reproduce
1. Create or synthesize a module whose output is a packed structured aggregate (for example, a `LogicArray` or `LogicStructure`).
2. Drive independent fields/elements of that aggregate from separate cells, such as distinct muxes or buffers.
3. Export the design through the JSON netlist synthesizer.
4. Observe that validation throws an aggregate multiple-driver error, despite the drivers targeting non-overlapping bits.
A minimal validator-level equivalent is:
- one `$buf` drives bits `[200, 201]`;
- another `$buf` drives bits `[400, 401]`;
- both bit ranges are fields of the same structured aggregate netname.
This should succeed because the two output bit ranges are disjoint.
### Expected behavior
Netlist validation should allow different drivers for disjoint bits within the same structured aggregate.
It should continue to reject a true conflict when two cell outputs drive the same wire bit.
### Actual behavior
Netlist validation rejects the aggregate merely because it has more than one distinct driver, even when every driven bit has exactly one driver.
### Additional: Dart SDK info
Dart SDK version: 3.13.2 (stable) on linux_x64
### Additional: pubspec.yaml
```yaml
name: rohd
version: 0.6.10
environment:
sdk: '>=3.0.0 <4.0.0'
Additional: Context
No response
Describe the bug
NetlistValidation.validateincorrectly reports a multiple-driver error when different cells drive disjoint bits, fields, or elements of a structured aggregate net.The validation logic gathers every driver associated with the aggregate net and requires the aggregate to have at most one distinct driver. This treats independent assignments to separate fields/elements as overlapping electrical drivers, even though no individual wire bit has more than one driver.
For example, synthesizing a structured array output with independent muxes for different lanes fails with an error like:
The generated SV drivers separate aggregate elements:
To Reproduce
To Reproduce
Additional: Context
No response