lowRISC / lowRISC/opentitan

[top_level,gpios_if] Handle gaps in its array

Open
#20,035 0 comments 0 reactions 3 assignees Claimed by @a-will View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.