[top_level,gpios_if] Handle gaps in its array
Open
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
### Description
There is something confusing in chip_if.gpios_if: the array of pins has gaps relative to all the mios. For example, pins go from ioa8 to iob6, skipping iob0 - iob5. This means trying to manipulate iob6 as in `chips_vif.gpios_if.drive_pin(top_earlgrey_pkg::MioPadIob6, 1)` will end up flipping a totally unexpected mio, and it gets worse when dealing with higher indices, potentially getting out of bounds.
It seems better to indirect through an SV associative array, or to just put all mios in gpios_if.
Contributor guide
Assessment
This issue has not been assessed yet.