[top/pinmux/pads] Pull the IE signals into the pinmux and disable for unused inputs
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
This is a low-power enhancement in the pinmux logic that unfortunately may have an impact on all comportable IP port lists if we were to implement this properly (i.e. pulling the IE signals all the way through the pinmux and into the comportable IPs, like the output enable signals). Another option would be to only pull the IE signals half the way and tie them off inside the pinmux or at the top-level - however, we would have to be super careful in what power domain the tie off assignments are going to be placed (due to automatically inserted ISO cells), and with certain inputs that are shorted to the AST at the top-level for debug / DFT modes.
So there is a chance that we could introduce critical bugs when following through with this optimization, which we decided is too much of a risk at the current stage. Hence we table this optimization for later. It is a nice to have and not high priority.
See https://github.com/lowRISC/opentitan/pull/9136 for context / a draft implementation.
Contributor guide
Research direction
Start with the pinmux logic and the draft implementation in pull request 9136, then trace how IE signals, comportable IP port lists, output-enable signals, and AST-connected inputs interact across power domains. Done would require a reviewed approach that safely disables unused inputs without introducing ISO-cell or debug/DFT issues.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100