Skip to content

docs(upf): document known limitations in UPF module#9855

Open
shuvro-git wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
shuvro-git:upf-improvements
Open

docs(upf): document known limitations in UPF module#9855
shuvro-git wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
shuvro-git:upf-improvements

Conversation

@shuvro-git
Copy link

Summary

This PR documents the known limitations of the UPF module
in the README.md file, which previously had an empty
Limitations section.

What was verified

All limitations listed were verified directly from the
codebase using the following methods:

  • grep searches returning zero output confirming absent commands
  • Runtime testing confirming invalid command name errors
  • Function signature analysis confirming missing parameters
  • find command confirming no validation framework exists

Limitations documented

Unsupported UPF standard commands

  • upf_version
  • create_supply_net
  • create_supply_port
  • connect_supply_net
  • add_power_state
  • create_pst
  • add_pst_state

Partially supported commands

  • set_isolation — missing options: -isolation_supply_set,
    -source, -sink
  • set_level_shifter — implemented but option descriptions
    are empty in README
  • set_level_shifter_cell — all options undocumented (KIV)

Missing infrastructure

  • No validation framework for UPF rule compliance
  • No power state table verification
  • No cross-domain signal integrity checks

Related

This work is preparatory research for a GSoC 2026 proposal
to implement full UPF standard support in OpenROAD.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This PR adds a comprehensive 'Limitations' section to the UPF module's README.md, which was previously empty. It also includes minor formatting fixes by removing trailing whitespace. My review focuses on improving the clarity and professionalism of the new documentation section by suggesting removal of implementation-specific verification notes and refining the language to be more user-friendly. The changes are a valuable addition to the project's documentation.

Comment on lines +305 to +338
### Unsupported UPF standard commands

The following standard commands are not implemented
(verified by grep returning no output and runtime
returning "invalid command name"):

- `upf_version` — UPF version declaration
- `create_supply_net` — named supply net creation
- `create_supply_port` — supply port creation
- `connect_supply_net` — supply net connectivity
- `add_power_state` — power state definition
- `create_pst` — power state table creation
- `add_pst_state` — power state table entries

### Partially supported commands

- `set_isolation` — missing options: `-isolation_supply_set`,
`-source`, `-sink` (verified: absent from both
upf.tcl keys list and upf.cpp function signature)
- `set_level_shifter` — fully implemented in code but
all option descriptions in this README are empty
(marked "Options coming soon")
- `set_level_shifter_cell` — all four options
(`-level_shifter`, `-cell_name`, `-input_port`,
`-output_port`) are undocumented (marked KIV)

### Missing infrastructure

- No validation framework for UPF rule compliance
(verified: no files matching "valid*" or "check*"
exist in src/upf/)
- No power state table verification
- No cross-domain signal integrity checks

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Good work on documenting these limitations. For better readability in the final README.md, I suggest removing the parenthetical verification details (which are already well-covered in the PR description) and making the language more formal and consistent. Here's a suggested revision for the whole section:

### Unsupported UPF standard commands The following standard UPF commands are not implemented: - `upf_version` — UPF version declaration - `create_supply_net` — named supply net creation - `create_supply_port` — supply port creation - `connect_supply_net` — supply net connectivity - `add_power_state` — power state definition - `create_pst` — power state table creation - `add_pst_state` — power state table entries ### Partially supported commands - `set_isolation` — The following options are not supported: `-isolation_supply_set`, `-source`, `-sink`. - `set_level_shifter` — While the command is implemented, its option descriptions are not yet documented in this README. - `set_level_shifter_cell` — The options (`-level_shifter`, `-cell_name`, `-input_port`, `-output_port`) are not documented. ### Missing infrastructure - No validation framework for UPF rule compliance. - No power state table verification. - No cross-domain signal integrity checks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant