lowRISC / lowRISC/opentitan

[top/pinmux/pads] Pull the IE signals into the pinmux and disable for unused inputs

Open
#9,706 2 comments 0 reactions 0 assignees View on GitHub
Component:RTL Earlgrey-PROD Triaged IP:pinmux pinmux-rework Priority:P3 Type:FutureRelease
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.